10、内存泄漏时,如何找到根因?

你好,我是邵亚方。 通过我们前面的基础篇以及案例篇的学习,你对内存泄漏应该有了自己的一些理解。这节课我来跟你聊一聊系统性地分析内存泄漏问题的方法:也就是说,在面对内存泄漏时,我们该如何一步步去找到根因? 不过,我不会深入到具体语言的实现细节,以及具体...

Linux内核技术实战课

11、TCP连接的建立和断开受哪些系统配置影响

你好,我是邵亚方。 如果你做过Linux上面网络相关的开发,或者分析过Linux网络相关的问题,那你肯定吐槽过Linux系统里面让人眼花缭乱的各种配置项,应该也被下面这些问题困扰过: Client为什么无法和Server建立连接呢? 三次握手都完成...

Linux内核技术实战课

12、TCP收发包受哪些配置项影响?

你好,我是邵亚方。我们这节课来讲一下,TCP数据在传输过程中会受到哪些因素干扰。 TCP收包和发包的过程也是容易引起问题的地方。收包是指数据到达网卡再到被应用程序开始处理的过程。发包则是应用程序调用发包函数到数据包从网卡发出的过程。你应该对TCP收包...

Linux内核技术实战课

13、TCP拥塞控制导致业务性能抖动

你好,我是邵亚方。这节课我来跟大家分享TCP拥塞控制与业务性能抖动之间的关系。 TCP拥塞控制是TCP协议的核心,而且是一个非常复杂的过程。如果你不了解TCP拥塞控制的话,那么就相当于不理解TCP协议。这节课的目的是通过一些案例,介绍在TCP拥塞控制...

Linux内核技术实战课

14、什么导致TCP端到端时延变大?

你好,我是邵亚方。 如果你是一名互联网从业者,那你对下面这个场景应该不会陌生:客户端发送请求给服务端,服务端将请求处理完后,再把响应数据发送回客户端,这就是典型的C/S(Client/Server)架构。对于这种请求-响应式的服务...

Linux内核技术实战课

15、如何高效地分析TCP重传问题?

你好,我是邵亚方。 我们在基础篇和案例篇里讲了很多问题,比如说RT抖动问题、丢包问题、无法建连问题等等。这些问题通常都会伴随着TCP重传,所以我们往往也会抓取TCP重传信息来辅助我们分析这些问题。 而且TCP重传也是一个信号,我们通常会利用这个信号来...

Linux内核技术实战课

16、如何分析常见的TCP问题?

你好,我是邵亚方。 对互联网服务而言, 网络问题是非常多的,而且很多问题的外在表现都是网络问题,这就需要我们从网络入手,分析清楚根本原因是什么。而要分析各种各样的网络问题,你必须掌握一些分析手段,这样在出现问题的时候,你就可以高效地找到原因。这节课我...

Linux内核技术实战课

17、CPU是如何执行任务的?

你好,我是邵亚方。 如果你做过性能优化的话,你应该有过这些思考,比如说: 如何让CPU读取数据更快一些? 同样的任务,为什么有时候执行得快,有时候执行得慢? 我的任务有些比较重要,CPU如果有争抢时,我希望可以先执行这些任务,这该怎么办呢? 多线程...

Linux内核技术实战课

18、业务是否需要使用透明大页?

你好,我是邵亚方。 我们这节课的案例来自于我在多年以前帮助业务团队分析的一个稳定性问题。当时,业务团队反映说他们有一些服务器的CPU利用率会异常飙高,然后很快就能恢复,并且持续的时间不长,大概几秒到几分钟,从监控图上可以看到它像一些毛刺。 因为这类问...

Linux内核技术实战课

19、网络吞吐高的业务是否要开启网卡特性

你好,我是邵亚方。 通过上一讲我们对CPU利用率的细化,相信你已经知道,对于应用而言,它的目标是让CPU的开销尽量用在执行用户代码上,而非其他方面。usr利用率越高,说明CPU的效率越高。如果usr低,就说明CPU执行应用的效率不高。在[第18讲]里...

Linux内核技术实战课