我们在找系统问题的时候,往往需要借助一些工具,brendangregg发布了一个PPT:Linux Performance Analysis and Tools,其中介绍了大多常用的系统分析工具,而此篇blog及之后的一些blog,会针对这些系统分析工具做一个简要说明,并简析其部分参数的用法,及相关示例,此会持续更新
1> uptime:显示平均负载,此项也经常在其他工具中显示。其分别显示1,5,15分钟的负载 如果负载值大于CPU数,这可能意味着CPU饱和了,或线程遭受调度延迟,也可能有磁盘IO的因素,使用其他工具进一步调查
2> top:显示系统概要和每个进程的系统信息
$ top					#直接top命令,会显示如下信息:
  1. top - 15:12:25 up  5:37,  5 users,  load average: 0.19, 0.12, 0.14 
  2. Tasks:  77 total,   1 running,  76 sleeping,   0 stopped,   0 zombie 
  3. Cpu(s):  1.0%us,  0.7%sy,  0.0%ni, 98.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st 
  4. Mem:    499852k total,   489928k used,     9924k free,    96148k buffers 
  5. Swap:   975868k total,        4k used,   975864k free,   289780k cached 
  6.  
  7.   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
  8.  4493 root      20   0 51484 8176 2108 S  1.0  1.6   3:06.18 iotop    
  9. 21648 root      20   0     0    0    0 S  0.3  0.0   0:00.06 kworker/0:1    
  10. 21650 ubuntu    20   0 17332 1224  924 R  0.3  0.2   0:00.18 top      
  11.     1 root      20   0 24336 1924 1056 S  0.0  0.4   0:02.49 init        
  12.     2 root      20   0     0    0    0 S  0.0  0.0   0:00.03 kthreadd 
top命令界面简介:
第一行:
 top   					#名称
 15:12:25     				#系统当前时间 
 up 5:37				#系统开机运行了多少时间
 2 users				#当前2用户在线
 load average: 0.19, 0.12, 0.14         #系统1,5,15分钟的系统平均负载
第二行:
 Tasks					#进程状态
 total					#进程总数
 running				#进程正在运行的进程数
 sleeping				#睡眠的进程数
 stopped				#停止的进程数
 zombie					#僵死的进程数
第三行:
 Cpu(s)					#CPU的整体负载信息(其显示为从现在的时间到上一次刷新期间的百分比)
 1.0%us					#CPU运行用户的进程所花的时间百分比(不包含改变过nice值的进程)
 0.7%sy					#CPU运行内核进程所花的时间百分比
 0.0%ni					#CPU运行用户改变过nice值的进程所花的时间百分比
 98.3%id				#CPU空闲时间百分比
 0.0%wa					#CPU用再IO等待的时间百分比
 0.0%hi					#CPU硬中断时间百分比
 0.0%si					#CPU软中断时间百分比
 0.0%st					#CPU为了其他任务从虚拟机管理程序窃取的时间(参照top手册)
第四行:
 Mem:  					#物理内存使用情况 
 total					#物理内存总量
 used   				#使用的物理内存总量
 free				        #空闲的内存量
 buffers			        #用作缓存内存量
第五行:
 Swap:					#交换空间的使用情况(具体同上
第六行:					#top中输入指令,显示状态的地方
第七行及以下:				#显示的每个process使用的资源情況
 PID:					#进程号
 USER:					#进程所有者
 PR:					#进程的优先级,值越小越优先被执行
 NI					#进程的nice值
 VIRT:					#进程占用的虚拟内存
 RES:					#进程占用的物理内存
 SHR:					#进程使用的共享内存
 S:					#进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态等
 %CPU:					#进程占用CPU的使用率
 %MEM:					#进程使用的物理内存的百分比
 TIME+:					#该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
 COMMAND:				#进程启动命令名称
top的用法:
top -hv | -bcHisS -d delay -n iterations -p pid [, pid ...]
 -h					#显示版本及帮助信息
 -b					#以批次的方式执行top
 -n					#后边加数字,通常和-b搭配,表示运行top几次
 -d					#后面加秒数,top显示的内容更新的秒数,默认5s
 -p					#后面加PID号,指定监测某个进程
在top执行过程中可使用的按键指令:
 <Enter> or <Space>			#立即刷新
 <?> or <h>				#帮助信息
 <q>					#退出
 <P>					#以cpu的使用率排序显示
 <M>					#以Memory的使用资源排序显示
 <T>					#以TIME+为准进行排序显示
 <N>					#以PID排序显示
 <k>					#kill掉某个进程
 <r>					#修改某进程nice值
 <s>					#设置刷新时间间隔
 <c>					#显示命令完全模式
 <t>					#显示或隐藏Tasks和Cpu(s)的状态信息
 <m>					#显示或隐藏Mem和swap的状态信息
 <l>					#显示或隐藏uptime信息(第一行)
 <f>					#增加或减少进程显示标志
 <S>					#累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
 <u>					#指定显示用户进程
 <i>					#只显示正在运行的进程
 <W>				        #保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置
更多详情请查看top手册$ man top
3> htop:super top		        #与top类似,不再详述