dstat 监控命令详解
一、工具介绍
dstat的man手册对于该工具的解释:
dstat - versatile tool for generating system resource statistics 系统资源多用途的统计工具
Dstat is a versatile replacement for vmstat, iostat and ifstat. Dstat overcomes some of the limitations and adds some extra features.
dstat可以替代vmstat、iostat、ifstat。dstat突破了vmstat、iostat、ifstat的一些限制并增加了一些额外特性。
Dstat allows its data to be directly written to a CSV file to be imported and used by OpenOffice,Gnumeric or Excel to create graphs.
dstat可以将数据重定向写入csv文件,并支持通过office工具导出和使用,也可以用excel绘图表。
二、dstat基本用法
dstat命令不加任何参数时,会收集CPU、磁盘、网络、分页、系统的数据信息,每秒收集一次。缺省参数时相当于dstat -cdngy 1或dstat -a 1。
命令格式
dstat [-afv] [options..] [delay [count]]
常用选项
| -c,--cpu | 开启cpu统计 |
| -d, --disk | 开启disk统计 |
| -D | 改选跟具体的设备名(多个用逗号隔开)如:total,hda,hdb表示分别统计total、hda、hdb设备块 |
| -i, - -int | 开启中断统计 |
| -l, --load | 开启负载均衡统计,分别是1m,5m,15m |
| -m, --mem | 开启内存统计,包括used,buffers,cache,free |
| -n, --net | 开启net统计,包括接受和发送 |
| -N | 该选项可以跟网络设备名多个用逗号隔开,如eth1,total |
| -g, --page | 开启分页统计 |
| -p, --proc | 开启进程统计,包括runnable, uninterruptible, new |
| -r, --io | io开启请求统计,包括read requests, write requests |
| -s, --swap | 开启swap统计,包括used, free |
| -S | 该选项可以跟具体的交换区,多个用逗号隔开如swap1,total |
| -t, --time | 启用时间和日期输出 |
| -y, --sys | 开启系统统计,包括中断和上下文切换 |
| --fs | 开启文件系统统计,包括 (open files, inodes) |
| --ipc | 开启ipc统计,包括 (message queue, semaphores, shared memory) |
| --output file | 输出结果到cvs文件中 |
| -a, --all | 是默认值相当于 -cdngy (default) |
| -f, --full | 相当于 -C, -D, -I, -N and -S |
参数
| 参数名称 | 参数描述 |
| delay | 两次输出之间的时间间隔,默认是1s |
| count | 报告输出的次数,默认是没有限制,一直输出知道ctrl+c |
常用选项的判断方法
进程相关
-p,--proc
-p , --proc
展示当前时刻的进程状态:可运行态(就绪态),无法中断的睡眠态(等待态),新进程,
文档原文为:runnable, uninterruptible, new。
就绪态进程多代表负载较高,配合-l参数确认,比如run为80,即当前有80个进程等待CPU处理,等待态进程多代表当前IO可能有问题,等待态进程是内存中等待非CPU资源的进程,一般是等待IO,可以根据-c的wai列确认, 进一步根据-g的in列确认是否是内存瓶颈后的恢复期,配合-s参数查看换页使用情况,
-d查看当前bio情况,如果-d的bio的read和-g的in差不多,表名当前IO主要是换页到内存加载造成的,即内存不足后的恢复期,
如果-g和-s表名换页未使用,但是-d居高,则说明当前有大量进程等待磁盘IO,
使用--top-bio-adv确定bio最高的进程,
如果-d也不高,但是-n较高,说明进程等待网络IO
使用--top-io-adv确定IO最高的进程。

--proc-count:展示进程数量,侧面反映系统负载

-y, --sys:展示系统中断次数int和上限文切换次数csw,
上下文切换:CPU运行任务1,切换运行就绪态任务2,
任务1可能变成就绪态(CPU时间片耗光),
也可能变成等待态(等待IO等非CPU资源),
CPU的处理时间片较短,中断和上下文切换次数数字会很大,
也能从侧面反映负载,如果中断和上下文切换暴涨,
表明负载过大,或者程序设计不合理,或者kernel级别的BUG。

--ipc:展示IPC(进程间通信)状态,
包括msg消息队列 ,sem线程队列,shm共享内存使用

进程最耗资源统计
--top-cpu
展示最耗CPU的进程名和CPU占比

--top-cpu-adv
展示最耗CPU的进程名、PID和CPU占比以及读写信息,
这个读写信息是一个差值,推测是内存的读写。

--top-cputime
展示耗费CPU时间最多的进程名和耗费时间(ms)

--top-latency
显示延迟最高的进程名和延迟时间(ms)

--top-bio-adv
展示当前最耗block I/O的进程名、PID和读写容量以及CPU占比
即最高磁盘IO的进程。

--top-io
展示最耗IO的进程名和IO读写信息,
被统计的IO信息包括blockIO和内存还有网络等全部,
因此如果要判定最耗磁盘读写的进程,应该使用--top-bio,
某一时刻,最耗IO和最耗blockIO的进程不一定是同一个。


--top-mem
展示最耗内存的进程名和内存消耗

--top-oom
展示最先OOM杀死的进程,OOM是内存回收机制

内存相关参数
-m, --mem
展示内存状态,包括used, buffers, cache, free

网络相关参数
-n, --net
展示总体网络收发状态,折算后附带单位友好展示

-N 必须和-n配合使用:dstat -n -N eth0,total
当存在多网卡时,可以分别指定展示各个网卡的收发状态

--socket
展示套接字状态,包括tot总数量,tcp套接字数量,udp套接字数量,
raw原始套接字数量,frg(ip-fragments IP碎片)套接字数量。

--tcp (listen, established, syn, time_wait, close)
展示tcp网络连接状态,lis监听的数量,act(established)活动的确立的数量,
synTCP/IP的握手数量,tim(time_wait)发起关闭后的等待关闭态数量,
clo关闭态数量,即命令netstat -tpln对应记录的搂取合并。

硬盘相关参数
-d, --disk
展示磁盘设备读写总计,折算后附带单位友好展示

-D 必须和-d配合使用:dstat -dD sda,sda2,total
分别展示设备sda和sda2以及总体的读写状态

--disk-tps
展示每个磁盘每秒事物读写数量

MYSQL相关参数
# mysql相关参数使用配置:
yum -y install MySQL-python
export DSTAT_MYSQL_HOST=127.0.0.1
export DSTAT_MYSQL_USER=root
export DSTAT_MYSQL_PWD='ecpss@123'
mkdir /var/lib/mysql
ln -s /usr/local/mysql/mysql.sock /var/lib/mysql/mysql.sock
# 如果功能报错,请修改/usr/share/dstat目录内对应脚本
# 如果参数--mysql5-cmds报错,则修改dstat_mysql5_cmds.py
--innodb-buffer
show innodb buffer stats
--innodb-io
show innodb I/O stats
--innodb-ops
show innodb operations counters
# 以上三个参数信息都由"show engine innodb status\G\n"获得,
# 因涉及os.popen3兼容问题,暂不研究
--mysql5-cmds
展示mysql库所有的dml操作次数,包括:
sel查询次数,ins插入次数,upd更新次数,del删除次数,
加大dstat_mysql5_cmds.py的self.width参数,以免数据展示不全,
该参数是展示数据的最大长度,数据由以下mysql库SQL提供:
show global status like 'Com_select';
show global status like 'Com_insert';
show global status like 'Com_update';
show global status like 'Com_delete';
是mysql库的内存状态,重启后数据清零。
dstat 监控命令详解的更多相关文章
- Linux 系统性能监控命令详解
Linux 系统性能监控命令详解 CPU MEMORY IO NETWORK LINUX进程内存占用查看方法 系统负载过重时往往会引起其它子系统的问题,比如:->大量的读入内存的IO请求(pag ...
- JVM监控命令详解(转)
JVM监控命令基本就是 jps.jstack.jmap.jhat.jstat 几个命令的使用就可以了 JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外 ...
- Linux系统监控命令详解
1. top命令 top命令经常用来监控Linux的系统状况,比如cpu.内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解. 输 ...
- linux资源监控命令详解
Linux统计/监控工具SAR详细介绍:要判断一个系统瓶颈问题,有时需要几个 sar 命令选项结合起来使用,例如: 怀疑CPU存在瓶颈,可用 sar -u 和 sar -q deng 等来查看 怀疑内 ...
- Linux进程实时IO监控iotop命令详解
介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. iotop 是一个用来监视磁盘 I/O 使用状况 ...
- Top 命令详解
Top 命令详解 先感受一下top命令的执行结果吧!哈哈-- top - 17:32:34 up 3 days, 8:04, 5 users, load average: 0.09, 0.12, 0. ...
- Linux命令详解之—tail命令
tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...
- iftop命令命令详解
iftop命令命令详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在Linux命令中有很多内置命令,和外置命令,但是内部命令的功能毕竟是有限的,比如ifconfig,它就不能看 ...
- netstat命令详解
它主要的用法和详解! (netstat -na 命令),本文主要是说Linux下的netstat工具,然后详细说明一下各种网络连接状态. netstat -nat |awk ‘{print $}’|s ...
随机推荐
- webjars使用
目的: Web前端使用了越来越多的JS或CSS,如jQuery,Backbone.js和Bootstrap.一般情况下,我们是将这些Web资源拷贝到Java Web项目的webapp相应目录下进行管理 ...
- Intellij IDEA中创建Package变成一级目录
1.创建包,但是出来的却是一级目录 2.因为Compact Middle Packages默认勾选上了,取消掉即可
- python下matplotlib的subplot的多图显示位置的问题
1.说明 1.1 多图: 221,222 212 ------------附最后讲解,这下更清楚了吧,取个名字:颠倒一下--- 1.2 多图 211 223,224 ------------附最后讲解 ...
- Python基础模块整理
1.shutil :可以用来对文件进行基本操作(拷贝,剪切等) 2.glob :提供了一个函数用于从目录通配符搜索中生成文件列表 3.datetime :日期和时间的处理 4.zlib ...
- Hibernate学习(七)
Hibernate缓存 1.一级缓存:Session 级别的缓存 2.二级缓存: SessionFactory 级别的缓存 3.查询缓存:需二级缓存的支持,查询缓存依赖二级缓存 一级缓存 1.依赖于 ...
- SMBUS与I2C
SMBUS(系统管理总线)基于I2C总线,主要用于电池管理系统中.它工作在主/从模式:主器件提供时钟,在其发起一次传输时提供一个起始位,在其终止一次传输时提供一个停止位:从器件拥有一个唯一的7或10位 ...
- BinaryTree(二叉树)
我认为二叉树的递归实现体现了递归思想的一些重要性质,如果对递归的理解不够的话,想利用递归来实现是很费劲的(实际上我现在都还有些懵...),虽然会用,但一些地方不能弄清楚原因. 经过几天的学习,看了许多 ...
- Centos7618安装Docker
本文基于Centos7.6.18进行安装与测试 移除旧的版本: $ sudo yum remove docker \ docker-client \ docker-client-latest \ do ...
- 关于阿里云ecs服务器无法用FTP进行连接问题
背景 前两天趁机老马又搞优惠,就又撸了一台三年的ecs来折腾,后来整了半天发现ftp怎么都连接不上,以前也是撸过阿里的服务器,不过启动盘是巨硬家的系统, 最后发现虽然服务器的防火墙关了,但是老马为了安 ...
- 访问HDFS文件系统
一.命令行接口 默认操作的是hdfs hadoop dfsadmin -safemode leave/enter---离开或进入安全模式 hadoop fs -copyFromLocal loc ...