资源监控工具:TrafficMonitor、btop、bashtop、bpytop、btop4win、HUATUO 本文收集几款资源CPU、网络流量、内存、磁盘等监控工具适用于各大主流操作系统。TrafficMonitor使用C开发、开源GitHub45.3K Star3.7K ForkWindows平台电脑资源监控工具。特性显示网速、CPU、内存等多项指标后台资源占用极低插件系统标准版和Lite版版本对比功能标准版Lite版网速监控√√CPU、内存利用率√√CPU、显卡、硬盘、主板温度监控√×CPU频率监控√√显卡利用率监控√×硬盘利用率监控√×网络详细信息√√插件系统√√主窗口更换皮肤√√实战以Windows平台为例打开GitHub Release下载TrafficMonitor_V1.86_x64.zip安装包解压缩双击TrafficMonitor.exe右键选项打开设置btop基于C的现代化的跨平台功能丰富开源GitHub33.6K Star1.1K Fork资源监控工具提供全面的系统监控功能和直观的、受游戏启发的界面。作为bashtop和bpytop的继任者在保持前代备受喜爱的用户体验的同时提供增强的性能和跨平台兼容性。特性系统监控实时CPU使用率多核处理器监控包含详细的每核心统计信息内存管理RAM和交换空间使用情况跟踪附带历史图表磁盘I/O所有已挂载文件系统的读写活动监控网络监控带宽使用情况支持自动缩放和接口选择进程管理详细的进程信息包含树视图和信号处理高级功能GPU监控Linux下对NVIDIA、AMD和Intel GPU的支持包含利用率和功耗指标电池监控笔记本电池状态和剩余时间估算温度传感器系统温度监控在支持的设备上可定制主题丰富的主题系统内含30多个内置主题用户体验鼠标支持完整的鼠标交互支持可点击按钮和滚动响应式界面快速、流畅的UI资源占用极低TTY模式16色终端兼容性适用于较旧系统真彩色支持24位色彩渲染适用于现代终端性能优化高效数据收集最小开销的系统指标收集智能更新速率可配置的刷新间隔平衡准确性和性能内存管理仔细的资源使用防止内存泄漏实战基于源码部署gitclone https://github.com/aristocratos/btop.gitcdbtopmakesudomakeinstallbtopbashtop基于终端的开源GitHub11.1K Star553 Fork资源监视工具适用于Linux、macOS和FreeBSD系统可直观地显示CPU、内存、磁盘、网络和进程的使用情况和统计信息。虽然比top和htop稍慢且占用更多资源但其丰富的功能和友好的用户界面使其成为一个备选项。提供一个游戏风格的响应式终端UI和可自定义的菜单使得监视各种系统指标变得容易。主要功能显示详细的进程统计信息支持进程过滤和排序可发送SIGTERM、SIGKILL和SIGINT信号到选定的进程自动缩放的网络使用图表显示磁盘的当前读写速度支持主题切换和下载实战官方提供超过安装方式# 基于源码gitclone https://github.com/aristocratos/bashtop.gitcdbashtopsudomakeinstall# 适用于Ubuntusnapsnapinstallbashtop# aptsudoadd-apt-repository ppa:bashtop-monitor/bashtopsudoaptupdatesudoaptinstallbashtop# 其他系统如Debian、Fedora、CentOS、RHEL 8、Arch Linux省略在终端执行bashtop命令看到如下窗口配置文件位于~/.config/bashtop/bashtop.cfg。用户可根据需要修改配置文件中的参数以自定义终端上度量的外观和输出。bpytop用于监控系统资源使用情况的开源GitHub10.9K Star423 Fork高级工具适用于Linux、OSX和FreeBSD系统。bashtop的Python版本即使用纯Python语言开发占比99.8%剩下0.2%是Makefile文件提供一个直观且响应迅速的用户界面显示详细的系统性能指标如内存使用、磁盘空间、网络流量和进程状态。提供许多强大的功能美观且快速响应的用户界面支持键盘和鼠标操作菜单滚动和箭头导航实时数据更新显示当前磁盘驱动器的读写速度网络使用情况的自动缩放图进程管理可过滤正在运行的进程发送SIGTERM、SIGKILL、SIGINT信号到选定的进程自定义配置UI内更改配置选项支持多种主题适用场景日常系统监控作为日常系统健康检查工具及时发现资源瓶颈故障排查利用其进程详细视图快速定位消耗资源最多的进程性能测试观察系统在极限条件下的表现调整优化参数定制化监控通过UI进行配置专注于监控特定的资源或进程实现个性化监控界面实战提供多种安装部署方式# 基于pippipinstallbpytop# Ubuntusudoaptinstallbpytop# 基于源码gitclone https://github.com/aristocratos/bpytop.gitcdbpytopsudomakeinstall安装成功后执行bpytop命令可查看到如下窗口和bashtop很类似btop4win一款专为Windows系统设计的高级资源监控开源GitHub1.9K Star66 Fork工具灵感来源于bt-top。提供实时CPU、内存、磁盘I/O和网络等资源占用情况的可视化界面。允许用户便捷地监控系统的运行状态适用于开发者、系统管理员以及对系统性能有深入了解需求的用户。btop4win的主界面设计精巧将系统关键信息分为多个清晰的功能区块如CPU监控区域、内存与存储监控、网络流量监控、进程与服务区域等。支持多种操作模式如服务监控视图特别适合系统管理员使用。提供丰富的快捷键操作让监控工作更加高效。实战从GitHub Release页面下载btop4win-LHM-x64.zip解压缩双击btop4win.exe打开如下窗口HUATUO官网填补OS可观测性领域的空白滴滴研发并捐赠给中国计算机学会(CCF)开源GitHub1K Star116 Fork针对OS的实时监控工具。利用eBPF技术常态化运行并全面收集内核各个子系统的统计指标和异常事件性能损耗小于1%并根据生产环境经验值当统计指标达到一定阈值或出现某种异常事件时从内核自动抓取异常上下文现场并及时保存如抓取用户调用栈、系统态调用栈生成火焰图、异常中断上下文等重要信息。华佗常态收集的操作系统层面的统计指标接近300项可使用Grafana或者夜莺生成这些统计指标仪表盘实时全面掌握内核工作情况。统计指标的收集是常态化运行的确保性能损耗小于1%。但抓取调用栈生成火焰图的行为是触发式的触发条件为当统计指标达到一定阈值或者出现某种异常事件。HUATUO AutoTracing即内置自动触发条件包括不限于如下CPUSYS系统态CPU时间反映内核执行开销包括系统调用、中断处理、内核线程调度、内存管理及锁竞争等操作。该指标异常升高通常表明存在内核级性能瓶颈高频系统调用、硬件设备异常、锁争用或内存回收压力kswapd直接回收等。检测到该指标异常时自动会触发抓取系统的调用栈并生成火焰图帮助定位问题根因其触发条件如下CPU Sys使用率阈值ACPU Sys使用率单位时间内增长阈值BCPUIDLEK8S容器环境CPU idle时间即CPU处于空闲状态的时间比例的突然下降通常表明容器内进程正在过度消耗CPU资源可能引发业务延迟、调度争抢甚至整体系统性能下降。根据以下条件自动触发抓取调用栈生成火焰图CPU Sys使用率阈值ACPU User使用率阈值B且CPU User使用率单位时间增长阈值CCPU Usage阈值D且CPU Usage单位时间增长阈值EDLOADD状态是一种特殊的进程状态指进程因等待内核或硬件资源而进入的一种特殊阻塞状态。与普通睡眠S状态不同D状态进程无法被强制终止包括SIGKILL也不会响应中断信号。该状态通常发生在I/O操作如直接读写磁盘、硬件驱动故障时。系统D状态突增往往和资源不可用或者锁被长期持有导致可运行进程突增往往是业务代码设计不合理导致。借助netlink获取容器running和uninterruptible进程数量通过滑动窗口算法计算出过去1分钟内容器D进程对负载做出的贡献值当平滑计算后的D状态进程负载值超过阈值时表示容器内的D状态进程数量出现异常开始触发收集容器运行情况、D状态进程信息。MemBurst用于检测宿主机上短时间内大量分配内存的情况突发性内存分配可能引发直接回收甚至OOM所以一旦突发性内存分配就需要记录相关信息。IOTracing当I/O带宽被占满或磁盘访问量突增时系统可能因I/O资源竞争而出现请求延迟升高、性能抖动甚至影响整个系统的稳定性。IOTracing在宿主磁盘负载高、IO延迟异常时输出异常时IO访问的文件名和路径、磁盘设备、inode号容器名等上下文信息。