Debian 爱好者社区 为您找到相关结果 825

Golang Context 探究

在用 Golang 开发过程中,我们一定能在代码里很多函数或方法都传递 context, 也经常遇到这样的报错 context deadline exceeded。你有想过或去探究过 context 到底是什么吗,为什么遇到上述的报错。在这里我们就分析一下 context 是什么及用途。 首选 Golang 中的 context 值得是 context.Context 接口,Golang 在 1.7 版本中引入标准库的接口。context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、截止时间、key-value 等。 Context 定义 Context 接口定义如下 1 2 3 4 5 6 7 8 9 10 type Context interface...阅读全文

博文 2021-02-25 09:27:27 lxkaka

如何把Debian系统中,已安装、配置的软件包导出成 *.deb 格式的安装包?

我们安装软件包后,都做一些配置,如何把这些软件包,以及配置变动导出成一个 deb 软件包,以便下次迁移、重新安装? 使用 dpkg-repack 这个命令即可。 注意,这个命令在**当前目录**下,生产新的软件包,务必确保当前目录下有足够的磁盘空间,一般要 2GB - 3GB, `for a in $(sudo dpkg --get-selections|cut -f1); do dpkg-repack $a|awk '{if (system("sleep .5 && exit 2") != 2) exit; print}';done` ...阅读全文

高性能缓存服务器 Nuster

义一个 cache filter, 另外cache-rule也需要添加。 可以为多个代理添加,并单独设置某个代理的缓存是否开启。 如果定义了多个 filter,需要把 cache filter 放在最后。 cache-rule syntax: cache-rule name [key KEY] [ttl TTL] [if|unless condition] default: none context: backend, listen 定义缓存规则。可以同时定义多个,但是需要注意顺序,匹配则停止测试。 acl pathA path /a.html filter cache cache-rule all ttl 3600 cache-rule path01 ttl 60 if pathA...阅读全文

博文 2017-12-15 22:17:31 debian.cn

深入学习golang — channel

. }() doSomethingForAWhile() <-c // Wait for sort to finish; discard sent value. 上面的示例中,在子goroutine中进行排序操作,主goroutine可以做一些别的事情,然后等待子goroutine完成排序。 接收方一直阻塞直到有数据到来。如果channel是无缓冲的,发送方一直阻塞直到接收方将数据取出。如果channel带有缓冲区,发送方一直阻塞直到数据被拷贝到缓冲区;如果缓冲区已满,则发送方只能在接收方取走数据后才能从阻塞状态恢复。 3. 消息传递 我们来模拟一下经典的生产者-消费者模型。 func Producer (queue chan<- int){ for i:= 0; i < 10; i++ { queue <- i } } func...阅读全文

博文 2021-01-25 12:39:17 博客园

Intel 第 11 代核显型号曝光:13个版本 最多64单元

Intel 最近为其 10 亿级用户的核芯显卡真是操醉了心,一方面进一步公布了 第 11 代核显的架构细节 ,另一方面升级驱动程序带来了全新的控制中心 。 而在对新驱动进行了一番挖掘之后,赫然发现 Intel 已经将第 11 代核显的诸多型号隐藏在了其中,显然硬件部分已经 OK,进入了驱动开发阶段。 Intel 目前的核显架构是第 9 代 (以及升级版 9.5 代),从六代酷睿 Skylake 一直到九代酷睿 Coffee Lake Refresh 都是它,最多 24 个执行单元 (EU),而接下来 Intel 将跳过第 10 代,直接奔向第 11 代,架构规格都有翻天覆地的变化。 11 代核显将全面用于 Intel 10nm 处理器,包括 主流桌面的 Ice Lake、3D 封装超低功...阅读全文

Go 1.10 发布说明草案:预计于 2018 年 2 月发布

Go 1.10 还没发布,下面将简单介绍正在进行中的 Go 1.10 发布说明草案。Go 1.9 已于 2017 年 8 月发布,最新的 Go 1.10 预计将于 Go 1.9 发布六个月后 —— 2018 年 2 月发布。 Go 1.10 大部分的变更仍然集中在工具链、运行时和库的实现上。一如既往地,此版本依然 保持与 Go 1.x 的兼容性 ,官方表示几乎所有的 Go 应用程序都能像以前一样继续编译和运行。 语言特性方面的改变 语言特性方面没有实质性的变化。 极端情况下,由无类型常量引起的变化已经弄清楚。因此,编译器也已进行升级,它可允许这样的索引表达式 x[1.0 << s] 通过编译,其中 s 是一个无类型常量。go/types 包也已完善。 方法表达式的语法 (grammar...阅读全文

博文 2017-11-18 13:59:12 debian.cn

Linux基金会推出ACT项目 帮助开发者遵守开源许可证

Linux Foundation 正致力于通过组建新项目来改善开源的合规性,他们近日推出了一个 Automated Compliance Tooling(ACT)项目,旨在整合对推进开源合规性工具的投入,提高互操作性和可用性,从而帮助组织管理合规性义务。 根据 Linux 基金的说法,虽然开源代码的使用变得越来越流行,但使用开源代码有责任遵守该代码许可的条款,这给用户和组织的管理带来挑战。 Linux 基金战略高级主管 Kate Stewart 表示:“推进开源合规性的工具或项目有很多,但大多没有资金,构建强大可用性或高级功能的范围有限。我们从许多组织那里听说,目前存在的工具无法满足当前的需求。在 Linux 基金下成立一个中立机构来处理这些问题,将使我们能够增加对合规工具开发社区...阅读全文

博文 2018-12-09 13:32:56 debian.cn

Google 开源漏洞扫描系统 Tsunami

谷歌已宣布将其内部使用的 Tsunami 漏洞扫描程序进行开源,以帮助其他组织保护用户数据。Tsunami 将不成为谷歌的正式品牌产品,而是由开源社区以类似于管理 Kubernetes(另一种谷歌内部工具)的方式来维护。 “我们已经向开源社区发布了 Tsunami 安全扫描引擎。我们希望该引擎可以帮助其他组织保护其用户数据。我们还希望促进协作,并鼓励安全界在 Tsunami 之上创建和共享新的探测器。” 与其他漏洞扫描程序不同的是,Tsunami 本就是秉承着以大型企业为使用对象的初衷而进行构建的,旨在查找包含数十万个设备的大型网络中的漏洞。谷歌方面表示,其设计的漏洞扫描程序具有极强的适应性,Tsunami 能够扫描多种设备类型,而无需为每种设备运行不同的扫描仪。 Tsunami 在扫描...阅读全文

博文 2020-07-16 10:25:50 debian.cn

Django 3.0 发布第一个版本 开始支持异步功能

Django 3.0 发布了第一个版本3.0a1,正式版版本将于今年12月份发布。3.0版的Django带来了一些新特性,其中最值得关注的应当是其开始支持异步功能。 django路线图 此前有草案提出要 让 Django 支持异步 。聚集于 HTTP 中间件视图和 ORM,开发者要在 Django 中添加异步支持,同时维护对同步 Python 的支持,并且将完全向后兼容。 该设想最终替换掉 Django 中的大多数阻塞部分,包括 Session、Auth、ORM 与 Handlers 等,使其 原生支持异步 。而同步 API 将继续存在并得到完全支持,其中一些最终将转变为原生异步代码的同步包装器。 ASGI 模式将 Django 作为原生异步应用程序运行,原有的 WSGI 模式将围绕每个...阅读全文

博文 2019-09-13 07:21:28 debian.cn

Go 1.15.7 新鲜出炉:修复安全问题,建议升级

Go 官方刚刚发布了 Go 1.15.7 和 Go 1.14.14,以解决最近报告的安全问题。建议所有用户都更新到以下版本之一(如果不确定哪个版本,请选择 Go 1.15.7)。具体修复的安全问题如下:1、cmd/go:使用 cgo 的包可能在构建时导致任意代码执行。当 Windows 上使用 cgo 时,go 命令可以在构建时执行任意代码。运行 “go get” 或任何其他构建代码的命令时,可能发生这种情况。只有构建不受信任的代码(而不执行代码)的用户才受到影响。除 Windows 用户外,这还可能影响在 PATH 中使用了 “.” 的 Unix 用户,在模块外部或禁用模块模式下运行 “go get”或构建命令。具体 issue:https://github.com/golang...阅读全文

博文 2021-01-25 15:15:34 mp.weixin.qq.com

Google Chrome开始加入HTTP/3和IETF QUIC支持

谷歌开始在其Chrome浏览器中实现对HTTP/3的支持,该公司在一篇博客中宣布。此次更新将带来一些额外的性能改进,主要得益于实现了QUIC作为传输协议。互联网工程任务组(或IETF)早在2015年就推出了HTTP/2,它带来的一大改进就是支持复用。 但是,它采用了TCP作为传输协议,以及TCP中的丢失恢复机制,所以丢失的数据包仍然造成所有活动事务的延迟。通过采用QUIC,HTTP/3可以进一步改善传输过程,因为丢失的数据包只影响到直接受其影响的事务。 谷歌是QUIC的最初开发者,但该协议在IETF手中已经有一段时间了,现在IETF版本的QUIC与谷歌内部的QUIC有很大不同。到目前为止,谷歌只支持自己的QUIC实现,而IETF则还在研究其版本,但现在这种情况正在改变。谷歌表示...阅读全文

博文 2020-10-08 11:16:05 debian.cn

谷歌多项服务大规模宕机:涵盖YouTube、Gmail等

。AppleInsider也进行了测试,但是并没有出现任何中断或者卡顿的情况。 凌晨4点45分:谷歌报告称,由于网络比较拥挤“用户可能看到性能下降或者间歇性错误”。谷歌表示已经确认了造成拥堵的根本原因,预计很快恢复正常。 凌晨6点:在简讯中,谷歌承认这些问题, 并表示工程团队已经完成缓解工作的第一阶段,目前正在实施第二阶段,应该尽快修复正常。...阅读全文

博文 2019-06-03 14:03:32 debian.cn

HTTP状态码详解

下,某次 PUT 提交的对特定资源的修改请求所附带的版本信息与之前的某个(第三方)请求向冲突,那么此时服务器就应该返回一个409错误,告知用户请求无法完成。此时,响应实体中很可能包含两个冲突版本之间的差异比较,以便用户重新提交归并以后的新版本。 410 被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。这样的状况应当被认为是永久性的。如果可能,拥有链接编辑功能的客户端应当在获得用户许可后删除所有指向这个地址的引用。如果服务器不知道或者无法确定这个状况是否是永久的,那么就应该使用404状态码。除非额外说明,否则这个响应是可缓存的。 410响应的目的主要是帮助网站管理维护网站,通知用户该资源已经不再可用,并且服务器拥有者希望所有指向这个资源的远端连接也被删除。这类事件在限时、增...阅读全文

博文 2021-01-28 17:50:11 debian.cn

钉钉发送报警消息的Python实现

] else: return '' access token 在2小时内有效,有效期内重复获取返回相同结果,重复获取使有效期自动顺延。corp_id 和corp_secret 是企业的 id 和 secret,在钉钉的管理后台可以找到。另外,上面用到了 urllib2 和 json,需要在脚本中引用。 消息类型 钉钉的消息类型分为:text,image,voice,file,link和OA。下面以发送文本,链接和文件消息为例进行说明。 给用户发送消息 发送文本 def send_text_to_users(access_token, users, text): msg_type, msg = _gen_text_msg(text) return _send_msg_to_users...阅读全文

博文 2018-04-27 08:51:33 debian.cn

Go 泛型的括号选择:[ ] or ( )

( ) 和 [ ] 可供选择。然而缺少修饰的方括号在数组和 slice 的类型声明中造成歧义,在解析索引表达式时也引起小程度的歧义。因此在设计之初他们决定使用小括号,因为小括号似乎更符合 Go 语言的风格,而且看起来问题最少。 为了使小括号正常工作,并且为了向后兼容,他们表示不得不在类型参数列表中引入type关键字。最后,他们在参数列表、复合字面量和嵌入类型中发现了额外的解析歧义,而这些歧义需要嵌套更多的小括号来解决。不过即便如此,他们还是决定继续使用小括号,因为当时还有更重要的设计问题需要解决。 现在他们决定重新考虑这个最初的决定。如果仅使用方括号声明类型参数,那么声明数组的方式如下所示: type A [N]E 不过这就无法与泛型的声明进行区分: type A[N] E 但如果能接受额外的...阅读全文

博文 2020-07-16 10:38:01 debian.cn

Redis 6 将采用全新协议RESP3 提供客户端缓存功能

缓存功能,保证存储在客户端内存的数据,在收到来自服务器的失效通知时才失效。 另外,当客户端和服务器的连接中断时,客户端无法接收到数据失效通知,这可能导致服务出现问题。针对这种情况,一般的做法是重新建立客户端和服务器之间的连接,并更新客户端当前的缓存。antirez 表示可以一直保持连接是最好的情况,但为了降低风险,Redis 服务器在与客户端断开连接时,将失效通知发送给其他客户端。 这项名为”Client side caching” 的功能尚未正式确定名字,最后可能被成为”Tracking”。Redis 作者还表示在 Redis 6 候选版发布之前,这些功能都进行调整,希望社区能积极反馈意见。 由于 Client side caching 功能需要使用 RESP3 协议来支持实现...阅读全文

OpenSSL 3.0 正式发布,更改许可协议并弃用所有低级别 API

经过 3 年的开发,17 个 alpha 版本,2 个 beta 版本,超过 7500 个提交,以及来自 350 位不同开发者的贡献,OpenSSL 3.0 终于正式发布了。OpenSSL 1.1.1 以来的主要变化主要版本开发者可以从这里下载 OpenSSL 3.0,并升级你的应用程序使之兼容。OpenSSL 3.0 是一个大版本升级,并不完全向后兼容以前的版本。大多数使用 OpenSSL 1.1.1 的应用程序仍然可以正常工作,只是需要重新编译(可能有关于使用废弃的 API 的编译警告)。还有一些不能完全兼容的应用可能需要进行修改才能正确编译和使用。如果应用程序需要利用 OpenSSL 3.0 中的一些新功能(例如 FIPS 模块),也需要对应用进行更改。许可证变更在以前的版本中...阅读全文

Kubernetes v1.21 新特性预览

Secret 时,大量的 watch 事件急剧增加 kube-apiserver 的负载,并导致错误配置过快传播到整个集群。在这种情况中,给不需要经常修改的 ConfigMap 和 Secret 设置 immutable: true 就可以避免类似的问题。注意,设置 immutable: true 之后,ConfigMap 和 Secret 内容更新时需要删除并重新创建,且使用它们的 Pod 也需要删除重建。IPv4/IPv6 双栈支持 BetaIPv4/IPv6 双栈支持在 v1.20 的时候进行了重构,并将于 v1.21 中进入 Beta 版本(默认开启),kubeadm 也已经支持创建 IPv4/IPv6 双栈集群。该特性开启后,Kubernetes Service 和 Pod 同时分配...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

Golang 中的 channel 通道详解

,dataqsiz 表示缓冲区的大小,对于无缓冲区通道而言 dataqsiz 的值为 0。如果 qcount 和 dataqsiz 的值相同,则表示缓冲区用完了。__buf __缓冲区表示的是一个环形队列 。其中 **sendx 表示下一个发送的地址,recvx **表示下一个接收的地址。elemtype 是channel的中存放的具体类型,每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。recvq 表示等待接收的 sudog 列表,一个接收语句执行时,如果缓冲区没有数据而且当前没有别的发送者在等待,那么执行者 goroutine 被挂起,并且将对应的 sudog 对象放到 recvq 中。sendq 类似于 recvq,一个发送语句执行时,如果缓冲区已经满了,而且没...阅读全文

分布式任务调度平台 XXL

版本,如:CodeMirror、Echarts、Jquery 等; 13、项目依赖升级 groovy 至较新稳定版本; pom 清理; 14、子任务失败重试重试逻辑优化,子任务失败时将按照其预设的失败重试次数主动进行重试 XXL-JOB 特性 1、简单:支持通过 Web 页面对任务进行 CRUD 操作,操作简单,一分钟上手; 2、动态:支持动态修改任务状态、启动 /停止任务,以及终止运行中任务,即时生效; 3、调度中心 HA(中心式):调度采用中心式设计,“ 调度中心” 基于集群 Quartz 实现并支持集群部署,可保证调度中心 HA ; 4、执行器 HA(分布式):任务分布式执行,任务” 执行器” 支持集群部署,可保证任务执行 HA ; 5、注册中心: 执行器周...阅读全文

博文 2018-11-05 21:47:15 JOB 2.0.0 发布

Go 1.16 即将发布,这些变更你需要知道

在前几天,Go1.16rc1 抢先发布了。结合常规的 28 发布规律,其将在 2021.02 月份左右发布正式版本。 这次 Go1.16 也带来了一些新特性或变更。那么作为一个 Gopher,想必不能错过这次的更新。 今天这篇文章将带大家了解一下 Go1.16 的几个需要关注的特性。 废弃 io/ioutil Go 官方认为 io/ioutil 这个包的定义不明确且难以理解。所以 Russ Cox 在 2020.10.17 提出了废弃 io/ioutil 的提案。 大致变更如下: Discard => io.DiscardNopCloser => io.NopCloserReadAll => io.ReadAllReadDir => os.ReadDirReadFile...阅读全文

博文 2021-02-17 08:52:12 CSDN博客

7 个月猛涨 12 亿美元,开源技术服务商成北欧最新独角兽 - OSCHINA

10 月 20 日,2021 云栖大上,阿里云发布全新操作系统“龙蜥”并宣布开源。同时,阿里达摩院操作系统实验室也宣告成立。 龙蜥操作系统定位于服务器端,支持 x86、ARM 等多种芯片架构和计算场景,兼容 CentOS 生态,支持一键迁移,并提供全栈国密能力。 阿里云在大上透露,龙蜥操作系统已经在阿里巴巴内部打磨 10 年,... 30 13 阿里平头哥宣布开源四款玄铁 RISC-V 系列处理器 10 月 19 日,2021 云栖大现场,阿里云智能总裁张建锋宣布,平头哥开源玄铁 RISC-V 系列处理器,并开放系列工具及系统软件。 此次开源的 OpenXuantie 系列 RISC-V 处理器,包括玄铁 E902、E906、C906、C910 等 4 款量产处理器,以及基于...阅读全文

博文 2021-10-21 20:04:43 中文开源技术交流社区

Proxy-Go v6.6 发布啦

在 direct 里面的目标都走上级. --intelligent=intelligent,blocked 和 direct 里面都没有的目标, 智能判断是否使用上级访问目标. 特点: 链式代理, 程序本身可以作为一级代理, 如果设置了上级代理那么可以作为二级代理, 乃至 N 级代理. 通讯加密, 如果程序不是一级代理, 而且上级代理也是本程序, 那么可以加密和上级代理之间的通讯, 采用底层 tls 高强度加密, 安全无特征. 智能 HTTP,SOCKS5 代理, 自动判断访问的网站是否屏蔽, 如果被屏蔽那么就使用上级代理 (前提是配置了上级代理) 访问网站; 如果访问的网站没有被屏蔽, 为了加速访问, 代理直接访问网站, 不使用上级代理. 域名黑白名单,更加自由的控制网站的访问方式...阅读全文

博文 2018-12-01 09:52:14 Go v6.6 发布 新增智能模式

Python 2.7将于2020年1月1日终止支持

Python 语言作者 Guido van Rossum 在开发者邮件列表上宣布 Python 2.7 将于 2020 年 1 月 1 日终止支持。他说,别玩语义游戏了,Python 2.7 的终止支持时间不再更改,之后不再有安全更新。想要在这个日期之后继续支持 Python 2.7 的人将需要付费给商业供应商。 Python 是一个开源项目,他欢迎创建分支,他表示 Python 核心团队在这上面工作的时间够长了。 Python 2.7 原计划在 2015 年终止支持,但由于大量现有代码没有移植到 Python 3 开发者将终止支持的时间推迟到了 2020 年。...阅读全文

博文 2018-03-14 16:58:09 debian.cn

登陆 jumpserver 跳板机每天只输入一次2FA token的方法

2FA 密码了。 ** Windows ** 还是使用 ssh session clone 的方式,以 XShell 为例,对跳板机话属性做这些设置: - 在话属性 -- 连接 -- 用户身份验证中的方法,选择 keyboard Interactive,输入用户名和密码。 - 这样登陆时,密码都可省略,直接输入token即可。 - 在已经登陆的session上,右键点击tab页,选择复制ssh渠道,就可以免token无限复制啦。...阅读全文

新款树莓派 3 Model B+ 发布:支持5GHz Wi

树莓派基金刚刚推出了新款树莓派硬件,其型号为 Raspberry Pi 3 Model B+ 。虽然名字容易和 2016 年的升级款(Raspberry Pi 3 Model B)搞混淆,但它还是有很大的改动。树莓派 3 Model B+ 采用了速度快了一丢丢的 1.4GHz 四核处理器、蓝牙组件从 4.1 升级到 4.2、并且支持 2.4 / 5GHz 双频 Wi-Fi 。 外媒 TheVerge 编辑 Paul Miller 调侃道:出于某种原因,我们办公室只有 5GHz 的无线网络,所以此前在测试树莓派和其它物联网设备的时候,只能再开辟饱受诟病的 2.4GHz 网络。 说到物联网,就不得不介绍下新款树莓派硬件已经获得了“模块兼容性认证”这件事。也就是说,开发者们无需担心他们的最终产...阅读全文

博文 2018-03-14 16:50:13 Fi和蓝牙4.2

Nginx 主线版 1.14.0 发布:Bug修复版本

Nginx 主线版 1.14.0 发布了,Nginx(发音同 engine x)是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行,可以在 UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及 Microsoft Windows 等操作系统中运行。 该版本的新特性及bug修复包括: 新特性:可以同时使用多个“limit_req”限制。 修复:连接到后端时的错误处理bug。 修复:FreeBSD中的AIO错误处理bug。 修复:OpenSSL库初始化bug。 修复:“proxy_redirect”指令可能被错误地继承。 修复:如果使用了“pcre_jit”指令,重新配置时可能出现内存泄露...阅读全文

博文 2018-04-19 08:03:48 debian.cn

Linux基金会宣布长期支持内核分支

在布拉格举行的LinuxCon Europe上,Linux基金宣布了针对消费者电子产品的长期支持内核分支“Long Term Stable Kernel Initiative (LTSI)”,旨在减少开发定制移动或嵌入式Linux平台的成本。 LTSI将提供可连续使用2到3年的稳定版内核,消费电子产品的生命周期也就二到三年左右。LTSI将每年发布一个新内核版本,此后两年定期提供更新。LTSI由Linux基金管理,将与行业合作伙伴合作开发,该项目已经吸引了日立、LG、松下、索尼和东芝等大型硬件制造商。...阅读全文

Docker 重大更新,版本升至17.03

3月2日,Docker 官方发布了一篇 blog ,宣布企业版到来。版本也从1.13.x一跃到17.03。之后,Docker 每月发布一个 edge 版本(17.03, 17.04, 17.05...),每三个月发布一个 stable 版本(17.03, 17.06, 17.09...),企业版(EE) 和 stable 版本号保持一致,但每个版本提供一年维护。 Docker 的 Linux 发行版的软件仓库也从以前的 https://apt.dockerproject.org / https://yum.dockerproject.org 变更为目前的 https://download.docker.com/。软件包名变更为 docker-ce (社区版) 和 docker-ee (企...阅读全文

博文 2021-01-28 17:50:23 debian.cn

Linux Kernel 4.19 正式版本发布 将是长期支持版

Greg Kroah-Hartman 在内核邮件列表上 宣布 释出 Linux 4.19。Linux 作者 Linus Torvalds 最近在 休假反省 ,Linux 的开发现在由稳定版内核维护者 Kroah-Hartman 接手。 Kroah-Hartman 表示,4.19 将是一个长期支持版本,他也维持几年。 Linux 4.19 的主要新特性包括: 基于异步 I/O 的轮训接口 L1TF 漏洞补丁 块 I/O 延迟控制器 Common Applications Kept Enhanced (CAKE) 队列管理算法 Wi-Fi 6 (802.11ax) 初步支持 实验性文件系统 EROFS Intel Cache Pseudo-locking 基于时间的包传输 改进 RISC...阅读全文

博文 2018-10-24 13:37:11 debian.cn

如何读懂火焰图?+ 实例讲解程序性能优化 - xuxh120

火焰图(flame graph)是性能分析的利器。本文介绍它的基本用法。 一、perf 命令 让我们从 perf 命令(performance 的缩写)讲起,它是 Linux 系统原生提供的性能分析工具,返回 CPU 正在执行的函数名以及调用栈(stack)。 通常,它的执行频率是 99Hz(每秒99次),如果99次都返回同一个函数名,那就说明 CPU 这一秒钟都在执行同一个函数,可能存在性能问题。 $ sudo perf record -F 99 -p 13204 -g -- sleep 30 上面的代码中,perf record表示记录,-F 99表示每秒99次,-p 13204是进程号,即对哪个进程进行分析,-g表示记录调用栈,sleep 30则是持续30秒。 运行后产生一个庞大...阅读全文

博文 2022-03-11 10:05:09 博客园

Ubuntu 19.10 计划于 10 月 17 日正式发布,代号 Eoan Ermine

Canonical 官方 宣布 Ubuntu 19.10 版本的发布日期定在 2019 年 10 月 17 日,它将是 Ubuntu 20.04 LTS 发布之前的最后一个短期版本。 根据 Ubuntu 按照字母顺序进行版本命名的规则,该版本名称基于字母 “E”,代号为 “Eoan Ermine”。“Ermine” 学名白鼬,俗称短尾黄鼠狼。 定于 9 月份发布的 GNOME 3.34 桌面版 将构成下一个 Ubuntu 版本的基础。此更新包括 Nautilus、Evince 和 Calendar 等核心应用程序的新版本,还可能包含改进的录音机工具。 此外,在 Ubuntu 19.04 版本中首次亮相的实验性 Xorg 分数缩放 设置将在 19.10 版本中更容易获得。 新版本其他的计划...阅读全文

博文 2019-05-14 13:26:43 debian.cn

海力士推新企业级SSD:72层闪存 16TB即将到来

SK海力士日前宣布推出新一代企业级SSD硬盘,不过官方并没有公布SSD硬盘的名称,只知道是NVMe标准的,基于72层堆栈的3D TLC闪存,M.2版容量最大4TB,U.2容量可达8TB。 性能方面,SK海力士表示新一代企业级硬盘的连续速度可达3200MB/s,随机性能可达160K IOPS,与2018年FMS展上推出的72层堆栈闪存硬盘相比,新一代企业级SSD的顺序读写性能提升30%,随机写入提升了70%,同时支持读取敏感型及混合型应用,包括数据中心、AI、ML机器学习及VDI虚拟桌面架构等。 值得一提的是,SK海力士的新一代企业级SSD具备极低的功耗,正常应用低于14W,这在企业级SSD中是很低的水平了。 此外,SK海力士还表示将在今年底推出容量更大的企业级SSD硬盘,闪存从目前的...阅读全文

博文 2019-06-20 20:27:53 debian.cn

Bootstrap 4正式发布 带来新的示例和新的主题

Bootstrap 4.0.0 正式版现已发布,更新内容方面,相对于之前的测试版,正式版没有重大的改变,但做出了一些关键的改进,并解决了一些棘手的错误。 新的示例 几乎每个示例都经过稳定的 v4 版本的重大修改,其中删除了一些过时的示例,添加了一些新的示例,并且彻底改变了其他一些示例。 当然,稳定版中依然有一些已知的问题尚未修复,预计在下一个小版本更新时修复,如 Input groups, validation, 和 rounded corners。 主题方面,Bootstrap 的主题今年将得到重大更新,官方表示将推出十个全新的主题。当前的目标是第一季度推出的主题都建立在 Bootstrap 4 上(都没有 v3 版本的)。 Bootstrap 4 的示例和迁移说明。 详情请查看发布...阅读全文

博文 2018-02-16 13:01:27 debian.cn

Django 2.2 发布,LTS版来了

Django 2.2 已正式发布 ,这是一个长期支持版本(LTS),亦即意味着官方提供 至少三年 的安全问题和数据丢失修复。除此之外,它还接收到修复崩溃错误、新引入特性中主要功能错误的程序,以及修复接下来八个月到 2019 年 12 月为止关于旧版 Django 的回归错误。 2.2 新特性:https://docs.djangoproject.com/en/2.2/releases/2.2/下载地址:https://www.djangoproject.com/download/升级指南:https://docs.djangoproject.com/en/2.2/howto/upgrade-version/ 值得关注的新特性 HttpRequest.headers 可访问请求者的...阅读全文

博文 2019-04-03 13:55:30 debian.cn

TSLv 1.3 网络安全标准通过 带来更安全的网络环境

互联网工程师近日通过了一个安全框架,它将使网络上的加密连接更快,更耐窥听。它被称为 Transport Layer Security version 1.3(TSLv 1.3),这并不是一次大版本更新,而是一次迭代改进,它可以让 Web 在任何有恶意操作或恶意程序存在时正常工作。 IETF 是由来自世界各地的工程师组成的团队,他们在此标准上进行合作 - 用了超过四年,起草了 28 份草案后,才通过 TLS 1.3。 TLS 1.3 主要支持四种握手模式 (1)基于(EC)DHE密钥交换的握手模式; (2)基于PSK的话重启,由预共享密钥PSK进行快速简短的握手; (3)话重启与(EC)DHE结合的握手,可以提供前向安全性; (4)基于PSK的0-RTT(round-trip time...阅读全文

博文 2018-03-26 08:34:15 debian.cn

Canonical 宣布临时关闭 Ubuntu 17.10 下载通道

鉴于众多联想笔记本用户报告尝试安装最新Ubuntu 17.10(Artful Aardvark)导致BIOS损坏的问题,Canonical 公司于今天宣布撤下最新版本的下载镜像。为了解决这个问题,Canonical计划在Linux Kernel 4.13内核中关闭英特尔SPI驱动,在重新构建和打包之后公司将推出全新的ISO镜像。目前尚不清楚整个过程需要多久时间,但相信修正版应该尽快发布。 令人感到遗憾的是,如果你的联想笔记本出现BIOS损坏的问题,严重的可能需要更换设备主板。根据报道,部分Yoga和IdeaPad系列产品线受到影响,此外部分Acer、戴尔和东芝笔记本同样收到影响。 联想B40-70,联想B50-70,联想B50-80,联想Flex-10,联想G40-30,联想G50...阅读全文

博文 2017-12-21 20:15:44 debian.cn

VS Code 公布 2018 路线图:生态改进 快乐编码

Visual Studio Code 刚刚公布了其 2018 发展路线图。开发团队表示,他们通常先制定目标,然后将工作分解在后续的 6-12 个月时间内。在当前的规划中,主要从以下三个角度进行改进: Happy Coding: 为新用户和现有用户提供更愉快的编码体验。 Node、JavaScript 和 TypeScript: 为各种语言和框架实现卓越的端到端体验。 A Rich Extension Ecosystem: 提供更丰富的扩展功能,构建良好的生态系统。 各项大致内容(仅供参考) Happy Coding 计划针对以下方面进行改进: Fundamentals:提高启动性能、减少资源/内存消耗、提高可访问性、支持社区贡献的翻译语言包、改善更新体验、提高可维护性等...阅读全文

博文 2017-11-02 11:50:40 debian.cn

Linode VPS注册购买教程

按钮,我们可以来到下一步,如图: 这些就是重要信息了,需要注意我们所填的信息,下面是一些重要的事项: – Billing Information 这些,可以作假,但是别太假,你IP在北京,就不要填在上海 – Promotion Code 这是优惠码,建议选上,充值完成之后,可以送我们20美元,填这个:podcastinit2018 – Referral Code 推荐链接,填这个: eac533d58ff7c958135810ada124651d869224df – 信用卡需要VISA或者MASTERCARD,我是用的建行e付卡,输入之后立马通过了。 全部填写完毕之后,点击Add Credit,跳到这个界面: 这是代表我们的账户正在审核,不用担心,如果没问题的话,大概半个小时就能审核通过...阅读全文

博文 2021-03-11 17:13:31 diablo4

西部数据的Zonefs将登陆Linux 5.6内核

西部数据开发了有一段时间的Zonefs已经确定要在Linux 5.6内核中登场了,这并不是一个传统意义上面的通用文件系统(比如Ext4、NTFS),而是一个针对特定硬件设备的文件系统,它为分区式存储设备进行了高度的优化。 熟悉Linux的朋友应该知道,在Linux下面内核将存储设备视为块设备,比如目前将SATA存储设备视为/dev/sdX。传统文件系统是在这个块设备上面进行操作,而应用程序则是通过系统提供的接口对块设备上面的数据进行访问。 但SMR HDD(叠瓦式硬盘)有一个毛病,它只有在顺序写入时才能正常发挥性能,一旦要进行数据覆盖写入,就需要改写这块数据所在区块内的所有磁道,造成严重的性能下降。传统的文件系统不因为SMR HDD的特性而特别对待它,而Zonefs就是西部数据对...阅读全文

Go1.16 新特性:一文快速上手 Go embed

在以前,很多从其他语言转过来 Go 语言的同学问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文件中包含配置文件的联同编译和打包。 结果往往一把二进制文件挪来挪去,就无法把应用程序运行起来了。因为无法读取到静态文件的资源。 无法将静态资源编译打包进二进制文件的话,通常有两种解决方法: 第一种是识别这类静态资源,是否需要跟着程序走。第二种就是考虑将其打包进二进制文件中。 第二种情况的话,Go 以前是不支持的,大家就去借助各种花式的开源库,例如:go-bindata/go-bindata 来实现。 但从在 Go1.16 起,Go 语言自身正式支持了该项特性,今天我们将通过这篇文章快速了解和学习这项特性。 基本使用 演示代码: import _ "embed...阅读全文

博文 2021-02-17 08:44:12 CSDN

Golang 应用集成 Prometheus 统计数据支持

Prometheus 客户端公开了在暴露服务指标时能够运用的四种指标类型。查看 Prometheus 的文档 以获得关于各种指标类型的深入信息。 Counter(计数器 一种累加的 metric,典型的应用如:请求的个数,结束的任务数,出现的错误数等。随着客户端不断请求,数值越来越大。例如api_http_requests_total{method="POST", handler="/messages"} Gauge(计量器) 一种常规的 metric,典型的应用如:温度,运行的 goroutines 的个数。返回的数值上下波动。 例如 go_goroutines{instance="172.17.0.2", job="Prometheus"} Histogram(分布图) 可以理解为柱状图,典型的应用如...阅读全文

博文 2022-11-24 10:33:09 CSDN博客

Kubernetes调度算法浅析

在真正的生产环境中,如何合理的分配服务器资源、提高利用率、让整个集群运行的更加稳定使得 k8s-scheduler 这个角色在集群中的地位愈发重要。 kube-scheduler的预选(过滤)和精选(打分) api-server将创建pod的请求发送给kube-scheduler,并且将pod信息记录在etcd数据库中。之后kube-scheduler根据预选(过滤)规则,首先过滤掉一部分node节点中的pod,没有被过滤掉的pod可以看做是可以被调度的pod,之后再通过更加严格的规则给剩下的pod打分,这一步也叫作优选。打分最高的pod可以看做被优先分配到pod任务。 调度流程简介 创建pod的命令被api-server的api接口接收到。api-server将pod信息存储在...阅读全文

博文 2020-12-20 11:01:10 debian.cn

Go 1.9 的新特性介绍

可能有问题。自go 1.6之后, 并发地读写map报错,这在一些知名的开源库中都存在这个问题,所以go 1.9之前的解决方案是额外绑定一个锁,封装成一个新的struct或者单独使用锁都可以。 群众的呼声是响亮的,并发map在项目中大量使用,所以Go 1.9中在包sync加入了新的map, 查询、存储和删除都是平均常数时间,可以并发访问。 Monotonic Time 先前的time包的实现都是基于wall time的,但是当机器的时钟调整后有问题。 比如在计算duration的时候,如果时钟往回拨,可能导致end时间比start时间还早。 所以Go 1.9使用monotonic Time来实现大部分的time中的函数,在计算duration的时候不出现因为时钟调整出现的误差了。 设计文...阅读全文

博文 2021-01-28 17:50:34 debian.cn

如何重启 Kubernetes 中的 Pods

在使用 Docker 时,我们可以使用 docker restart container_id 来非常方便的重启容器,但是在 kubernetes 中并没有重启 pod 的命令。有时 Pod 意外终止时,我们希望重启 pod,来进行排障或者尝试恢复服务。这时我们发现蛋有点疼,没有一个很直观的方式来重启 pod。 这里我总结了几种重启 Pod 的方式,分两种情况讨论如何重启 K8S 中的 Pod,希望对大家有所帮助。 第一种方式:Deployment方式下重启Pod 大多数生产环境,使用的是 Deployment 方式部署应用。这种场景下,我们可以直接删除对应的 Pod,让k8s去完成 pod 重建,命令: kubectl delete pod {podname} -n...阅读全文

博文 2020-07-13 21:23:30 debian.cn

Linux 上如何禁用 USB 存储设备

为了保护数据不被泄漏,我们使用软件和硬件防火墙来限制外部未经授权的访问,但是数据泄露也可能发生在内部。 为了消除这种可能性,机构限制和监测访问互联网,同时禁用 USB 存储设备。 在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。所有这三种方法都在 CentOS 6&7 机器上通过测试。那么让我们一一讨论这三种方法。 方法 1:伪安装 在本方法中,我们往配置文件中添加一行 install usb-storage /bin/true, 这让安装 usb-storage 模块的操作实际上变成运行 /bin/true, 这也是为什么这种方法叫做伪安装的原因。 具体来说就是,在文件夹 /etc/modprobe.d 中创建并打开一个名为...阅读全文

博文 2017-12-18 22:52:58 debian.cn

Python的闭包和装饰器

了一个闭包——inner_func,并且该闭包持有自由变量——name,因此这也意味着,当函数func的生命周期结束之后,name这个变量依然存在,因为它被闭包引用了,所以不被回收。 另外再说一点,闭包并不是Python中特有的概念,所有把函数做为一等公民的语言均有闭包的概念。不过像Java这样以class为一等公民的语言中也可以使用闭包,只是它得用类或接口来实现。 nonlocal 语句 在 python 的函数内,可以直接引用外部变量,但不能改写外部变量,因此如果在闭包中直接改写父函数的变量,就发生错误: 在 python 2 中可以在函数内使用 global 语句,但全局变量在任何语言中都不被提倡,因为它很难控制,python 3 中引入了 nonlocal 语句解决了这个问题...阅读全文

博文 2014-07-23 17:06:38 debian.cn