性能测试、评估和优化一直是系统管理维护人员工作的重点。当我们针对一台生产应用进行分析的时候,获取如CPU、内存、IO、网络吞吐和进程负载的基础数据,对于后续的性能评测和优化是至关重要的。

Linux作为目前应用最广泛的服务器操作系统,为了应对各种性能问题,已经发展出很多原生的性能检测工具。从top、vmstat、iostat到mpstat,已经可以对操作系统主要性能方面进行详细的分析。

面对越来越复杂的分析情况,我们在实践中往往需要那种全局综合性的性能工具。在一个工具里面,将所有的数据收集展现在一起。本篇主要介绍一下基于开源架构的dstat性能分析工具。

1、Dstat下载与安装

Dstat是一个自由开放团体开发的开源软件,可以从作者网站上下载到,网址为:http://dag.wiee.rs/home-made/dstat/。

根据不同的操作系统版本,Dstat提供了不同版本的安装RPM或者其他格式安装包。笔者系统为红帽6.5,所以选择适合版本进行安装。

[root@xxx-MIGPC-DB uploads]# uname -a

Linux xxx-MIGPC-DB 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

[root@xxx-MIGPC-DB uploads]# ls -l

total 164

-rw-r--r-- 1 root root 164276 Dec  3 09:25 dstat-0.7.2-1.el6.rfx.noarch.rpm

安装Dstat及其简单,借助rpm工具可以直接安装。

[root@xxx-MIGPC-DB uploads]# rpm -ivh dstat-0.7.2-1.el6.rfx.noarch.rpm

warning: dstat-0.7.2-1.el6.rfx.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY

Preparing...                ########################################### [100%]

1:dstat                  ########################################### [100%]

[root@xxx-MIGPC-DB uploads]# rpm -qa | grep dstat

dstat-0.7.2-1.el6.rfx.noarch

2、Dstat使用方法

从官方途径上,我们可以找到正式的dstat的html格式说明文档。在实际中,我们可以通过help参数来显示功能参数。

[root@xxx-MIGPC-DB uploads]# dstat --help

Usage: dstat [-afv] [options..] [delay [count]]

Versatile tool for generating system resource statistics

Dstat options:

-c, --cpu              enable cpu stats

-C 0,3,total          include cpu0, cpu3 and total

-d, --disk            enable disk stats

-D total,hda          include hda and total

-g, --page            enable page stats

-i, --int              enable interrupt stats

-I 5,eth2              include int5 and interrupt used by eth2

-l, --load            enable load stats

-m, --mem              enable memory stats

-n, --net              enable network stats

-N eth1,total          include eth1 and total

-p, --proc            enable process stats

-r, --io              enable io stats (I/O requests completed)

-s, --swap            enable swap stats

-S swap1,total        include swap1 and total

-t, --time            enable time/date output

-T, --epoch            enable time counter (seconds since epoch)

-y, --sys              enable system stats

--aio                  enable aio stats

--fs, --filesystem    enable fs stats

--ipc                  enable ipc stats

--lock                enable lock stats

--raw                  enable raw stats

--socket              enable socket stats

--tcp                  enable tcp stats

--udp                  enable udp stats

--unix                enable unix stats

--vm                  enable vm stats

--plugin-name          enable plugins by plugin name (see manual)

--list                list all available plugins

-a, --all              equals -cdngy (default)

-f, --full            automatically expand -C, -D, -I, -N and -S lists

-v, --vmstat          equals -pmgdsc -D total

--float                force float values on screen

--integer              force integer values on screen

--bw, --blackonwhite  change colors for white background terminal

--nocolor              disable colors (implies --noupdate)

--noheaders            disable repetitive headers

--noupdate            disable intermediate updates

--output file          write CSV output to file

delay is the delay in seconds between each update (default: 1)

count is the number of updates to display before exiting (default: unlimited)

从参数类型上,我们可以看到Dstat对于操作系统的监控支持是比较全面的,包括CPU、内存、磁盘和网络等多个方面。针对不同的监控需要,用户只需要输入不同的控制参数,就可以在一个结果集合中进行持续性监控。

默认情况下,Dstat监控行为如下:

[root@xxx-MIGPC-DB uploads]# dstat

You did not select any stats, using -cdngy by default.

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--

usr sys idl wai hiq siq| read  writ| recv  send|  in  out | int  csw

1  0  98  0  0  0|1395B  41k|  0    0 |  0    11B| 410  2134

25  0  75  0  0  0|  0    0 |  60B  378B|  0    0 |2058  2057

25  0  75  0  0  0|  0    32k| 401B  635B|  0    0 |2112  2128

26  0  75  0  0  0|  0    0 |  60B  170B|  0    0 |2075  2067

25  1  75  0  0  0|  0    0 | 303B  170B|  0    0 |2069  2091

25  0  75  0  0  0|  0    64k| 120B  170B|  0    0 |2042  2052

25  0  75  0  0  0|  0    0 |  60B  170B|  0    0 |2121  2102

25  0  75  0  0  0|  0    0 |  60B  170B|  0    0 |2055  2075

25  1  74  0  0  0|  0    32k| 120B  170B|  0    0 |2091  2094

默认情况下,采用cdngy参数,监控CPU、磁盘、网络、内存分页和系统统计量。

如果需要单项监控,只需要输入单个参数即可。

[root@xxx-MIGPC-DB dev]# dstat -c

----total-cpu-usage----

usr sys idl wai hiq siq

1  0  98  0  0  0

16  1  83  0  0  0

16  1  83  0  0  0

17  2  78  4  0  0

16  1  83  0  0  0

如果需要显示时间,可以通过-t参数来指定。

[root@xxx-MIGPC-DB dev]# dstat -a -t

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ----system----

usr sys idl wai hiq siq| read  writ| recv  send|  in  out | int  csw |    time

1  0  98  0  0  0|1403B  41k|  0    0 |  0    11B| 410  2134 |03-12 10:18:34

16  1  80  3  0  0|  0  2280k|  53k  99k|  0    0 |2855  3135 |03-12 10:18:35

16  1  83  0  0  0|  0    32k|  53k  100k|  0    0 |2539  2842 |03-12 10:18:36

16  1  83  0  0  0|  0    0 |  53k  98k|  0    0 |2504  2799 |03-12 10:18:37

默认情况是每秒钟收集一次,如果希望和vmstat类似指定时间间隔和采样数量,可以直接在后面输入参数。

[root@xxx-MIGPC-DB dev]# dstat -at 3 10

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ----system----

usr sys idl wai hiq siq| read  writ| recv  send|  in  out | int  csw |    time

1  0  98  0  0  0|1404B  41k|  0    0 |  0    11B| 410  2134 |03-12 10:24:42

16  1  83  0  0  0|  0    11k|  54k  97k|  0    0 |2513  2828 |03-12 10:24:45

17  1  83  0  0  0|  0    19k|  53k  96k|  0    0 |2493  2807 |03-12 10:24:48

17  1  82  0  0  0|  0    16k|  47k  93k|  0    0 |2460  2727 |03-12 10:24:51

17  1  82  0  0  0|  0    17k|  45k  92k|  0    0 |2423  2683 |03-12 10:24:54

从经验看,推荐使用的一种参数是-cdlmnpsy,可以比较充分的显示系统全貌。

[root@xxx-MIGPC-DB dev]# dstat -cdlmnpsy

----total-cpu-usage---- -dsk/total- ---load-avg--- ------memory-usage----- -net/total- ---procs--- ----swap--- ---system--

usr sys idl wai hiq siq| read  writ| 1m  5m  15m | used  buff  cach  free| recv  send|run blk new| used  free| int  csw

1  0  98  0  0  0|1404B  41k|0.12 0.19 0.18|1458M  125M 13.6G  611M|  0    0 |0.0  0 0.4| 286M 7730M| 410  2134

17  1  82  0  0  0|  0    32k|0.19 0.21 0.18|1458M  125M 13.6G  611M|  51k  98k|  0  0  0| 286M 7730M|2540  2828

16  1  83  0  0  0|  0    0 |0.19 0.21 0.18|1458M  125M 13.6G  611M|  57k  103k|  0  0  0| 286M 7730M|2530  2862

17  1  82  0  0  0|  0    0 |0.19 0.21 0.18|1458M  125M 13.6G  611M|  52k  96k|  0  0  0| 286M 7730M|2498  2810

Dstat还支持将收集结果导出csv文件中。

[root@xxx-MIGPC-DB ~]# dstat -c --output res.csv

----total-cpu-usage----

usr sys idl wai hiq siq

1  0  98  0  0  0

18  1  82  0  0  0

17  1  82  0  0  0

17  1  82  0  0  0

18  1  82  0  0  0

16  1  83  0  0  0

16  1  83  0  0  0

16  1  83  0  0  0

15  1  84  0  0  0

17  1  83  0  0  0

[root@xxx-MIGPC-DB ~]# ls -l | grep res.csv

-rw-r--r--  1 root root  1955 Dec  3 10:28 res.csv

csv还是比较规整的类型。

3、结论

当我们进行操作系统层面全面监控的时候,Dstat作为一个开源工具,还是比较有实际价值的。

linux dstat,使用Dstat来进行Linux综合性能诊断相关推荐

  1. 必备的 Linux 性能诊断分析工具!(文末送书)

    阅读本文大概需要 8.8 分钟. 作者:董西孝 来源:http://t.cn/Ehs6xfz 福利:文末留言送 3 本Linux系统安全相关书籍<Linux系统安全:纵深防御.安全扫描与入侵检测 ...

  2. Linux终端下 dstat 监控工具

    查看全部内存都有谁在占用: dstat -g -l -m -s --top-mem 显示一些关于CPU资源损耗的数据: dstat -c -y -l --proc-count --top-cpu 输出 ...

  3. Linux 操作系统课程练习题(五)综合练习

    Linux 操作系统课程练习题(五)综合练习 一. 按要求完成如下操作,请把相关命令写出来 查看当前所在工作目录: pwd 查看根目录下 tmp 中文件的详细信息: ls -l /tmp 显示当前系统 ...

  4. linux进程属主6,20150917 Linux进程查看与管理以及作业管理

    第一.基础知识 MBR引导--内核--内核程序-->协调其它程序 一般内核运行在硬件之上,各应用也在硬件之前 1)OS的基本功能:文件系统.网络功能.进程管理.内存管理.驱动程序.安全功能 以上 ...

  5. linux常用命令、linux系统、linux属于什么操作系统、linux系统安装、linux怎么读、linux和windows的区别、linux配置ip地址、linux系统一般用来,在线查询工具

    linux vi编辑器常用命令 linux 查看ip linux find -name 查找文件名 linux shell linux 查看端口占用 linux 删除文件命令 linux cp命令复制 ...

  6. Linux程序设计实验项目六,《linux程序设计》实验教学大纲

    <linux程序设计>实验教学大纲 课程名称:Linux程序设计 课程编号:408412420408436407 适用专业:计算机科学与技术网络工程软件工程 总 学 分:3 总 学 时:4 ...

  7. Linux操作系统使用基础05:Linux磁盘与文件系统管理

    目录 1. 文件系统特性 1.1 概述 1.1.1 操作系统相关性 1.1.2 磁盘与文件系统的关系 1.2 文件数据的存放 1.2.1 索引式 1.2.2 链表式 2. Linux的Ext2文件系统 ...

  8. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  9. 大数据学习笔记之Linux基础(一):Linux初窥

    文章目录 一.Linux入门概述 1.1 概述 1.2 下载地址 1.3 Linux特点 1.4 Linux和Windows区别 二.VM安装相关 2.1 安装VMWare虚拟机 2.2 安装Cent ...

  10. 尚观linux视频配套教程,尚观最新嵌入式Linux基础视频教程 98集嵌入式Linux巨制视频教程 新手必备...

    尚观最新嵌入式Linux基础视频教程 98集嵌入式Linux巨制视频教程 新手必备 5.jpg (67.09 KB, 下载次数: 0) 2018-4-16 09:34 上传 1.jpg (44.17 ...

最新文章

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 6. 神经网络
  2. UVA11997求前k个和,多路归并问题
  3. (chap5 web服务器) 数据转发之“网关和隧道”
  4. 《环形女人》:“穿透”与“征兆”(全文)
  5. android Handler Message传递参数,handler子线程和主线程通讯
  6. MySQL group-by-modifiers
  7. abp 基于api接口的页面内容提交
  8. 图解win7中IIS7.0的安装及配置ASP环境
  9. Ubuntu 16.04 编译源码并安装 Caffe (CPU only)
  10. dbv oracle驱动,oracle dbv使用详解
  11. 4位共阴极数码管的动态扫描电路VHDL设计
  12. 快速查看电脑内存型号方法
  13. 虹科教您|实现OPC UA C/S快速部署及数据采集
  14. java 获取office文件页数_jacob如何获取word文档的页码
  15. seek 方法java,Seek.java
  16. sbt介绍与构建Scala项目
  17. 微信小程序解决跳转时携带参数乱码的问题 ?
  18. 解决 “/lib64/libc.so.6: version `GLIBC_2.18‘ not found (required by /lib64/libstdc++.so.6)“
  19. 警校计算机专业代码,最全!全国50所警校的警号,你最喜欢哪一个?
  20. CSS弹性布局(一)

热门文章

  1. netmeeting的使用(详解)
  2. MSDTC报错怎么破
  3. 如何为你的CSDN博客加入百度统计
  4. Hexo + GitHub搭建个人博客 --- Standard Edition
  5. java正则匹配_Java正则表达式详解
  6. linux安装安卓fastboot,Android的fastboot协议
  7. 4412 使用小度wifi
  8. python代码实现生成二维码
  9. AI 人工智能学习之微积分
  10. PopWindow的简单使用