开发内功修炼@张彦飞开发内功修炼@张彦飞

talk is cheap,
show me the code!

最新发布

CPU篇

为什么新版内核将进程pid管理从bitmap替换成了radix-tree?

张彦飞(@开发内功修炼) 阅读(143)

大家好,我是飞哥!前几天写书整理旧文章的时候,发现内核已经将进程 pid 号的管理从 bitmap 换成了基数树(radix-tree)。 第一次写进程创建的时候我使用的内核版本还是 3.10 的版本。在这个版本里已分配的进程 pid 号是用 bitmap 来存储的。但我在看 5.4 和 6...

CPU篇

一次限制进程的 CPU 用量的实操过程

张彦飞(@开发内功修炼) 阅读(107)

大家好,我是飞哥!给大家分享一个事情。背景是这样的,我们要测试某个第三方 SDK 运行性能,这是个 CPU 密集型的服务。我想评估一下它运行一遍到底有多吃 CPU,以便评估上线后我们需要部署多少台服务器。我们是在一台 16 物理核的机器上测试的,我们的想法是把它启动起来,然后执行一遍。用耗时乘...

CPU篇

Linux 中的负载高低和 CPU 开销并不完全对应

张彦飞(@开发内功修炼) 阅读(121)

大家好,我是飞哥!负载是查看 Linux 服务器运行状态时很常用的一个性能指标。在观察线上服务器运行状况的时候,我们也是经常把负载找出来看一看。在线上请求压力过大的时候,经常是也伴随着负载的飙高。但是负载的原理你真的理解了吗?我来列举几个问题,看看你对负载的理解是否足够的深刻。负载是如何计算出...

CPU篇

你的新进程是如何被内核调度执行到的?

张彦飞(@开发内功修炼) 阅读(122)

大家好,我是飞哥!在前面的文章《Linux进程是如何创建出来的?》 和 《聊聊Linux中线程和进程的联系与区别》 中我们都讲过了,进程和线程在创建出来后会加入运行队列里面等待被调度。但咱们之前提的太笼统了。所谓的运行队列到底长什么样子、新进程是如何被加入进来的、调度是如何选择一个新进程的、新...

CPU篇

聊聊Linux中线程和进程的联系与区别!

张彦飞(@开发内功修炼) 阅读(126)

大家好,我是飞哥!关于进程和线程,在 Linux 中是一对儿很核心的概念。但是进程和线程到底有啥联系,又有啥区别,很多人还都没有搞清楚。在网上对进程和线程的讨论中,很多都是聚集在这二位有啥不同。但事实在 Linux 上,进程和线程的相同点要远远大于不同点。在 Linux 下的线程甚至都被称为了...