1. dstat
系统默认为安装,直接安装阿里源后,yum install -y dstat安装即可,该命令整合了 vmstat , iostat 和 ifstat,我们先看下效果:
我们先看看具体参数:
[root@k8s-master ~]# 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
也可以直接用man dstat查看,比较多就不粘贴了
我们挑些常用的参数来说:
-l | 显示负载统计量 |
-m | 显示内存使用率 |
-r | 显示I/O统计 |
-s | 显示交换分区使用情况 |
-t | 将当前时间排在第一行 |
-fs | 显示文件系统统计数据(包括文件总数量和inodes值) |
-nocolor | 不显示颜色 |
-socket | 显示网络统计数据 |
-tcp | 显示常用的TCP统计 |
–udp | 显示监听的UDP接口及其当前用量的一些动态数据 |
常见的使用方法:
-–disk-util | 显示某一时间磁盘的忙碌状况 |
-–freespace | 显示当前磁盘空间使用率 |
-–proc-count | 显示正在运行的程序数量 |
-–top-bio | 指出块I/O最大的进程 |
-–top-cpu | 图形化显示CPU占用最大的进程 |
-–top-io | 显示正常I/O最大的进程 |
-–top-mem | 显示占用最多内存的进程 |
直接使用dstat,后面默认的参数为-cdngy,分别显示cpu、disk、net、page、system信息,默认每1s显示一条。
dstat 10是每隔10s显示一条
dstat 10 10 每隔10s显示一条,总共显示10条
我们来看对之前截图进行信息解读下:
usr:用户空间的程序所占用CPU的百分比
sys:系统空间的程序所占用CPU的百分比
idl:CPU空闲百分比
wai:等待磁盘I/O消耗的百分比
hiq:硬中断次数
siq:软中断次数
read:磁盘读取总数
writ:磁盘写入总数
recv:网络收包总数
send:网络发包总数
in: pagein(换入)
out:page out(换出)
int:中断次数
csw:上下文切换
2.dstat示例
dstat --top-mem --top-io --top-cpu 可以查看系统占用内存最大,占用磁盘I/O最高,占用CPU使用率最高的进程,最常用的就是这个,方便查看系统性能瓶颈
[root@k8s-master ~]# dstat --top-mem --top-io --top-cpu
--most-expensive- ----most-expensive---- -most-expensive-
memory process | i/o process | cpu process
kube-apiserv 282M|systemd 141k 162k|kube-apiserve2.4
kube-apiserv 282M|kubelet 35k 750B|kube-apiserve2.0
kube-apiserv 282M|kubelet 125k 2606B|kube-apiserve2.0
kube-apiserv 282M|etcd 1992B 50k|kube-apiserve2.5
kube-apiserv 282M|kubelet 47k 917B|kube-controll1.5
kube-apiserv 282M|kube-apiser5936B 60k|kube-apiserve2.5
kube-apiserv 282M|kubelet 81k 959B|kubelet 3.0
kube-apiserv 282M|udisksd 495k 2776B|kube-apiserve2.5
kube-apiserv 282M|kubelet 72k 1375B|kube-apiserve2.5
kube-apiserv 282M|kubelet 52k 943B|kube-apiserve2.5
kube-apiserv 282M|kubelet 48k 2209B|kube-apiserve2.5
kube-apiserv 282M|udisksd 248k 1388B|kube-apiserve2.5
kube-apiserv 282M|kubelet 125k 2659B|kube-apiserve2.5