使用Linux服务器的过程中,有16个命令可以帮助你全面了解你的服务器的运行状况。
【01 - iostat】
iostat 命令显示的是你的存储系统的细节状态及CPU的使用情况.你通常可以用这个命令去检测你的存储设备是否工作正常,完全可以在用户抱怨服务器慢之前,通过这个命令发现系统IO 方面的问题
1
2
3
4
5
6
7
8
9
# iostat
Linux 2.6.32-220.el6.x86_64 (vmware-144) 03/01/2013 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.01 0.00 0.04 0.02 0.00 99.92
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.00 0.00 0.00 376 0
sda 2.45 0.27 99.26 839006 308868072
avg-cpu:
%user:显示用户级别应用所占用CPU的百分比; %nice:nice用户级别所占用的CPU百分比; %system:显示系统级别内核所占用的CPU百分比; %iowait:显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比; %steal:显示等待一个虚拟处理器占用CPU的百分比; %idle:CPU空闲时间的百分比。
Device:
tps:每秒钟发送到I/O请求数量; Blk_read/s:每秒钟读取块设备的数量; Blk_wrtn/s:每秒钟写入块设备的数量; Blk_read:读取块设备的总数; Blk_wrtn:写入块设备的总数.
iostat参数说明:
1
2
3
4
5
6
7
8
9
10
11
-c 仅显示CPU统计信息.与-d选项互斥.
-d 仅显示磁盘统计信息.与-c选项互斥.
-k 以K为单位显示每秒的磁盘请求数,默认单位块.
-p device | ALL
与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:
# iostat -p hda
或显示所有设备
# iostat -p ALL
-t 在输出数据时,打印搜集数据的时间.
-V 打印版本号和帮助信息.
-x 输出扩展信息.
【02/03 - meminfo/free】meminfo提供了很详细的内存使用状况。可以直接用cat命令查看:
1
2
3
4
5
6
#cat /proc/meminfo</pre>
<pre>#free -m</pre>
<pre> total used free shared buffers cached
Mem: 1999 1326 672 0 105 996
-/+ buffers/cache: 224 1774
Swap: 3999 0 3999
【04 - mpstat】
mpstat用在多处理器的服务器上,用来显示每一个CPU的状态。另外,mpstat也会显示所有处理器的平均状况。你可以设置显示每个服务器的CPU统计信息,或者每个处理的CPU统计信息。
1
2
3
4
5
# mpstat
Linux 2.6.32-220.el6.x86_64 (vmware-145) 02/08/2013 _x86_64_ (4 CPU)
10:10:26 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
10:10:26 AM all 0.00 0.00 0.00 0.01 0.00 0.01 0.00 0.00 99.97
mpstat的语法如下:
mpstat [-P {|ALL}] [internal [count]]
-P 表示要监控那个CPU,CPU的个数是从0开始计数的。ALL表示所有的CPU。
mpstat -P 指定要监控的CPU 监控的时间间隔 监控重复的次数
1
2
3
4
5
# mpstat -P 1
Linux 2.6.32-220.el6.x86_64 (minunix.com) 02/08/2013 _x86_64_ (4 CPU)
12:55:56 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
12:55:56 PM 1 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 99.98
%irq 在监控的时间间隔内,CPU服务硬中断的所占的时间百分比。 %soft 在监控的时间间隔内,CPU服务软中断的所占的时间百分比。 %idle 在监控的时间间隔内,CPU闲置时间所占用的时间百分比,不包括等待磁盘IO请求的时间。
其中最重要的字段是%idle,%iowait。如果%idle 说明CPU的负载不高。如果%iowait,说明存在I/O竞争。也可以使用输出重定向保存mpstat对CPU的监控数据,用作CPU历史使用率分析。
【05 - netstat】
netstat 命令是Linux系统管理员几乎每天都会用到的命令(它已经逐步在被ss命令取代),他可以显示很多有关网络方面的信息,例如socket使用情况、路由情况、网卡情况、协议情况、网络流量统计等等。一些常用的netstat选项包括:
【06 - nmon】
nmon是Nigel’s Monitor的缩写,它是一个很知名的监视Linux系统性能的工具。nmon可以查看到处理器利用率、内存使用率、运行队列信息、磁盘IO统计、网络IO统计、换页统计等。你可以通过一个基于curses的类GUI界面来查看到上述信息。
1
|
./nmon_x86_64_rhel5 -s10 -c60 -f -m /tmp
|
参数解释:
-s10 每 10 秒采集一次数据。 -c60 采集 60 次,即为采集十分钟的数据。 -f 生成的数据文件名中包含文件创建的时间。 -m 生成的数据文件的存放目录。
生成报表: 下载 nmon analyser (生成性能报告的免费工具): http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser
【07 - pmap】
pmap:查看Linux的进程所占用的内存量
参数含义:
1
2
3
4
-x extended Show the extended format. 显示扩展格式
-d device Show the device format. 显示设备格式
-q quiet Do not display some header/footer lines. 不显示头尾行
-V show version Displays version of program. 显示版本
【08/09 - ps/pstree】
ps和pstree都是用来列出处于运行状态的进程的列表的。
ps显示每个进程使用的内存量以及所消耗的CPU时间。
pstree则是显示进程间的父子关系;
【10 - sar】
sar 主要是负责收集、汇报与存储系统运行信息的。
%