今天给客户准备环境来测试数据加载速度,需要使用工具来监控cpu,内存,磁盘IO等的情况。这里记录了一些命令来温习一下。
top
请参见top命令解释,http://blog.csdn.net/gltyi99/article/details/6761500
free
1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。
2.格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]
3.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
[root@study ~]# free -m
total used free shared buffers cached
Mem: 1010 382 628 0 29 296
-/+ buffers/cache: 57 953
Swap: 3137 0 3137
[root@study ~]# uptime
20:17:19 up 9 min, 1 user, load average: 0.00, 0.18, 0.17
现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。
[root@study ~]# uptime -V
procps version 3.2.7
vmstat
[root@study ~]# vmstat
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 643144 29748 303448 0 0 756 49 1036 145 2 2 86 10 0
1 观察磁盘活动情况
磁盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。
2 观察cpu活动情况
vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。
sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu 空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。
iostat
用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
参数:
-c 只显示CPU行
-d 显示磁盘行
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标
[root@study ~]# iostat
Linux 2.6.18-238.el5 (study) 08/09/11
avg-cpu: %user %nice %system %iowait %steal %idle
1.81 0.04 1.89 8.55 0.00 87.71
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 17.41 1285.43 86.95 659555 44612
sda1 0.17 3.78 0.01 1937 4
sda2 17.20 1280.85 86.94 657202 44608
sdb 0.35 10.01 0.03 5135 16
sdb1 0.07 3.16 0.00 1621 0
sdb2 0.20 5.45 0.03 2794 16
sdc 0.26 8.13 0.03 4171 16
sdc1 0.18 6.46 0.03 3315 16
avg-cpu: %user %nice %system %iowait %steal %idle
1.81 0.04 1.89 8.55 0.00 87.71
%iowait 等待本地I/O时CPU空闲时间的百分比
%idle 未等待本地I/O时CPU空闲时间的百分比
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 17.41 1285.43 86.95 659555 44612
每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。
基本使用
[root@study ~]# iostat -d -k 1 10
Linux 2.6.18-238.el5 (study) 08/09/11
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 11.55 423.43 29.12 329833 22686
sda1 0.11 1.24 0.00 968 2
sda2 11.41 421.92 29.12 328657 22684
sdb 0.23 3.30 0.01 2567 8
sdb1 0.05 1.04 0.00 810 0
sdb2 0.13 1.79 0.01 1397 8
sdc 0.17 2.68 0.01 2085 8
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。
tps(每秒传输数):该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。
[root@study ~]# iostat -d -x 1 10
Linux 2.6.18-238.el5 (study) 08/09/11
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 12.46 3.35 6.34 1.98 605.42 42.62 77.84 0.45 53.62 10.82 9.01
sda1 1.55 0.00 0.08 0.00 1.78 0.00 22.06 0.00 17.51 16.48 0.13
sda2 10.89 3.35 6.25 1.98 603.26 42.62 78.52 0.44 54.09 10.81 8.89
sdb 1.85 0.00 0.16 0.00 4.71 0.01 28.62 0.00 9.50 8.83 0.15
sdb1 1.29 0.00 0.03 0.00 1.49 0.00 43.81 0.00 3.59 2.95 0.01
sdb2 0.51 0.00 0.09 0.00 2.56 0.01 27.02 0.00 14.85 14.11 0.13
sdc 2.75 0.01 0.12 0.00 3.83 0.01 31.72 0.00 13.24 11.56 0.14
sdc1 2.69 0.01 0.08 0.00 3.04 0.01 36.21 0.00 18.49 16.08 0.14
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;wsec/s:每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;
await:每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
参见使用方式
$iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态
top
请参见top命令解释,http://blog.csdn.net/gltyi99/article/details/6761500
free
1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。
2.格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]
3.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
[root@study ~]# free -m
total used free shared buffers cached
Mem: 1010 382 628 0 29 296
-/+ buffers/cache: 57 953
Swap: 3137 0 3137
[root@study ~]# uptime
20:17:19 up 9 min, 1 user, load average: 0.00, 0.18, 0.17
现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。
[root@study ~]# uptime -V
procps version 3.2.7
vmstat
[root@study ~]# vmstat
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 643144 29748 303448 0 0 756 49 1036 145 2 2 86 10 0
1 观察磁盘活动情况
磁盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。
2 观察cpu活动情况
vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。
sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu 空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。
iostat
用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
参数:
-c 只显示CPU行
-d 显示磁盘行
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标
[root@study ~]# iostat
Linux 2.6.18-238.el5 (study) 08/09/11
avg-cpu: %user %nice %system %iowait %steal %idle
1.81 0.04 1.89 8.55 0.00 87.71
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 17.41 1285.43 86.95 659555 44612
sda1 0.17 3.78 0.01 1937 4
sda2 17.20 1280.85 86.94 657202 44608
sdb 0.35 10.01 0.03 5135 16
sdb1 0.07 3.16 0.00 1621 0
sdb2 0.20 5.45 0.03 2794 16
sdc 0.26 8.13 0.03 4171 16
sdc1 0.18 6.46 0.03 3315 16
avg-cpu: %user %nice %system %iowait %steal %idle
1.81 0.04 1.89 8.55 0.00 87.71
%iowait 等待本地I/O时CPU空闲时间的百分比
%idle 未等待本地I/O时CPU空闲时间的百分比
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 17.41 1285.43 86.95 659555 44612
每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。
基本使用
[root@study ~]# iostat -d -k 1 10
Linux 2.6.18-238.el5 (study) 08/09/11
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 11.55 423.43 29.12 329833 22686
sda1 0.11 1.24 0.00 968 2
sda2 11.41 421.92 29.12 328657 22684
sdb 0.23 3.30 0.01 2567 8
sdb1 0.05 1.04 0.00 810 0
sdb2 0.13 1.79 0.01 1397 8
sdc 0.17 2.68 0.01 2085 8
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。
tps(每秒传输数):该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。
[root@study ~]# iostat -d -x 1 10
Linux 2.6.18-238.el5 (study) 08/09/11
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 12.46 3.35 6.34 1.98 605.42 42.62 77.84 0.45 53.62 10.82 9.01
sda1 1.55 0.00 0.08 0.00 1.78 0.00 22.06 0.00 17.51 16.48 0.13
sda2 10.89 3.35 6.25 1.98 603.26 42.62 78.52 0.44 54.09 10.81 8.89
sdb 1.85 0.00 0.16 0.00 4.71 0.01 28.62 0.00 9.50 8.83 0.15
sdb1 1.29 0.00 0.03 0.00 1.49 0.00 43.81 0.00 3.59 2.95 0.01
sdb2 0.51 0.00 0.09 0.00 2.56 0.01 27.02 0.00 14.85 14.11 0.13
sdc 2.75 0.01 0.12 0.00 3.83 0.01 31.72 0.00 13.24 11.56 0.14
sdc1 2.69 0.01 0.08 0.00 3.04 0.01 36.21 0.00 18.49 16.08 0.14
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;wsec/s:每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;
await:每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
参见使用方式
$iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态