Linux系统上面提供的一些流行且常用的系统资源生成工具包括vmstat、netstat、iostat、ifstat和mpsta,它们主要用于报告来自不同系统组件的统计信息,例如虚拟内存、网络连接和接口、CPU、输入/输出设备等。
作为一名Linux系统管理人员,或许你正在寻找一种可以为你提供上述工具所能提供的一体化工具,甚至是一种具有附加特性和功能的单一而强大的工具,那么千万不要错过Dool。
Dool是一个强大、灵活且多功能的命令行工具,用于监控Linux系统资源的各个方面,例如CPU、内存、网络、平均负载等。此外,它还具有额外的功能和计数器,并且具有高度可扩展性,具有Python知识的用户可以构建自己的插件。
Dool工具为Linux系统监控和维护带来极大方便,它具有以下优势特点:
- 连接来自vmstat、netstat、iostat、ifstat和mpstat工具的信息
- 同时显示统计数据
- 排列计数器并具有高度可扩展性
- 支持分组块/网络设备的汇总
- 显示每个设备的中断
- 在准确的时间范围内工作,当系统受到压力时不会发生时间变化
- 支持彩色输出,不同的单位用不同的颜色表示
- 显示准确的单位并尽可能限制转换错误
- 支持将CSV输出导出到Gnumeric和Excel文档
在Linux系统中安装Dool
要在现代Linux发行版上安装Dool工具,需要克隆Git存储库并安装它,以便在性能调优测试或故障排除练习期间监控Linux系统:
git clone https://github.com/scottchiefbaker/dool.git cd dool ./install.py 或 sudo ./install.py
Dool实时工作,在列中输出选择性信息,包括默认情况下每秒显示的统计数据的大小和单位。
注意:Dool工具的输出专门针对人类解读,而不是作为其它工具处理的输入。。
下面是运行dool命令后看到的输出,不带任何选项和参数:
dool
上面的输出表明:
- CPU使用情况:用户(usr)进程、系统(sys)进程的CPU使用情况,以及空闲(idl)和等待(wai)进程的数量以及被窃取时间(stl)。
- 磁盘统计:磁盘上的读(read)和写(writ)操作总数。
- 网络统计:网络接口上接收(recv)和发送(send)的字节总数。
- 负载均衡:显示系统在不同时间间隔(1分钟、5分钟、15分钟)内的平均负载。
- 系统统计:提供指示数据收集时间的时间戳。
要显示vmstat
提供的信息,请使用
-v
或--vmstat
选项:
dool --vmstat
在上图中,dstat显示释义如下:
- 进程统计:正在运行(run)、阻塞(BLK)和新生成的(new)进程的数量。
- 内存统计:已使用(used)、缓冲(buff)、缓存(catch)和空闲(free)内存量。
- 页面统计:表示系统的页面(page)活动情况,特别是指内存分页(paging)的相关指标。这些指标包括页面输入(page in)和页面输出(page out)的数量,以及由于内存不足而导致的页面交换(swap)情况。
另外,已经在第一个示例中解释了最后三个部分(CPU、磁盘和系统统计信息),这里就不相信说了。
接下来让我们深入了解一些高级的Dool系统监控命令。在下一个示例中,我们要监视使用最多CPU和消耗最多内存的单个程序。
命令中的选项包括:
-c
:CPU使用率--top-cpu
:使用最多CPU的进程-dn
:磁盘和网络统计信息--top-mem
:消耗最多内存的进程
$ dool -c --top-cpu -dn --top-mem
此外,你还可以通过启用如下示例中的--output
选项,将Dool的输出存储为.csv
文件,以便以后进行分析。
在这里,小编主要显示时间、CPU、内存和系统负载统计信息, 每5次更新之间间隔一秒(即5次计数)。
dool --time --cpu --mem --load --output report.csv 1 5
生成报告后,你可以使用任何支持 CSV 文件的文本编辑器或电子表格应用程序查看它。
需要注意的是,你可以将多个内部插件(例如前面示例中使用的选项)和外部插件与Dool一起使用,要查看所有可用插件的列表,请运行以下命令:
dool --list
更多使用信息,请运行man dool
命令或访问dool github主页进行了解。
总结
总的来说,Dool是一款多功能、一体化的系统资源统计生成工具,它结合了来自其它几个工具(例如vmstat、mpstat、iostat、netstat和ifstat)的信息,使用起来相当更加方便。
如果你是Linux管理人员,那么Dool工具应该会对你有所帮助,感兴趣的话可以去了解下,当然也不妨尝试去用用。