日期:2014-05-16  浏览次数:20725 次

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 &n