linux性能检查(一)介绍和CPU
linux性能检查(一)介绍和CPU
通常监控的子系统有:
CPU
Memory
IO
Network
应用类型
IO相关,处理大量数据,需要大量内存和存储,频繁IO读写数据,对CPU的要求比较小,大部分时候CPU都在等待硬盘,比如,数据库服务器、文件服务器等。
CPU相关,需要使用大量的CPU能力,比如高并发的web/mail服务器、图像/视频处理、可续计算等。
查看机器状态命令
>vmstat 1
一些常用的监控命令和工具。
top查看进程活动状态以及一些系统状况
vmstat查看系统状态、硬件和系统信息等
iostat查看CPU 负载,硬盘状况
sar综合工具,查看系统状况
mpstat查看多处理器状况
netstat查看网络状况
iptraf实时网络状况监测
tcpdump抓取网络数据包,详细分析
mpstat查看多处理器状况
tcptrace数据包分析工具
netperf网络带宽工具
dstat综合工具,综合了 vmstat, iostat, ifstat, netstat 等多个信息
CPU底线
65%-70% User Time,
30%-35% System Time,
0%-5% Idle Time;
上下文切换,上下文切换应该和 CPU 利用率联系起来看,如果能保持上面的 CPU 利用率平衡,大量的上下文切换是可以接受的;
可运行队列,每个可运行队列不应该有超过1-3个线程(每处理器)。双处理器系统的可运行队列里不应该超过6个线程。
工具vmstat
>vmstat 1
参数记录:
r,可运行队列的线程数,这些线程都是可运行状态,只不过 CPU 暂时不可用;
b,被 blocked 的进程数,正在等待 IO 请求;
in,被处理过的中断数
cs,系统上正在做上下文切换的数目
us,用户占用 CPU 的百分比
sys,内核和中断占用 CPU 的百分比
wa,所有可运行的线程被 blocked 以后都在等待 IO,这时候 CPU 空闲的百分比
id,CPU 完全空闲的百分比
比较闲的机器返回情况:
>vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 2672604 570440 5243936 0 0 1 10 2 4 1 0 99 0 0
0 0 0 2672648 570440 5243936 0 0 0 52 14 462 0 0 99 0 0
0 0 0 2672648 570440 5243936 0 0 0 0 5 444 0 0 100 0 0
0 0 0 2672648 570440 5243936 0 0 0 0 11 458 0 0 100 0 0
0 0 0 2672648 570440 5243944 0 0 0 0 21 478 0 0 100 0 0
0 0 0 2672648 570440 5243944 0 0 0 8 8 476 1 1 98 0 0
0 0 0 2672648 570440 5243944 0 0 0 0 5 471 0 0 100 0 0
跑了一个虚拟机的机器:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 40 1735980 210932 8855852 0 0 0 6 3 1 3 3 94 0 0
1 0 40 1736088 210932 8855852 0 0 0 21 7 1264 10 9 81 0 0
工具mpstat
>mpstat -P ALL 5
我的目标机器没有这个工具。
参考:
http://www.blogjava.net/cssseek/archive/2010/10/25/335791.html