这篇文章主要介绍一些Linux性能检测相关的命令。 vmstat和iostat的两个命令可以运行在主流的Linux/Unix操作系统上。
如果vmstat和iostat命令不能再你的电脑上运行,请安装sysstat包。因为vmstat和iostat命令是集成在SYSSTAT(系统监视工具)包里面。 iostat命令主要生成CPU和所有设备统计报告。你可以下载并安装SYSSTAT,如果使用源代码tar包安装,从这里下载SYSSTAT,但我们建议你使用yum命令安装。
Linux下安装Sysstat
1. # yum -y install sysstat
vmstat:搜集内存、进程,paging等信息
iostat:中央处理单元(CPU)的统计数据和设备、分区输入/输出统计信息。
在Linux下6个vmstat命令例子:
1、列出活动和非活动的内存
在下面的示例中,有6列。每列的详细介绍在vmstat的man手册都会有详细解释。最显著的字段是memory下的free,swap下的si以及so。
1. [root@tecmint ~]# vmstat -a
2. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
3. r b swpd free inact active si so bi bo in cs us sy id wa st
4. 1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
A、free : 空闲的空间。
B、si : 从磁盘到Swap的速度是千字节每秒。
C、so :从Swape到磁盘的速度是千字节每秒。
注意:如果您运行vmstat不带参数,它缺省会显示汇总报告。
2、每隔’X'秒执行vmstat一次(N为执行的次数)
使用此命令,执行的vmstat每隔2秒钟执行一次,执行6次后自动停止。
1. [root@tecmint ~]# vmstat 2 6
2. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
3. r b swpd free buff cache si so bi bo in cs us sy id wa st
4. 0 0 0 810420 22064 101368 0 0 56 3 50 57 0 3 95 2 0
5. 0 0 0 810412 22064 101368 0 0 0 0 16 35 0 0 100 0 0
6. 0 0 0 810412 22064 101368 0 0 0 0 14 35 0 0 100 0 0
7. 0 0 0 810412 22064 101368 0 0 0 0 17 38 0 0 100 0 0
8. 0 0 0 810412 22064 101368 0 0 0 0 17 35 0 0 100 0 0
9. 0 0 0 810412 22064 101368 0 0 0 0 18 36 0 1 100 0 0
3、vmstat命令带时间戳
vmstat命令使用-t参数显示时间戳,如下图所示的每一行都会记录。
1. [tecmint@tecmint ~]$ vmstat -t 1 5
2. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp---
3. r b swpd free buff cache si so bi bo in cs us sy id wa st
4. 0 0 0 632028 24992 192244 0 0 70 5 55 78 1 3 95 1 0 2012-09-02 14:57:18 IST
5. 1 0 0 632028 24992 192244 0 0 0 0 171 514 1 5 94 0 0 2012-09-02 14:57:19 IST
6. 1 0 0 631904 24992 192244 0 0 0 0 195 600 0 5 95 0 0 2012-09-02 14:57:20 IST
7. 0 0 0 631780 24992 192244 0 0 0 0 156 524 0 5 95 0 0 2012-09-02 14:57:21 IST
8. 1 0 0 631656 24992 192244 0 0 0 0 189 592 0 5 95 0 0 2012-09-02 14:57:22 IST
4、各种计数器的统计信息
用vmstat -s参数来显示各种事件计数器和内存统计信息。
1. [tecmint@tecmint ~]$ vmstat -s
2. 1030800 total memory
3. 524656 used memory
4. 277784 active memory
5. 185920 inactive memory
6. 506144 free memory
7. 26864 buffer memory
8. 310104 swap cache
9. 2064376 total swap
10. 0 used swap
11. 2064376 free swap
12. 4539 non-nice user cpu ticks
13. 0 nice user cpu ticks
14. 11569 system cpu ticks
15. 329608 idle cpu ticks
16. 5012 IO-wait cpu ticks
17. 79 IRQ cpu ticks
18. 74 softirq cpu ticks
19. 0 stolen cpu ticks
20. 336038 pages paged in
21. 67945 pages paged out
22. 0 pages swapped in
23. 0 pages swapped out
24. 258526 interrupts
25. 392439 CPU context switches
26. 1346574857 boot time
27. 2309 forks
5、磁盘统计
用vmstat的-d选项显示所有磁盘的统计数据。
1. [tecmint@tecmint ~]$ vmstat -d
2. disk- ------------reads------------ ------------writes----------- -----IO------
3. total merged sectors ms total merged sectors ms cur sec
4. ram0 0 0 0 0 0 0 0 0 0 0
5. ram1 0 0 0 0 0 0 0 0 0 0
6. ram2 0 0 0 0 0 0 0 0 0 0
7. ram3 0 0 0 0 0 0 0 0 0 0
8. ram4 0 0 0 0 0 0 0 0 0 0
9. ram5 0 0 0 0 0 0 0 0 0 0
10. ram6 0 0 0 0 0 0 0 0 0 0
11. ram7 0 0 0 0 0 0 0 0 0 0
12. ram8 0 0 0 0 0 0 0 0 0 0
13. ram9 0 0 0 0 0 0 0 0 0 0
14. ram10 0 0 0 0 0 0 0 0 0 0
15. ram11 0 0 0 0 0 0 0 0 0 0
16. ram12 0 0 0 0 0 0 0 0 0 0
17. ram13 0 0 0 0 0 0 0 0 0 0
18. ram14 0 0 0 0 0 0 0 0 0 0
19. ram15 0 0 0 0 0 0 0 0 0 0
20. loop0 0 0 0 0 0 0 0 0 0 0
21. loop1 0 0 0 0 0 0 0 0 0 0
22. loop2 0 0 0 0 0 0 0 0 0 0
23. loop3 0 0 0 0 0 0 0 0 0 0
24. loop4 0 0 0 0 0 0 0 0 0 0
25. loop5 0 0 0 0 0 0 0 0 0 0
26. loop6 0 0 0 0 0 0 0 0 0 0
27. loop7 0 0 0 0 0 0 0 0 0 0
28. sr0 0 0 0 0 0 0 0 0 0 0
29. sda 7712 5145 668732 409619 3282 28884 257402 644566 0 126
30. dm-0 11578 0 659242 1113017 32163 0 257384 8460026 0 126
31. dm-1 324 0 2592 3845 0 0 0 0 0 2
6、统计显示以MB为单位
vmstat以兆为单位显示,用参数-S和M(大写)。参数-S对应的值可以是k, K, m or M (默认为 kb)
1. [root@tecmint ~]# vmstat -S M 1 5
2. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
3. r b swpd free buff cache si so bi bo in cs us sy id wa st
4. 0 0 0 346 53 476 0 0 95 8 42 55 0 2 96 2 0
5. 0 0 0 346 53 476 0 0 0 0 12 15 0 0 100 0 0
6. 0 0 0 346 53 476 0 0 0 0 32 62 0 0 100 0 0
7. 0 0 0 346 53 476 0 0 0 0 15 13 0 0 100 0 0
8. 0 0 0 346 53 476 0 0 0 0 34 61 0 1 99 0 0
在Linux下6个iostat命令例子
7、显示CPU和I/O统计信息
iostat的不带参数的显示CPU和I/ O的所有分区的统计信息,如下图所示。
1. [root@tecmint ~]# iostat
2. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
3. avg-cpu: %user %nice %system %iowait %steal %idle
4. 0.12 0.01 1.54 2.08 0.00 96.24
5. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
6. sda 3.59 161.02 13.48 1086002 90882
7. dm-0 5.76 159.71 13.47 1077154 90864
8. dm-1 0.05 0.38 0.00 2576 0
8、只显示CPU的统计信息
用iostat的-c参数,如下图所示只显示CPU统计信息。
1. [root@tecmint ~]# iostat -c
2. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
3. avg-cpu: %user %nice %system %iowait %steal %idle
4. 0.12 0.01 1.47 1.98 0.00 96.42
9、只显示磁盘的I/O统计
用iostat的-D参数显示只有I/O的所有分区的统计数据。
1. [root@tecmint ~]# iostat -d
2. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
3. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
4. sda 3.35 149.81 12.66 1086002 91746
5. dm-0 5.37 148.59 12.65 1077154 91728
6. dm-1 0.04 0.36 0.00 2576 0
10、只显示单一设备的I/O统计信息。
默认情况下,它会显示所有分区的统计信息,使用-p和设备名称参数只显示只显示磁盘用于特定设备的I/O统计信息。
1. [root@tecmint ~]# iostat -p sda
2. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
3. avg-cpu: %user %nice %system %iowait %steal %idle
4. 0.11 0.01 1.44 1.92 0.00 96.52
5. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
6. sda 3.32 148.52 12.55 1086002 91770
7. sda1 0.07 0.56 0.00 4120 18
8. sda2 3.22 147.79 12.55 1080650 91752
11、显示LVM统计
使用-n(大写)参数只显示LVM的统计数据,如图所示。
1. [root@tecmint ~]# iostat -N
2. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
3. avg-cpu: %user %nice %system %iowait %steal %idle
4. 0.11 0.01 1.39 1.85 0.00 96.64
5. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
6. sda 3.20 142.84 12.16 1086002 92466
7. vg_tecmint-lv_root 5.13 141.68 12.16 1077154 92
- 448
- vg_tecmint-lv_swap 0.04 0.34 0.00 2576 0
12、iostat的版本。
与-V(大写)参数显示iostat的版本,如下所示。
1. [root@tecmint ~]# iostat -V
2. sysstat version 9.0.4
(C) Sebastien Godard (sysstat orange.fr)
注:vmstat和iostat的包含列和标志可能不能详细解释。