使用vmstat和iostat命令进行Linux性能监控-阿里云开发者社区

开发者社区> 玄学酱> 正文

使用vmstat和iostat命令进行Linux性能监控

简介:
+关注继续查看

使用vmstat和iostat命令进行Linux性能监控

这是我们正在进行的Linux命令和性能监控系列的一部分。vmstatiostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris)。

如果vmstatiostat命令在你的系统中不可用,请安装sysstat软件包。vmstatsariostat命令都包含在sysstat(系统监控工具)软件包中。iostat命令生成CPU和所有设备的统计信息。你可以从这个连接中下载源代码包编译安装sysstat,但是我们建议通过YUM命令进行安装。

在Linux系统中安装sysstat


  1. #yum -y install sysstat
  • vmstat - 内存,进程和分页等的简要信息。
  • iostat - CPU统计信息,设备和分区的输入/输出统计信息。

Linux下vmstat命令的6个范例

1. 列出活动和非活动的内存

如下范例中输出6列。vmstat的man页面中解析的每一列的意义。最重要的是内存中的free属性和交换分区中的siso属性。


  1. [root@tecmint ~]# vmstat -a
  2.  
  3. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
  4. r b swpd free inact active si so bi bo in cs us sy id wa st
  5. 1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
  • Free – 空闲的内存空间
  • si – 每秒从磁盘中交换进内存的数据量(以KB为单位)。
  • so – 每秒从内存中交换出磁盘的数据量(以KB为单位)。

注意:如果你不带参数的执行vmstat命令,它会输出自系统启动以来的总结报告。

2. 每X秒执行vmstat,共执行N次

下面命令将会每2秒中执行一次vmstat,执行6次后自动停止执行。


  1. [root@tecmint ~]# vmstat 2 6
  2.  
  3. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
  4. r b swpd free buff cache si so bi bo in cs us sy id wa st
  5. 0 0 0 810420 22064 101368 0 0 56 3 50 57 0 3 95 2 0
  6. 0 0 0 810412 22064 101368 0 0 0 0 16 35 0 0 100 0 0
  7. 0 0 0 810412 22064 101368 0 0 0 0 14 35 0 0 100 0 0
  8. 0 0 0 810412 22064 101368 0 0 0 0 17 38 0 0 100 0 0
  9. 0 0 0 810412 22064 101368 0 0 0 0 17 35 0 0 100 0 0
  10. 0 0 0 810412 22064 101368 0 0 0 0 18 36 0 1 100 0 0

3. 带时间戳的vmstat命令

-t参数执行vmstat命令,该命令将会在每一行输出后都带一个时间戳,如下所示。


  1. [tecmint@tecmint ~]$ vmstat -t 1 5
  2.  
  3. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp---
  4. r b swpd free buff cache si so bi bo in cs us sy id wa st
  5. 0 0 0 632028 24992 192244 0 0 70 5 55 78 1 3 95 1 0 2012-09-02 14:57:18 IST
  6. 1 0 0 632028 24992 192244 0 0 0 0 171 514 1 5 94 0 0 2012-09-02 14:57:19 IST
  7. 1 0 0 631904 24992 192244 0 0 0 0 195 600 0 5 95 0 0 2012-09-02 14:57:20 IST
  8. 0 0 0 631780 24992 192244 0 0 0 0 156 524 0 5 95 0 0 2012-09-02 14:57:21 IST
  9. 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.  
  3. 1030800 total memory
  4. 524656 used memory
  5. 277784 active memory
  6. 185920 inactive memory
  7. 506144 free memory
  8. 26864 buffer memory
  9. 310104 swap cache
  10. 2064376 total swap
  11. 0 used swap
  12. 2064376 free swap
  13. 4539 non-nice user cpu ticks
  14. 0 nice user cpu ticks
  15. 11569 system cpu ticks
  16. 329608 idle cpu ticks
  17. 5012 IO-wait cpu ticks
  18. 79 IRQ cpu ticks
  19. 74 softirq cpu ticks
  20. 0 stolen cpu ticks
  21. 336038 pages paged in
  22. 67945 pages paged out
  23. 0 pages swapped in
  24. 0 pages swapped out
  25. 258526 interrupts
  26. 392439 CPU context switches
  27. 1346574857 boot time
  28. 2309 forks

5. 磁盘统计信息

vmstat-d参数将会输出所有磁盘的统计信息。


  1. [tecmint@tecmint ~]$ vmstat -d
  2.  
  3. disk- ------------reads------------ ------------writes----------- -----IO------
  4. total merged sectors ms total merged sectors ms cur sec
  5. ram0 0 0 0 0 0 0 0 0 0 0
  6. ram1 0 0 0 0 0 0 0 0 0 0
  7. ram2 0 0 0 0 0 0 0 0 0 0
  8. ram3 0 0 0 0 0 0 0 0 0 0
  9. ram4 0 0 0 0 0 0 0 0 0 0
  10. ram5 0 0 0 0 0 0 0 0 0 0
  11. ram6 0 0 0 0 0 0 0 0 0 0
  12. ram7 0 0 0 0 0 0 0 0 0 0
  13. ram8 0 0 0 0 0 0 0 0 0 0
  14. ram9 0 0 0 0 0 0 0 0 0 0
  15. ram10 0 0 0 0 0 0 0 0 0 0
  16. ram11 0 0 0 0 0 0 0 0 0 0
  17. ram12 0 0 0 0 0 0 0 0 0 0
  18. ram13 0 0 0 0 0 0 0 0 0 0
  19. ram14 0 0 0 0 0 0 0 0 0 0
  20. ram15 0 0 0 0 0 0 0 0 0 0
  21. loop0 0 0 0 0 0 0 0 0 0 0
  22. loop1 0 0 0 0 0 0 0 0 0 0
  23. loop2 0 0 0 0 0 0 0 0 0 0
  24. loop3 0 0 0 0 0 0 0 0 0 0
  25. loop4 0 0 0 0 0 0 0 0 0 0
  26. loop5 0 0 0 0 0 0 0 0 0 0
  27. loop6 0 0 0 0 0 0 0 0 0 0
  28. loop7 0 0 0 0 0 0 0 0 0 0
  29. sr0 0 0 0 0 0 0 0 0 0 0
  30. sda 7712 5145 668732 409619 3282 28884 257402 644566 0 126
  31. dm-0 11578 0 659242 1113017 32163 0 257384 8460026 0 126
  32. dm-1 324 0 2592 3845 0 0 0 0 0 2

6. 以MB为单位输出统计信息

vmstat-S-M参数(大写和MB)将会以MB为单位输出。vmstat默认以KB为单位输出统计信息。


  1. [root@tecmint ~]# vmstat -S M 1 5
  2.  
  3. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
  4. r b swpd free buff cache si so bi bo in cs us sy id wa st
  5. 0 0 0 346 53 476 0 0 95 8 42 55 0 2 96 2 0
  6. 0 0 0 346 53 476 0 0 0 0 12 15 0 0 100 0 0
  7. 0 0 0 346 53 476 0 0 0 0 32 62 0 0 100 0 0
  8. 0 0 0 346 53 476 0 0 0 0 15 13 0 0 100 0 0
  9. 0 0 0 346 53 476 0 0 0 0 34 61 0 1 99 0 0

linux下的Iostat命令的6个范例

1. 输出CPU和输入/输出(I/O)的统计信息

不带参数的iostat命令将会输出CPU和每个分区的输出/输出的统计信息,如下所示。


  1. [root@tecmint ~]# iostat
  2.  
  3. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
  4.  
  5. avg-cpu: %user %nice %system %iowait %steal %idle
  6. 0.12 0.01 1.54 2.08 0.00 96.24
  7.  
  8. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
  9. sda 3.59 161.02 13.48 1086002 90882
  10. dm-0 5.76 159.71 13.47 1077154 90864
  11. dm-1 0.05 0.38 0.00 2576 0

2. 只输出CPU的统计信息

iostat命令的-c参数仅输出CPU的统计信息,如下所示。


  1. [root@tecmint ~]# iostat -c
  2.  
  3. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
  4.  
  5. avg-cpu: %user %nice %system %iowait %steal %idle
  6. 0.12 0.01 1.47 1.98 0.00 96.42

3. 只输出磁盘的输入/输出统计信息

iostat命令的-d参数仅输出磁盘的所有分区的输入/输出的统计信息,如下所示。


  1. [root@tecmint ~]# iostat -d
  2.  
  3. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
  4.  
  5. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
  6. sda 3.35 149.81 12.66 1086002 91746
  7. dm-0 5.37 148.59 12.65 1077154 91728
  8. dm-1 0.04 0.36 0.00 2576 0

4. 只输出某个磁盘的输入/输出统计信息

在默认情况下iostat命令会输出所有分区的统计信息,但是若在iostat命令后加上-p参数和磁盘设备名,该命令将会仅输出列出的磁盘的输入/输出统计信息,如下所示。


  1. [root@tecmint ~]# iostat -p sda
  2.  
  3. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
  4.  
  5. avg-cpu: %user %nice %system %iowait %steal %idle
  6. 0.11 0.01 1.44 1.92 0.00 96.52
  7.  
  8. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
  9. sda 3.32 148.52 12.55 1086002 91770
  10. sda1 0.07 0.56 0.00 4120 18
  11. sda2 3.22 147.79 12.55 1080650 91752

5. 输出逻辑卷管理(LVM)的统计信息

iostat命令的-N(大写)参数将会输出LVM(LCTT译注:LVM是linux环境下对磁盘分区进行管理的一种机制,是磁盘分区和文件系统间的一个逻辑层)的统计信息,如下所示。


  1. [root@tecmint ~]# iostat -N
  2.  
  3. Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
  4.  
  5. avg-cpu: %user %nice %system %iowait %steal %idle
  6. 0.11 0.01 1.39 1.85 0.00 96.64
  7.  
  8. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
  9. sda 3.20 142.84 12.16 1086002 92466
  10. vg_tecmint-lv_root 5.13 141.68 12.16 1077154 92448
  11. vg_tecmint-lv_swap 0.04 0.34 0.00 2576 0

6. iostat版本信息

iostat的-V(大写)参数将会输出iostat的版本信息,如下所示。


  1. [root@tecmint ~]# iostat -V
  2.  
  3. sysstat version 9.0.4
  4. (C) Sebastien Godard (sysstat orange.fr)

注意vmstatiostat的输出中包含多列的数据和标志,限于篇幅无法在本文中进行详细的解析。如果你想知道更多的信息,请查看vmstatiostat的man帮助手册。如果你觉得本文对你有价值,请在下面的评论框中与你的朋友分享。

原文发布时间:2014-10-16

本文来自云栖合作伙伴“linux中国”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux 服务器建站新手教程不需要敲一行命令【小白篇】
Linux 服务器配置、运行、不用敲命令 WordPress 建站攻略——助力新手快速利用Linux系统建立属于自己的站点——给新手节省宝贵的时间,避免采坑!
335 0
【译】Databricks使用Spark Streaming和Delta Lake对流式数据进行数据质量监控介绍
本文主要对Databricks如何使用Spark Streaming和Delta Lake对流式数据进行数据质量监控的方法和架构进行了介绍,本文探讨了一种数据管理架构,该架构可以在数据到达时,通过主动监控和分析来检测流式数据中损坏或不良的数据,并且不会造成瓶颈。
1192 0
SET STATISTICS IO和SET STATISTICS TIME 在SQL Server查询性能优化中的作用
原文:SET STATISTICS IO和SET STATISTICS TIME 在SQL Server查询性能优化中的作用 近段时间以来,一直在探究SQL Server查询性能的问题,当然也漫无目的的查找了很多资料,也从网上的大神们的文章中学到了很多,在这里,向各位大神致敬。
927 0
iOS中 性能优化之浅谈load与initialize 韩俊强的博客
一. +load 源码分析 extern bool hasLoadMethods(const headerType *mhdr); extern void prepare_load_methods(const headerType *mhdr); void load_im...
969 0
PostgreSQL prepared statement和simple query的profile及性能差异
prepared statement是非常重要的高并发SQL优化手段之一,效果也显而易见。下面是测试,同时观察绑定和不绑定的情况下的profile。在未使用绑定变量的时候,新增或上升了一些硬解析相关的CODE。 测试数据 postgres=# create table test(id i
2480 0
Linux 命令详解(四)使用 Nmon 监控 Linux 的系统性能
使用 Nmon 监控 Linux 的系统性能 http://mp.weixin.qq.com/s/fUgHwGjoWd5IQPjlnU6zFw
907 0
PostgreSQL 12: 新增 pg_stat_progress_create_index 视图监控索引创建进度
PostgreSQL 12 版本之前,对PostgreSQL大表创建索引时是一个比较痛苦的过程,创建索引过程中无法得知索引创建进度,PostgreSQL 12 在运维监控功能方面得到增强,新增 pg_stat_progress_create_index 视图可以监控索引的创建进度,本文简单演示。
1343 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
20710
文章
438
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载