首页 > 代码库 > linux的各个子系统

linux的各个子系统

Linux主要的子系统主要有CPU、Memory、IO、Network。
在这些子系统中,它们之间相互之间高度依赖。任何一个子系统的高负载都会引起其他子系统出现问题。
例如:
大量的页调入请求对内存造成阻塞
网卡的大吞吐量造成CPU开销
CPU开销造成内存请求队列
大量从内存来的磁盘写请求造成CPU和IO通道的开销
而为了优化系统,我们必须定位瓶颈在哪。即使问题看起来像是某个子系统引起,也有可能是因为其它子系统高负载导致。

为了明白从哪里开始优化瓶颈,首要工作就是分析目前系统的行为特点。任何系统的应用通常分为如下两类:
I/O范畴:IO范畴的应用需要高负荷地使用内存和下层的存储系统。因为IO范畴的程序在内存中处理大量数据,它并不太依赖CPU和网络(除非是网络存储系统)。IO范畴的程度使用CPU资源来产生IO请求,接着CPU通常进入睡眠状态。数据库应用通常属于IO范畴。
CPU范畴:CPU范畴的应用需要高负荷地使用CPU。CPU范畴的应用需要CPU批量处理请求和数学计算。大量web服务器,邮件服务器,以及其它渲染计算服务器通常属于CPU范畴。

linux的各个子系统