在linux下,测试数据加载速度,包括监控cpu,内存,磁盘IO等运行情况等,用到了linux下的多个命令,这里分享下。
top 命令
有关top命令的具体用法,请参考文章:
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。
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%,因为磁盘的并发能力,所以磁盘使用未必
就到了瓶颈)。
参见使用方式