Dool
Dool 是一个命令行工具,用于监控系统的许多方面:CPU、内存、网络、平均负载等。它还包括一个强大的插件架构,可以监控其他系统指标。
安装
1. 下载最新版本的存档文件或克隆 Git 存储库:https://github.com/scottchiefbaker/dool/releases
2. 将存档解压到系统上适当的临时目录
3. 运行install.py脚本
参数
1. total-cpu-usage:
| usr |
sys |
idl |
wai |
hiq |
siq |
| 用户时间占比 |
系统时间占比 |
空闲时间占比 |
等待时间占比 |
硬中断 |
软中断 |
2. dsk/total:
| read |
writ |
| 磁盘的读总数(KB或者MB) |
磁盘的写总数(KB或者MB) |
3. net/total:
| recv |
send |
| 网络设备接收的数据总数(KB或者MB) |
网络设备发送的数据总数(KB或者MB) |
4. paging(系统的分页活动):
5. system(系统统计):
用法
1. 最常见的用法: --more预设并每 15 秒输出一次数据。可用预设为--defaults、--more、 或--all。如果没有指定延迟,Dool将默认每秒输出一次
dool --more 15 # 深色模式
dool --more --bw 15 # 灯光模式
2. 查看插件列表
dool --version
3. 显示 CPU 使用率和每个网络接口的使用情况
dool --cpu --net --time --full
4. 显示磁盘 IO 总量、/dev/vda 和 /dev/sdd
dool --disk -D total,vda,sdd
5. 显示 eth0, eth1 和 flannel.1, cni0, ens18的网络流量
dool --net -N eth0,eth1,ens18,flannel.1,cni0
示例
1. CPU性能分析
dool --cpu --top-cpu
2. 磁盘IO性能分析
dool --disk --top-bio
3. 网络性能分析
dool --net --tcp --udp
4. 查看时间、CPU、磁盘读写、IO、负载、内存、网络、最高的CPU占用和最高的内存占用
dool -tcdrlmn --top-cpu --top-mem
5. 查看8颗核心,每颗核心的使用情况和CPU使用情况
dool -cl -C 0,1,2,3,4,5,6,7 --top-cpu
iostat
1. 安装方式
yum install sysstat
2. 常用命令格式
Iostat [参数] [时间] [次数]
参数说明:
-c 显示CPU使用情况
-d 显示磁盘使用情况
-k 以K为单位显示
-m 以M为单位显示
-n 显示NFS使用情况
-N 显示磁盘阵列(LVM)信息
-P 可以报告出每块磁盘的每个分区的使用情况
-t 显示每秒向终端读取和写入的字符数和CPU的信息
-X 显示详细信息
3. cpu说明
%user:CPU处在用户模式下的时间百分比。
%nice:CPU 处在带NICE值的用户模式下的时间百分比
%system:CPU处在系统模式下的时间百分比
%iowait:CPU等待输入输出完成时间的百分比
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比
4. Device说明
tps:设备每秒的传输次数,也就是每秒I/O次数(IOPS,磁盘连续读和连续写之和)
kB_read/s:每秒从设备读出的数据量(kB/s)
kB_wrtn/s:每秒向设备写入的数据量(kB/s)
kB_read: 读出数据 的总量(kB)
kB_wrtn:写入数据 的总量(kB
5. Device详细说明
rrqm/s:每秒合并到设备的读取请求数
wrqm/s:每秒合并到设备的写请求数
r/s:每秒向磁盘发起的读操作数
w/s:每秒向磁盘发起的写操作数
rkB/s:每秒读多少个K字节
wkB/s: 每秒写多少个K字节
avgrq-sz:平均每次设备I/O操作的数据大小
avgqu-sz:平均I/O队列长度
await:平均每次设备I/O操作的等待时间(ms),一般,系统I/O响应时间应该低于5ms。若大于10ms就是较大了
r_await:每个读操作平均所需的时间。(包括硬盘设备读操作的时间,在kernel队列中等待的时间)
w_await:每个写操作平均所需的时间。(包括硬盘设备写操作的时间,在kernel队列中等待的时间)
svctm:平均每次设备I/O操作的服务时间 (ms)
%util:一秒中有百分之多少的时间用于I/O操作(被IO消耗的CPU百分比),一般地,如果是100%表示设备已经接近满负荷运行
6. 主要分析说明
%iowait过高的话,则表示硬盘存在I/O瓶颈。
%idle很高但是系统响应很慢,可能是CPU等待分配内存导致的。应加大内存容量。
-%idle如果持续低于10,则表明CPU处理能力相对较低,也就是说CPU是系统中的瓶颈了。
%util差不多到100%,说明产生的I/O请求过多,I/O系统接近满负荷
avgqu-sz:如果I/O请求压力持续超出磁盘处理能力,该值将增加,因为会造成拥塞。
如果单块磁盘的队列长度持续超过2,一般认为该磁盘存在I/O性能问题。
对于顺序读写频繁的,需要传输大块数据的任务,需要关注磁盘的吞吐量( kB_read/s ,kB_wrtn/s)。
对于磁盘随机读写频繁的任务,需要关注(tps
vmstat
获得有关进程、虚存、页面交换空间及CPU活动信息
可以看到整个系统的负载情况,而不是单独看某个进程的负载情况
vmstat 说明
| r |
b |
swpd |
free |
buff |
cache |
si |
so |
bi |
bo |
in |
cs |
us |
sy |
id |
wa |
st |
| 运行队列(多少个进程真的分配到CPU) |
阻塞的进程数量 |
虚拟机已使用的大小 |
空闲的物理内存的大小 |
已用buff大小,对块设备的读写进行缓存 |
已用的cache大小,文件系统的cache |
每秒从磁盘读入虚拟内存的大小 |
每秒虚拟内存写入磁盘的大小 |
(读磁盘)系统从块设备那里每秒接收的块数量 |
(写磁盘)每秒发送给块设备的块数量 |
每秒上下文切换数 |
每秒CPU的中断次数,包括时间中断 |
用户CPU时间(用户态使用的cpu时间比) |
系统CPU时间(系统态使用的cpu时间比) |
空闲CPU时间(空闲CPU时间占比) |
等待IO的CPU时间(cpu等待磁盘写入完成时间) |
虚拟机偷取时间 |
2. 主要分析说明
id + us + sy = 100,id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率