Linux系统之dstat命令的基本使用

Linux系统之dstat命令的基本使用

Linux系统之dstat命令的基本使用一、dstat命令介绍

一、dstat命令介绍

  1. dstat简介
  2. dstat特点

二、本次实践介绍

  1. 本地环境规划
  2. 本次实践介绍

三、本地环境检查

  1. 检查操作系统版本
  2. 查看系统内核版本
  3. 检查本地yum仓库源状态

四、安装dstat工具

  1. 搜索dstat软件
  2. 安装dstat工具
  3. 查看dstat版本

五、dstat命令的帮助信息

  1. 在命令行的帮助信息
  2. dstat命令常用选项

六、dstat命令的基本使用

  1. 直接使用dstat命令
  2. 指定时间间隔显示
  3. 查看dstat能使用的所有参数
  4. 监控系统的进程

七、dstat命令的日常用法

  1. 显示最耗CPU的进程
  2. 显示最高磁盘IO的进程
  3. 显示最耗内存的进程
  4. 监控磁盘读写
  5. 监控网卡的流量
  6. 监控内存状态

一、dstat命令介绍

1. dstat简介

dstat是一个通用的系统资源统计工具,stat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令,是一个全能系统信息统计工具。

2. dstat特点

  • 实时的监控cpu、磁盘、网络、IO、内存等使用情况
  • 全能系统信息统计
  • 安装方便快速,上手简单
  • 功能强大,是运维的好帮手

二、本次实践介绍

1. 本地环境规划

本地环境规划:

hostname IP地址 dstat版本 操作系统版本
jeven 192.168.3.166 3.28.2-10 centos 7.6

2. 本次实践介绍

1.本次实践环境为个人测试环境;
2.本次实践为在centos7.6系统上安装dstat工具;
3.学会dstat工具的基本使用。

三、本地环境检查

1. 检查操作系统版本

检查本地操作系统版本

[root@jeven test]#  cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

2. 查看系统内核版本

查看系统内核版本

[root@jeven test]# uname -r 
3.10.0-957.el7.x86_64

3. 检查本地yum仓库源状态

检查本地yum仓库的状态

[root@server001 ~]# yum repolist all |grep enable 
!base/7/x86_64                               CentOS-7 - Base - m enabled: 10,072
!docker-ce-stable/7/x86_64                   Docker CE Stable -  enabled:    234
!epel/x86_64                                 Extra Packages for  enabled: 13,785
!extras/7/x86_64                             CentOS-7 - Extras - enabled:    515
!mysql-connectors-community/x86_64           MySQL Connectors Co enabled:    220
!mysql-tools-community/x86_64                MySQL Tools Communi enabled:     98
!mysql80-community/x86_64                    MySQL 8.0 Community enabled:    405
!remi-safe                                   Safe Remi's RPM rep enabled:  5,159
!updates/7/x86_64                            CentOS-7 - Updates  enabled:  4,926
!webmin                                      Webmin Distribution enabled:    243
!zabbix/x86_64                               Zabbix Official Rep enabled:    114
!zabbix-agent2-plugins/x86_64                Zabbix Official Rep enabled:      4
!zabbix-non-supported/x86_64                 Zabbix Official Rep enabled:      5


四、安装dstat工具

1. 搜索dstat软件

使用yum查找dstat软件

[root@server001 ~]# yum search dstat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
=================================================================================== N/S matched: dstat ===================================================================================
dstat.noarch : Versatile resource statistics tool

  Name and summary matches only, use "search all" for everything.


查看dstat的软件版本

[root@server001 ~]# yum list all|grep dstat
dstat.noarch                             0.7.2-12.el7                  base  

2. 安装dstat工具

使用yum直接安装dstat工具

[root@jeven ~]# yum -y install dstat
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * epel: mirrors.cqu.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package dstat.noarch 0:0.7.2-12.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================================================================================================
 Package                                    Arch                                        Version                                           Repository                                 Size
==========================================================================================================================================================================================
Installing:
 dstat                                      noarch                                      0.7.2-12.el7                                      base                                      163 k

Transaction Summary
==========================================================================================================================================================================================
Install  1 Package

Total download size: 163 k
Installed size: 752 k
Downloading packages:
dstat-0.7.2-12.el7.noarch.rpm                                                                                                                                      | 163 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : dstat-0.7.2-12.el7.noarch                                                                                                                                              1/1 
  Verifying  : dstat-0.7.2-12.el7.noarch                                                                                                                                              1/1 

Installed:
  dstat.noarch 0:0.7.2-12.el7                                                                                                                                                             

Complete!


3. 查看dstat版本

查看dstat版本

[root@jeven ~]# dstat --version
Dstat 0.7.2
Written by Dag Wieers <dag@wieers.com>
Homepage at http://dag.wieers.com/home-made/dstat/

Platform posix/linux2
Kernel 3.10.0-957.el7.x86_64
Python 2.7.5 (default, Oct 30 2018, 23:45:53) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

Terminal type: xterm (color support)
Terminal size: 39 lines, 186 columns

Processors: 4
Pagesize: 4096
Clock ticks per secs: 100

internal:
	aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, page24, proc, raw, socket, swap, swapold, sys, tcp, time, udp, unix, vm
/usr/share/dstat:
	battery, battery-remain, cpufreq, dbus, disk-tps, disk-util, dstat, dstat-cpu, dstat-ctxt, dstat-mem, fan, freespace, gpfs, gpfs-ops, helloworld, innodb-buffer, innodb-io, 
	innodb-ops, lustre, memcache-hits, mysql-io, mysql-keys, mysql5-cmds, mysql5-conn, mysql5-io, mysql5-keys, net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, power, 
	proc-count, qmail, rpc, rpcd, sendmail, snooze, squid, test, thermal, top-bio, top-bio-adv, top-childwait, top-cpu, top-cpu-adv, top-cputime, top-cputime-avg, top-int, top-io, 
	top-io-adv, top-latency, top-latency-avg, top-mem, top-oom, utmp, vm-memctl, vmk-hba, vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi


五、dstat命令的帮助信息

1. 在命令行的帮助信息

在centos命令行终端的dstat的帮助信息

[root@jeven ~]# 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

  --bits                 force bits for values expressed in bytes
  --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
  --profile              show profiling statistics when exiting dstat

delay is the delay in seconds between each update (default: 1)
count is the number of updates to display before exiting (default: unlimited)


2. dstat命令常用选项

dstat命令常用选项

-c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。
-C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息。
-d:显示磁盘读写数据大小。
-D hda,total:include hda and total。
-n:显示网络状态。
-N eth1,total:有多块网卡时,指定要显示的网卡。
-l:显示系统负载情况。
-m:显示内存使用情况。
-g:显示页面使用情况。
-p:显示进程状态。
-s:显示交换分区使用情况。
-S:类似D/N。
-r:I/O请求情况。
-y:系统状态。
--ipc:显示ipc消息队列,信号等信息。
--socket:用来显示tcp udp端口状态。
-a:此为默认选项,等同于-cdngy。
-v:等同于 -pmgdsc -D total。
--output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中。

六、dstat命令的基本使用

1. 直接使用dstat命令

直接使用dstat命令,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息,默认是1s显示一条信息。
在命令后面加上–output ,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。

[root@jeven ~]# 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 
  0   0  99   0   0   0| 221k   35k|   0     0 |   0     0 | 141   195 
  0   0 100   0   0   0|   0     0 | 328B  938B|   0     0 |  76   111 
  0   0 100   0   0   0|   0     0 | 254B  398B|   0     0 |  57    78 
  0   0 100   0   0   0|   0     0 | 314B  458B|   0     0 |  46    60 
  0   0 100   0   0   0|   0     0 | 254B  458B|   0     0 |  58    73 
  0   0 100   0   0   0|   0     0 | 254B  398B|   0     0 |  49    67 


- CPU部分解释
usr:用户空间的程序所占百分比;
sys:系统空间程序所占百分比;
idel:空闲百分比;
wai:等待磁盘I/O所消耗的百分比;
hiq:硬中断次数;
siq:软中断次数;


- disk部分解释
read:磁盘读带宽; 
writ:磁盘写带宽

- system部分解释
int、csw分别为系统的中断次数(interrupt)和上下文切换(context switch)。


- net部分解释
recv:网络收包带宽
send:网络发包带宽


- paging内存分页统计
in: page in(换入)
out:page out(换出)

2. 指定时间间隔显示

可以在最后指定显示一条信息的时间间隔,如dstat3是每3s显示一条,dstat 3 6表示每3s显示一条,一共显示6条。

[root@jeven ~]# dstat 3
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 
  0   0  99   0   0   0| 212k   33k|   0     0 |   0     0 | 137   190 
  0   0 100   0   0   0|   0     0 | 254B  573B|   0     0 |  55    71 
  0   0 100   0   0   0|   0     0 | 334B  387B|   0     0 |  59    82 
  0   0 100   0   0   0|   0     0 | 254B  387B|   0     0 |  70    78 
  0   0 100   0   0   0|   0     0 | 234B  407B|   0     0 |  53    74 
  0   0 100   0   0   0|   0     0 | 254B  387B|   0     0 |  51    68 
  0   0 100   0   0   0|   0     0 | 454B  407B|   0     0 |  55    74 
  0   0 100   0   0   0|   0     0 | 254B  407B|   0     0 |  56    78 


[root@jeven ~]# dstat 3 6
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 
  0   0  99   0   0   0| 210k   33k|   0     0 |   0     0 | 137   190 
  0   0 100   0   0   0|   0     0 | 254B  573B|   0     0 |  57    77 
  0   0 100   0   0   0|   0     0 | 428B  387B|   0     0 |  77   110 
  0   0 100   0   0   0|   0     0 | 294B  407B|   0     0 |  76   102 
  0   0 100   0   0   0|   0     0 | 254B  407B|   0     0 |  84    90 
  0   0 100   0   0   0|   0     0 | 228B  387B|   0     0 |  55    79 
  0   0 100   0   0   0|   0     0 | 214B  407B|   0     0 |  51    73 


3. 查看dstat能使用的所有参数

查看dstat能使用的所有参数使用dstat --list

[root@jeven ~]# dstat --list
internal:
	aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, page24, proc, raw, socket, swap, swapold, sys, tcp, time, udp, unix, vm
/usr/share/dstat:
	battery, battery-remain, cpufreq, dbus, disk-tps, disk-util, dstat, dstat-cpu, dstat-ctxt, dstat-mem, fan, freespace, gpfs, gpfs-ops, helloworld, innodb-buffer, innodb-io, 
	innodb-ops, lustre, memcache-hits, mysql-io, mysql-keys, mysql5-cmds, mysql5-conn, mysql5-io, mysql5-keys, net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, power, 
	proc-count, qmail, rpc, rpcd, sendmail, snooze, squid, test, thermal, top-bio, top-bio-adv, top-childwait, top-cpu, top-cpu-adv, top-cputime, top-cputime-avg, top-int, top-io, 
	top-io-adv, top-latency, top-latency-avg, top-mem, top-oom, utmp, vm-memctl, vmk-hba, vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi


4. 监控系统的进程

检查查看系统的进程

[root@jeven ~]# dstat -p 5 10
---procs---
run blk new
  0   0 3.8
  0   0   0
  0   0   0
  0   0   0
  0   0   0
  0   0   0
  0   0   0
0.4   0   0
  0   0 1.6
  0   0   0
  0   0   0


七、dstat命令的日常用法

1. 显示最耗CPU的进程

查看当前最耗CPU的进程名、PID和CPU占比以及读写信息。

[root@jeven ~]# dstat -t --top-cpu-adv 2 6
----system---- -------most-expensive-cpu-process-------
     time     |process              pid  cpu read write
14-05 05:16:31|vmtoolsd             9177 0.0%2094B   1B
14-05 05:16:33|python2              9868 0.1%   0    0 
14-05 05:16:35|kworker/1:1          224830.1%   0    0 
14-05 05:16:37|                                        
14-05 05:16:39|                                        
14-05 05:16:41|kworker/0:1          40   0.1%   0    0 
14-05 05:16:43|rngd                 9141 0.1%   0    0 

2. 显示最高磁盘IO的进程

查看当前最耗block I/O的进程名、PID和读写容量以及CPU占比。

[root@jeven ~]# dstat -t  --top-bio-adv 2 6
----system---- ----most-expensive-block-i/o-process----
     time     |process              pid  read write cpu
14-05 05:18:38|systemd              1      68k  20k0.0%
14-05 05:18:40|                                        
14-05 05:18:42|                                        
14-05 05:18:44|                                        
14-05 05:18:46|                                        
14-05 05:18:48|                                        
14-05 05:18:50|                                        


3. 显示最耗内存的进程

查看当前最耗内存的进程

[root@jeven ~]#  dstat -t --top-mem 2 6
----system---- --most-expensive-
     time     |  memory process 
14-05 05:52:02|gnome-shell  133M
14-05 05:52:05|gnome-shell  133M
14-05 05:52:07|gnome-shell  133M
14-05 05:52:09|gnome-shell  133M
14-05 05:52:10|gnome-shell  133M
14-05 05:52:13|gnome-shell  133M
14-05 05:52:15|gnome-shell  133M


4. 监控磁盘读写

监控磁盘sda的读写状态

[root@jeven ~]# dstat -t  -dD sda,total  2 6
----system---- --dsk/sda----dsk/total-
     time     | read  writ: read  writ
14-05 05:23:05| 164k   26k: 164k   26k
14-05 05:23:07|   0     0 :   0     0 
14-05 05:23:09|   0     0 :   0     0 
14-05 05:23:11|   0     0 :   0     0 
14-05 05:23:13|   0    15k:   0    15k
14-05 05:23:15|   0     0 :   0     0 
14-05 05:23:17|   0     0 :   0     0 


5. 监控网卡的流量

监控系统的某个网卡,例如ens33网卡的流量情况。

[root@jeven ~]# dstat -t  -n -N ens33,total 2 6
----system---- -net/ens33---net/total-
     time     | recv  send: recv  send
14-05 05:24:59|   0     0 :   0     0 
14-05 05:25:01| 224B  378B: 224B  378B
14-05 05:25:03| 284B  312B: 284B  312B
14-05 05:25:05| 224B  282B: 224B  282B
14-05 05:25:07| 224B  312B: 224B  312B
14-05 05:25:09| 194B  282B: 194B  282B
14-05 05:25:11| 224B  312B: 224B  312B
[root@jeven ~]# 


6. 监控内存状态

监控系统内存的状态,显示内存的各项信息。

[root@jeven ~]# dstat -t  -m  2 6
----system---- ------memory-usage-----
     time     | used  buff  cach  free
14-05 05:26:43|1209M 6168k  822M 9798M
14-05 05:26:45|1209M 6168k  822M 9798M
14-05 05:26:47|1209M 6168k  822M 9798M
14-05 05:26:49|1209M 6168k  822M 9798M
14-05 05:26:51|1209M 6168k  822M 9798M
14-05 05:26:53|1209M 6168k  822M 9798M
14-05 05:26:55|1209M 6168k  822M 9798M


posted @ 2024-01-11 09:50  寻梦99  阅读(328)  评论(0)    收藏  举报