Linux终端下 dstat 监控工具

关于dstat

  1. dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。
  2. dstat可以让你实时地看到所有系统资源,例如,你能够通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内)。
  3. dstat将以列表的形式为你提供选项信息并清晰地告诉你是在何种幅度和单位显示输出。这样更好地避免了信息混乱和误报。更重要的是,它可以让你更容易编写插件来收集你想要的数据信息,以从未有过的方式进行扩展。
  4. Dstat的默认输出是专门为人们实时查看而设计的,不过你也可以将详细信息通过CSV输出到一个文件,并导入到Gnumeric或者Excel生成表格中。

特性

  1. 结合了vmstat,iostat,ifstat,netstat以及更多的信息
  2. 实时显示统计情况
  3. 在分析和排障时可以通过启用监控项并排序
  4. 模块化设计
  5. 使用python编写的,更方便扩展现有的工作任务
  6. 容易扩展和添加你的计数器(请为此做出贡献)
  7. 包含的许多扩展插件充分说明了增加新的监控项目是很方便的
  8. 可以分组统计块设备/网络设备,并给出总数
  9. 可以显示每台设备的当前状态
  10. 极准确的时间精度,即便是系统负荷较高也不会延迟显示
  11. 显示准确地单位和和限制转换误差范围
  12. 用不同的颜色显示不同的单位
  13. 显示中间结果延时小于1秒
  14. 支持输出CSV格式报表,并能导入到Gnumeric和Excel以生成图形

安装方法

Ubuntu/Mint和Debin系统:

本地软件库中有相关安装包,你可以用下面命令安装:

# sudo apt-get install dstat

RHEL/Centos和Fedora系统:

你可以在romforge软件库中添加有相关安装包,参照指导,使用如下命令很简单就能进行安装:

# yum install dstat

ArchLinux系统:

相关软件包在社区资源库中,你可以用这个命令来安装:

# pacman -S dstat

使用方法

dstat的基本用法就是输入dstat命令。

CPU状态:CPU的使用率。这项报告更有趣的部分是显示了用户,系统和空闲部分,这更好地分析了CPU当前的使用状况。如果你看到"wait"一栏中,CPU的状态是一个高使用率值,那说明系统存在一些其它问题。当CPU的状态处在"waits"时,那是因为它正在等待I/O设备(例如内存,磁盘或者网络)的响应而且还没有收到。

磁盘统计:磁盘的读写操作,这一栏显示磁盘的读、写总数。

网络统计:网络设备发送和接受的数据,这一栏显示的网络收、发数据总数。

分页统计:系统的分页活动。分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散,大多数情况下你都希望看到page in(换入)和page out(换出)的值是0 0。

系统统计:这一项显示的是中断(int)和上下文切换(csw)。这项统计仅在有比较基线时才有意义。这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。

默认情况下,dstat每秒都会刷新数据。如果想退出dstat,你可以按"CTRL-C"键。

需要注意的是报告的第一行,通常这里所有的统计都不显示数值的。

这是由于dstat会通过上一次的报告来给出一个总结,所以第一次运行时是没有平均值和总值的相关数据。

但是dstat可以通过传递2个参数运行来控制报告间隔和报告数量。例如,如果你想要dstat输出默认监控、报表输出的时间间隔为3秒钟,并且报表中输出10个结果,你可以运行如下命令:

dstat 3 10

在dstat命令中有很多参数可选,你可以通过man dstat命令查看,大多数常用的参数有这些:

  1. -l :显示负载统计量
  2. -m :显示内存使用率(包括used,buffer,cache,free值)
  3. -r :显示I/O统计
  4. -s :显示交换分区使用情况
  5. -t :将当前时间显示在第一行
  6. –fs :显示文件系统统计数据(包括文件总数量和inodes值)
  7. –nocolor :不显示颜色(有时候有用)
  8. –socket :显示网络统计数据
  9. –tcp :显示常用的TCP统计
  10. –udp :显示监听的UDP接口及其当前用量的一些动态数据

当然不止这些用法,dstat附带了一些插件很大程度地扩展了它的功能。你可以通过查看/usr/share/dstat目录来查看它们的一些使用方法,常用的有这些:

  1. -–disk-util :显示某一时间磁盘的忙碌状况
  2. -–freespace :显示当前磁盘空间使用率
  3. -–proc-count :显示正在运行的程序数量
  4. -–top-bio :指出块I/O最大的进程
  5. -–top-cpu :图形化显示CPU占用最大的进程
  6. -–top-io :显示正常I/O最大的进程
  7. -–top-mem :显示占用最多内存的进程

举一些例子:

查看全部内存都有谁在占用:

dstat -g -l -m -s --top-mem

显示一些关于CPU资源损耗的数据:

dstat -c -y -l --proc-count --top-cpu

如何输出一个csv文件

想输出一个csv格式的文件用于以后,可以通过下面的命令:

# dstat –output /tmp/sampleoutput.csv -cdn

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2014-07-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GA小站

Google Optimize使用指南(2018)

虽然站点已经有一些关于google optimize的文章,但是仍有不少的人问这方面的问题,在这里再写一篇关于优化工具的内容,偏重于部署实施,主要流程都会配备截...

19530
来自专栏Java进阶架构师

「架构技术专题」超详细网站伸缩性架构的设计(7)

使用服务器集群,即将相同服务部署在多台服务器上构成一个集群整体对外提供服务。具体来说,集群伸缩性又分为应用服务器集群伸缩性和数据服务器集群伸缩性。这两种集群对于...

13820
来自专栏Coding+

使用 youtube-dl 下载网络视频

youtube-dl 是一个命令行程序,用于从 YouTube.com 和其他几个网站下载视频。它需要 Python 解释器,版本2.6,2.7或3.2+,它是...

3.3K20
来自专栏ImportSource

MartinFowler告诉你大数据架构师必备的NoSQL技能-版本戳(上)

-许多NoSQL数据库的批评者老说NoSQL数据库不支持事务。 ? 事务是一个有用的工具,他可以帮助编程者解决一致性的问题。然而,NoSQL的推崇者并不担心这个...

37080
来自专栏linux驱动个人学习

调度器增强

到目前为止,我们只考虑了实时系统上的调度。事实上, Linux可以做得更好些。除了支持多个CPU之外,内核也提供其他几种与调度相关的增强功能,在以后几节里会论述...

12910
来自专栏刘君君

Rest Notes-基于网络应用的架构风格

14720
来自专栏企鹅号快讯

11个让你吃惊的Linux终端命令

我已经用了十年的linux了,通过今天这篇文章我将向大家展示一系列的命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我。 ? 1. 命...

25990
来自专栏无题

mongoDB生产环境三种模式

MongoDb在用于生产环境的三种模式,master/slaves(主从模式);replcation副本集;auto shard 分片模式 1.主从复制 ...

90350
来自专栏杨建荣的学习笔记

Oracle闪回原理-Logminer解读redo(r11笔记第17天)

说到闪回日志,我们都知道闪回日志中记录的都是逆操作,那么就有两个问题需要解释了。 闪回日志和回滚段保存的数据有什么差别? 如果做了truncate操作,闪回日志...

392120
来自专栏程序员笔记

开发一个可维护的程序

18540

扫码关注云+社区

领取腾讯云代金券