Linux 网络协议栈收消息过程

从 NIC 收数据开始,到触发软中断,交付数据包到 IP 层再经由路由机制到 TCP 层,最终交付用户进程。会尽力介绍收消息过程中的各种配置信息,以及各种监控数据。知道了收消息的完整过程,了解了各种配置,明白了各种监控数据后才有可能在今后的工作中做优化配置。Ring Buffer 相关的收消息过程大


Linux I/O 原理和 Zero-copy 技术全面揭秘

导言如今的网络应用早已从 CPU 密集型转向了 I/O 密集型,网络服务器大多是基于 C-S 模型,也即 客户端 - 服务端 模型,客户端需要和服务端进行大量的网络通信,这也决定了现代网络应用的性能瓶颈:I/O。传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会


Linux 磁盘 IO 调度

Linux 4.0 IO协议栈框架图I/O调度程序的总结:1)当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成.2)每个块设备都有它自己的队列.3)I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O调度程序将无序的I/O操作变为有序的I/O操作.4)内核必须首


SOFT LOCKUP、HARD LOCKUP与进程调度之间的关系

内核如何检测SOFT LOCKUP与HARD LOCKUP?所谓lockup,是指某段内核代码占着CPU不放。Lockup严重的情况下会导致整个系统失去响应。Lockup有几个特点:首先只有内核代码才能引起lockup,因为用户代码是可以被抢占的,不可能形成lockup(只有一种情况例外,就是SCH


Linux 进程状态

Linux上进程的状态R:Runnable(运行):正在运行或在运行队列中等待S:sleeping(中断):可中断状态睡眠,表示进程因等待某个事件而被系统挂起(阻塞态)。当进程等待的事件发生时,就会被唤醒并进入R状态D:uninterruptible sleep(不可中断):不可中断状态睡眠,一般表