top sar vmstat iostat free
可以作为普通用户运行这些工具。它们都利用/proc文件系统得到它们的数据。
这些性能工具和几个rpm一起提供。procps rpm提供top、free和vmstat。sysstat rpm提供sar和iostat。
top命令是一个优秀的交互实用工具,用于监视性能。
sar实用工具提供监视每一事件的能力。它至少有15个单独的报告类别,包括CPU、磁盘、网络、进程、交换区等信息。
vmstat命令报告关于内存和交换区使用的广泛信息。它也报告CPU和一些I/O信息。
iostat报告存储输入/输出(I/O)统计资料。
1、top
top显示有两个部分。大约三分之一显示关于Linux的整体信息,其余行为各个进程信息。
第一行显示最近1分钟、5分钟和15分钟的负载平均值。负载平均值表示在CPU上运行或者等待运行多少进程。uptime命令也可以用来显示负载平均值。接下来是进程信息,之后是CPU、内存和交换区信息与free命令输出类似。在确定内存和CPU使用之后的的下一个问题是哪些进程正在使用它。
解释输出
top – 14:51:45 up 8 days, 14:37, 1 user, load average: 0.10, 0.12, 0.09
Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.9%sy, 0.0%ni, 98.8%id, 0.0%wa, 0.2%hi, 0.2%si, 0.0%st
Mem: 1027148k total, 1004292k used, 22856k free, 30336k buffers
Swap: 2031608k total, 3264k used, 2028344k free, 644252k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1941 root 5 -10 671m 534m 523m S 1 53.3 182:30.96 vmware-vmx
182 root 15 0 0 0 0 S 0 0.0 0:26.48 pdflush
1 root 15 0 2040 632 544 S 0 0.1 0:01.58 init
2 root RT 0 0 0 0 S 0 0.0 0:00.26 migration/0
3 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0
4 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0
5 root RT 0 0 0 0 S 0 0.0 0:00.09 migration/1
6 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/1
7 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/1
8 root 10 -5 0 0 0 S 0 0.0 0:00.00 events/0
9 root 10 -5 0 0 0 S 0 0.0 0:00.01 events/1
10 root 10 -5 0 0 0 S 0 0.0 0:00.00 khelper
11 root 10 -5 0 0 0 S 0 0.0 0:00.00 kthread
15 root 10 -5 0 0 0 S 0 0.0 0:00.20 kblockd/0
16 root 10 -5 0 0 0 S 0 0.0 0:00.03 kblockd/1
17 root 14 -5 0 0 0 S 0 0.0 0:00.00 kacpid
109 root 14 -5 0 0 0 S 0 0.0 0:00.00 cqueue/0
110 root 14 -5 0 0 0 S 0 0.0 0:00.00 cqueue/1
输出的第一行显示负载平均值信息:
14:51:45 up 8 days, 14:37, 1 user, load average: 0.10, 0.12, 0.09
可看到已经运行时间、当前时间和用户数量,以及1分钟、5分钟、15分钟负载平均值。
接下来显示进程概要:
Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie
总共有100个进程,1个运行,99个睡眠,没有僵化进程和被停止的进程
接下来是CPU信息:
Cpu(s): 0.0%us, 0.9%sy, 0.0%ni, 98.8%id, 0.0%wa, 0.2%hi, 0.2%si, 0.0%st
接下来是内存信息:
Mem: 1027148k total, 1004292k used, 22856k free, 30336k buffers
top进程字段
PID 进程id编号
USER 进程所有者的用户名
PRI 进程的优先级
SIZE 进程大小,包括经的代码、栈和数据区域,以千字节为单位
RSS 进程使用的内存总量,以千字节为单位
SHARE 进程使用共享内存数量
STAT 进程状态,通常R表示运行,S表示休眠
%CPU 自从最近的屏幕更新以来,这个进程使用的CPU百分比
%MEM 这个进程使用的内存百分比
TIME 自从进程启动以来,这个进程使用的CPU时间量
CPU 最近执行进程的CPU
COMMAND 正在执行的命令
保存自定义
s更改刷新时间
W保存top配置(配置文件保存在用户目录下的.toprc文件)
批处理模式
top也可以以批处理模式运行
top -n 1 -b > /tmp/top.out
-n 1显示一次迭代,-b选项表示以适合写文件的文本形式输出或者定向到另一个程序。
通过批处理可以轻松完成所有任务,无需用户的干涉。所有进程都被列出,输出并不是
每5秒刷新一次。如果如果用户主目录中存在一个.toprc配置文件,那么它用来格式化显示。
linux top-交互命令
下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比
掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一
些命令会被屏蔽掉。
Ctrl+L 擦除并且重写屏幕
h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。
一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。
在安全模式中此命令被屏蔽。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 退出程序。
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。
输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S 切换到累计模式。
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。
输入0值则系统将不断刷新,默认值是5s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,
从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F 从当前显示中添加或者删除项目。
o或者O 改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t 切换显示进程和CPU状态信息。
c 切换显示命令名称和完整命令行。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
2、sar数据收集器(需要安装sysstat rpm包)
sar -u输出显示CPU信息。-u选项是sar的默认选项。该输出以百分比显示CPU的使用情况。
sar -u字段
CPU CPU编号
%user 在用户模式中运行进程所花的时间
%nice 运行正常进程所花的时间
%system 在内核(系统)中运行进程所花的时间
%iowait 没有进程在该CPU上执行,处理器等待I/O完成的时间
%idle 没有进程在该CPU上执行的时间
sar -u 5 10
其中的5 10表示以5秒为间隔取得10个脚本
磁盘I/O统计数据
sar -d 5 10
5 10选项是间隔和迭代
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: dev8-0 0.72 0.00 29.45 41.14 0.00 0.29 0.29 0.02
Average: dev253-0 3.68 0.00 29.45 8.00 0.00 0.86 0.06 0.02
Average: dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
DEV 磁盘设备
dev#-#格式的磁盘设备,其中第一个#是设备主编号,第二个#是次编号或连续编号。
tps 每秒传输(或者每秒IO数)
rd_sec/s 每秒512字节读取数。512只是一个测量单位,不表示所有磁盘I/O均使用512字节块
wr_sec/s 每秒512字节写入数。512只是一个测量单位,不表示所有磁盘I/O均使用512字节块
网络统计数据
sar提供四种不同的语法选项来显示网络信息。-n选项使用四个不同的开关:DEV、EDEV、SOCK和FULL。
DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,SOCK显示套接字信息,FULL显示所有三个开关。
sar -n DEV字段
sar -n DEV 5 2
Linux 2.6.18-53.el5 (mail.hanyi-inc.com) 09/25/2008
04:21:16 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
04:21:21 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:21:21 PM eth0 40.78 39.96 5945.49 5895.08 0.00 0.00 0.00
04:21:21 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:21:21 PM vmnet1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:21:21 PM vmnet8 0.00 0.00 0.00 0.00 0.00 0.00 0.00
IFACE LAN接口
rxpck/s 每秒钟接收的数据包
txpck/s 每秒钟发送的数据包
rxbyt/s 每秒钟接收的字节数
txbyt/s 每秒钟发送的字节数
rxcmp/s 每秒钟接收的压缩数据包
txcmp/s 每秒钟发送的压缩数据包
rxmcst/s 每秒钟接收的多播数据包
sar -n EDEV 5 2字段
sar -n EDEV 1 1
Linux 2.6.18-53.el5 (mail.hanyi-inc.com) 09/25/2008
04:32:01 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
04:32:02 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:32:02 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:32:02 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:32:02 PM vmnet1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:32:02 PM vmnet8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
IFACE LAN接口
rxerr/s 每秒钟接收的坏数据包
txerr/s 每秒钟发送的坏数据包
coll/s 每秒钟冲突数
rxdrop/s 因为缓冲充满,每秒钟丢弃的已接收数据包数
txdrop/s 因为缓冲充满,每秒钟丢弃的已发送数据包数
txcarr/s 发送数据包时,每秒载波错误数
rxfram/s 每秒接收数据包的帧对齐错误数
rxfifo/s 接收的数据包每秒FIFO过速的错误数
txfifo/s 发送的数据包每FIFO过速的错误数
sar -n SOCK字段
sar -n SOCK 3 1
Linux 2.6.18-53.el5 (mail.hanyi-inc.com) 09/25/2008
05:07:58 PM totsck tcpsck udpsck rawsck ip-frag
05:08:01 PM 190 19 0 2 0
Average: 190 19 0 2 0
totsck 使用的套接字总数量
tcpsck 使用的TCP套接字数量
udpsck 使用的UDP套接字数量
rawsck 使用的raw套接字数量
ip-frag 使用的IP段数量
(文/姜英升)