全能系统监控工具dstat
一、什么是dstat?
通过man帮助,可以看到官方对dstat的定义为:多功能系统资源统计生成工具( versatile tool for generating system resource statistics)。在获取的信息上有点类似于top、free、iostat、vmstat等多个工具的合集,官方解释为vmstat、iostat、ifstat等工具的多功能替代品,且添加了许多额外的功能(Dstat is a versatile replacement for vmstat, iostat and ifstat. Dstat overcomes some of the limitations and adds some extra features.);其结果可以保持到csv文件,使用脚本或第三方工具对性能进行分析利用(如通过监控平台监控,也可以保持到数据库)。在Centos 6.x系统上安装基本服务器即默认安装,而在其他操作系统可能需要手动安装。
二、dstat的基本使用:
2.1 dstat的默认选项
与许多命令一样,dstat命令有默认选项,执行dstat命令不加任何参数,它默认会收集-cpu-、-disk-、-net-、-paging-、-system-的数据,一秒钟收集一次。 默认输入 dstat 等于输入了dstat -cdngy 1或dstat -a 1。
2.2 dstat的常用选项:
dstat的用法如下:
dstat [-afv] [options..] [delay [count]]
使用 dstat -h查看全部选项,这里不逐一列举,下面简单介绍下常用选项
常用选项如下:
# 直接跟数字,表示#秒收集一次数据,默认为一秒;dstat 5表示5秒更新一次
-c,--cpu 统计CPU状态,包括 user, system, idle(空闲等待时间百分比), wait(等待磁盘IO), hardware interrupt(硬件中断), software interrupt(软件中断)等;
-d, --disk 统计磁盘读写状态
-D total,sda 统计指定磁盘或汇总信息
-l, --load 统计系统负载情况,包括1分钟、5分钟、15分钟平均值
-m, --mem 统计系统物理内存使用情况,包括used, buffers, cache, free
-s, --swap 统计swap已使用和剩余量
-n, --net 统计网络使用情况,包括接收和发送数据
-N eth1,total 统计eth1接口汇总流量
-r, --io 统计I/O请求,包括读写请求
-p, --proc 统计进程信息,包括runnable、uninterruptible、new
-y, --sys 统计系统信息,包括中断、上下文切换
-t 显示统计时时间,对分析历史数据非常有用
--fs 统计文件打开数和inodes数
以上这些就是最常用的选项,而一般都组合使用,个人比较常用的是:
- dstat -cmsdnl -D sda9 -N lo,etho 100 5
三、监测界面各参数含义(部分)
Procs
- r:运行的和等待(CPU时间片)运行的进程数,这个值也可以判断是否需要增加CPU(长期大于1)
- b:处于不可中断状态的进程数,常见的情况是由IO引起的
- swpd: 切换到交换内存上的内存(默认以KB为单位)。如果 swpd 的值不为0,或者还比较大,比如超过100M了,但是 si, so 的值长期为 0,这种情况我们可以不用担心,不会影响系统性能。
- free: 空闲的物理内存
- buff: 作为buffer cache的内存,对块设备的读写进行缓冲
- cache: 作为page cache的内存, 文件系统的cache。如果 cache 的值大的时候,说明cache住的文件数多,如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。
- si: 交换内存使用,由磁盘调入内存
- so: 交换内存使用,由内存调入磁盘
内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响。磁盘IO和CPU资源都会被消耗。
- bi: 从块设备读入的数据总量(读磁盘) (KB/s)
- bo: 写入到块设备的数据总理(写磁盘) (KB/s)
- in: 每秒产生的中断次数
- cs: 每秒产生的上下文切换次数
- usr: 用户进程消耗的CPU时间百分比
us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了(比如 PHP/Perl)
- sys: 内核进程消耗的CPU时间百分比
sys 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。
- wai: IO等待消耗的CPU时间百分比
wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。
- idl: CPU处在空闲状态时间百分比
四、dstat的高级用法
dstat的功能非常强大,除了上述常用用法外,还有一些大家不常用的高级用法,如下:
3.1 找出占用资源最高的进程和用户
--top-(io|bio|cpu|cputime|cputime-avg|mem) 通过这几个选项,可以看到具体是那个用户那个进程占用了相关系统资源,对系统调优非常有效。如查看当前占用I/O、cpu、内存等最高的进程信息可以使用dstat --top-mem --top-io --top-cpu:

3.2 获取其他应用信息:
dstat除了可以获取系统关键信息外,还可以获取其他应用信息,如通过下列选项,可以获取到其他一些常用应用信息:
--postfix 显示postfix队列大小
--sendmail 显示sendmail队列大小
--ntp 显示ntp服务器时间
--nfs3 获取nfs客户端信息
--nfsd3 获取nfs服务器信息,不过nfs服务器版本需为第三版才可以,该选项还有更多用法,可以参考man帮助获取
--mysql5-(cmds|conn|io|keys ) 获取mysql5相关信息
全能系统监控工具dstat的更多相关文章
- Htop/Glances/Dstat性能测试系统监控工具领域的瑞士军刀
原文链接:https://mp.weixin.qq.com/s/TvfzIy4uXHPOFQ1h5Q4KWg 建议点击原文链接查看 续上篇分享的[性能测试工具],今天整理了常用的系统监控工具,当然有特 ...
- 非常实用的Linux 系统监控工具
随着互联网行业的不断发展,各种监控工具多得不可胜数.这里列出网上最全的监控工具.让你可以拥有超过80种方式来管理你的机器.在本文中,我们主要包括以下方面: 命令行工具 网络相关内容 系统相关的监控工具 ...
- linux学习-系统监控工具
系统监控工具 come from:https://blog.csdn.net/free050463/article/details/82842273top.free.vmstat.iostat.pma ...
- 管理员必备的Linux系统监控工具
管理员必备的Linux系统监控工具 #1: top - 进程活动 top提供一个当前运行系统实时动态的视图, 也就是正在运行进程.在默认情况下,显示系统 中CPU使用率最高的任务,并每5秒钟刷新一次. ...
- 管理员必备的20个Linux系统监控工具
需要监控Linux服务器系统性能吗?尝试下面这些系统内置或附件的工具吧.大多数Linux发行版本都装备了大量的监控工具.这些工具提供了能用作取得相关信息和系统活动的量度指标.你能使用这些工具发现造成性 ...
- 淘宝内部大量使用的开源系统监控工具--Tsar
Tsar是淘宝开发的一个非常好用的系统监控工具,在淘宝内部大量使用 它不仅可以监控CPU.IO.内存.TCP等系统状态,也可以监控Apache,Nginx/Tengine,Squid等服务器状态 ...
- 【转】管理员必备的Linux系统监控工具
原文连接: 管理员必备的Linux系统监控工具 #1: top - 进程活动 top提供一个当前运行系统实时动态的视图,也就是正在运行进程.在默认情况下,显示系统中CPU使用率最高的任务,并每5秒钟刷 ...
- 淘宝开源系统监控工具Tsar
Tsar是淘宝开发的一个非常好用的系统监控工具,在淘宝内部大量使用 它不仅可以监控CPU.IO.内存.TCP等系统状态,也可以监控Apache,Nginx/Tengine,Squid等服务器状态 ...
- Linux下系统监控工具nmon使用
Mongodb安装在Centos7或以上的版本,对于系统的监控方法如下: 1.从\\10.10.10.1\ShareDoc\User\Zchen\linux系统监控下下载2个工具 nmon16e_mp ...
随机推荐
- 洛谷P1386座位安排
座位安排 今天,在机房里做了这道题目,我来整理一下思路. 首先读懂题意,这n个人是不需要按1到n来一次安排的,也就是说你可以先安排任意一个人. 那么有一种很好排除的情况,那就是对于大于等于i的作为的需 ...
- 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(一)
D题:马的管辖 二进制枚举方案.判断该方案是否全部能被覆盖,将最优方案存下来并进行剪枝. #include<iostream> #include<cstring> #inclu ...
- jquery-能拖拽宽度的table
控件官方地址:http://www.bacubacu.com/colresizable/?utm_source=jquer.in&utm_medium=website&utm_camp ...
- jQuery源码框架fn解读
(function( window, undefined ){ var jQuery = (function(){ var jQuery = function( selector, context ) ...
- Day08 (黑客成长日记) 命名空间和作用域
Day08:命名空间和作用域: 1.命名空间: (1)内置命名空间(python解释器): 就是python解释器一旦启动就可以使用的名字储存在内置命名空间中: eg: len() print() a ...
- 使用vmware vconverter从物理机迁移系统到虚拟机P2V(多图)
zhuan:https://segmentfault.com/a/1190000002697929 本文完整记录了如何从物理服务器,保持所有环境配置信息,纹丝不动的迁移到虚拟机上,俗称 P2V .采用 ...
- Servlet创建完美教程
简介:Servlet其实是Server Let的缩写,是服务器端应用程序. java中有一个applet是客户端应用程序,与servlet对应.applet已经过时.Servlet作用:能在B/S架 ...
- webpack简单教程
1.初始化 安装node后,新建一个目录,比如html5.cmd中切到当前文件夹. npm init -y 这个命令会创建一个默认的package.json.它包含了项目的一些配置参数,通过它可以进行 ...
- mysql客户端连不上数据库
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; flush privileges ...
- La protezione del puntatore laser
Questo puntatore laser è sempre sufficientemente efficiente per eseguire il test più accurato su qua ...