System in: 每秒产生的中断次数 cs: 每秒产生的上下文切换次数 上面这2个值越大,会看到由内核消耗的CPU时间会越多
Cpu us: 用户进程消耗的CPU时间百分比 us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了(比如 PHP/Perl) sy: 内核进程消耗的CPU时间百分比 sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。 wa: IO等待消耗的CPU时间百分比 wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。 id: CPU处在空闲状态时间百分比
情景分析 这个vmstat的输出那些信息值得关注? Procs r: 运行的进程比较多,系统很繁忙 Io bo: 磁盘写的数据量稍大,如果是大文件的写,10M以内基本不用担心,如果是小文件写2M以内基本正常 Cpu us: 持续大于50,服务高峰期可以接受 Cpu wa: 稍微有些高 Cpu id:持续小于50,服务高峰期可以接受
用 top 看到的内存的说明(Mem的第2行) actv active 活跃的内存页,正在映射给进程使用 in_d inactive_dirty 非活跃的内存页,并且内存数据被修改,需要写回磁盘 in_c inactive_clean 非活跃的内存页,干净的数据,可以被重新分配使用 用 top 看到的进程所处的几种状态(STAT列)。 D 不可中断休眠,通常是 IO 操作所处的状态 R 正在执行的或者处在等待执行的进程队列中 S 休眠中 T 暂停刮起的(比如Ctrl+Z),也可能是被 strace 命令调用中的状态 Z 僵尸进程,进程执行完成,但由于其父进程没有销毁该进程,而被init进程接管进行销毁。 W 没有使用物理内存,所占用的物理内存被切换到交换内存 高优先级的进程 N 低优先级
有时候一个进程会有多个状态的标志,比如SWN,SW
情景分析 前面两次top的输出那些信息值得关注? 图1) Load average: 系统负载有降低的趋势,但仍然较高 Running: 有3个进程正在运行,正常,因为系统有4颗CPU Cpu user: 接近200%了,有些大,服务高峰时可以接受 Cpu idle: 小于200%了,需要注意 图2) Cpu iowait:接近200%了,很大