1.Linux 性能诊断:单机负载评估
1.负载诊断流程:
1.观察 load average (平均负载)
2.观察 cpu, IO 是否存在瓶颈
从 load average 等总体性能入手,参考 cpu 使用率和 IO 等待时间等具体数字,从而自顶向下快速排查各个进程状态。
流程:
load average :
1.cpu 瓶颈
1.IO 无瓶颈
top/sar/ps/strace/oprofile
2.程序过载
2.IO 瓶颈
1.程序读写频繁
sar/vmstat
2.使用了 swap
2.Linux 内核进程调度器(Process Scheduler)
负责决定任务运行的优先级,以及让任务等待或者使之重新开始等核心工作。调度器划分并管理进程的状态。
进程描述符的状态:
task_running R 运行状态。只要cpu空闲,随时都可以开始
task_interruptable S 可中断的等待状态。例如系统睡眠或者来自用户输入的等待等。
task_uninterruptable D 不可中断的等待状态。主要为短时间恢复时的等待状态。例如磁盘输入输出的等待
task_stopped 响应暂停信号而运行中断的状态。直到恢复前都不会被调度
task_zombie Z 僵死状态。虽然子进程已经终止,但父进程尚未执行wait(),因此该进程的资源没有被系统释放。
load average 所描述的负载就是:需要运行处理,但又必须等待队列前的进程处理完成的进程个数。具体来说,要么等待授予cpu运行权限,要么等待磁盘IO完成。
sar(system activity reporter)
输出参数:
1. %user 用户cpu资源
2. %system 系统占用 cpu 资源
3. %iowait : IO 等待率
sar -W
输出参数:
1.pswpin/s : 每秒系统换入的页面数
2.pswpout/s : 每秒系统换出的页面数
vmstat(report virtual memory statistics)
1.单机负载评估