开源版 Linux 性能监控守护进程与自动化工具 Guider 发布

2024年 4月 29日 78.3k 0

Guider 由韩国现代公司的工程师 Peace Lee 历时九年打造,配备了超过 150 个性能跟踪和可视化命令行工具。

Guider作者 Peace Lee

Guider 使用Python编写并从命令行运行,是一款适用于 Linux 系统的完整可观察性套件,具有超过 150 个用于分析与实验的命令,能够执行各种方式的监视、分析、跟踪和日志记录功能。

Guider最初于 2021 年在GPL 2 许可证下发布,迄今为止已经在 GitHub 上获得了 585 颗星,并有 86 个分支。

https://github.com/iipeace/guider

Lee 目前在韩国现代汽车公司担任性能架构师,因工作原因创建了 Guider。

他需要一种极其准确且占用空间小的实时监控工具,该工具能够检测问题并提交调试日益复杂的车载软件系统所需的报告。

他发现现有的Linux 性能监控和分析命令行实用程序集太难使用,至少无法满足他自己的需要。

他这样说道:

“大多数平台都提供良好的调试和分析应用程序。然而,当问题的范围扩展到服务或平台级别(例如汽车系统)时,分析和改进它就变得更加困难,”

Guider 可以做什么?

Guider的代码可从 GitHub 获取,也可以通过 Pip 下载到你喜欢的 Python 环境中。安装后,Guider可以对CPU 和 GPU、内存、存储和其他驱动程序、中断请求和进程间通信 ( IPC )进行设置。

Guider 以精确的时间增量(微秒)和大小(字节)测量所有内容,并可以将所有内容写入文件以供以后分析。

它可以测量系统和任务的资源使用情况。它可以快照数据。它可以计算发生次数并在达到阈值时发送通知。

在演示中,Lee 使用memtrace命令来跟踪 100MB 应用程序的内存使用情况。

Guider 的许多功能类似于内置 Linux 命令行工具的功能,例如 Top,它显示系统性能的顶层视图。

$ python3 guider/guider.py top -a[Top Info] [Time: 4588832.570] [Inter: 1.0] [Ctxt: 314463] [Life: +0/-0] [IRQ: 26606] [Core: 4] [Task: 498/625] [Load: 0/0/0] [RAM: 125.7G] [Swap: 4.0G]           [Cycle: 8.3G / Inst: 5.7G / IPC: 0.69 / CacheMiss : 13.7M(23%) / BrcMiss: 25.7M(1%) / Clk: 38.7G / MinFlt: 358 / MajFlt: 0]==========================================================================================================================================================  ID   |  CPU(Usr/Ker/Blk/IRQ)|MemAvl( Per/ User/Cache/Kern)| Swap( Per/ In/Out)| PgRclm  | BlkRW | NrFlt | PrBlk | NrSIRQ | PgMlk | PgDirt |  Network   |----------------------------------------------------------------------------------------------------------------------------------------------------------Total  | 10 %( 1 / 6 / 0 / 0 )|124649(  96/  453/ 5690/1787)|    0(   0/  0/  0)|   0/0   |  0/0  |   0   |   0   | 15889  | 4616  |   20   |    2K/0    |----------------------------------------------------------------------------------------------------------------------------------------------------------CPU [#####                                     ]    MEM [###                                       ]    SWAP [                                          ]|----------------------------------------------------------------------------------------------------------------------------------------------------------Core/0 |100 %(66 /34 / 0 / 0 )|###################################################################|   powersave   |  0-0   |  24 C | 2874 Mhz [1171-3515]|Core/1 |  7 %( 0 / 6 / 0 / 0 )|####                                                               |   powersave   |  0-1   |  22 C | 2307 Mhz [1171-3515]|Core/2 |  0 %( 0 / 0 / 0 / 0 )|                                                                   |   powersave   |  0-2   |  23 C | 2165 Mhz [1171-3515]|Core/3 |  0 %( 0 / 0 / 0 / 0 )|                                                                   |   powersave   |  0-3   |  22 C | 2170 Mhz [1171-3515]|==========================================================================================================================================================     Process (    PID/   PPID/  Nr/ Pri)| CPU(Usr/Ker/Dly)| VSS( RSS/Txt/Shr/Swp)| Blk(  RD/  WR/NrFlt)| SID | USER | FD | LifeTime|       Parent        |----------------------------------------------------------------------------------------------------------------------------------------------------------      screen (   2451/      1/   1/C  0)| 100( 66/ 34/  0)|  11(   6/  0/  2/  0)|   0(   -/   -/    0)| 2451|peacel|  64|53d:00:22|           systemd(1)|         yes (1341199/1340350/   1/C  0)|  99(  0/ 99/  0)|   5(   0/  0/  0/  0)|   0(   -/   -/    0)| 2452|peacel|  64| 00:00:03|          vi(1340350)|kworker/u80: (1341030/      2/   1/C  0)|  90(  0/ 90/  0)|   0(   0/  0/  -/  -)|   0(   -/   -/    0)|    -|  root|  64| 00:15:46|          kthreadd(2)|kworker/u80: (1340705/      2/   1/C  0)|  26(  0/ 26/  0)|   0(   0/  0/  -/  -)|   0(   -/   -/    0)|    -|  root|  64| 02:04:59|          kthreadd(2)|kworker/u80: (1340966/      2/   1/C  0)|  21(  0/ 21/  0)|   0(   0/  0/  -/  -)|   0(   -/   -/    0)|    -|  root|  64| 00:20:56|          kthreadd(2)|                               [ TOTAL ]| 344.0(  72/ 271)|RSS:   1G / Swp:    0)| 0.0(   -/   -/    0)|      Yld: -|       Prmt: -|            Task: 498|----------------------------------------------------------------------------------------------------------------------------------------------------------     [Z]bash ( 820918/ 820917/   1/C  0)|   0(  0/  0/  -)|   0(   0/  0/  0/  -)|   0(   -/   -/    0)|    -|     -|   -| 3d:06:10| tmux: server(820917)|----------------------------------------------------------------------------------------------------------------------------------------------------------

如果你想知道为什么你的应用程序启动缓慢、为什么你的应用程序会中间退出、你的视频卡顿或者系统突然自行重置,请尝试使用 Guider。

自动报告功能

如果这 150 多个命令本身还不够令人印象深刻,那么该款软件还附带了一套看起来非常强大的报告和可视化工具。

它可以使用SVG可视化结果,并可以通过浏览器轻松呈现。在许多情况下都会使用熟悉的火焰图、热图等其他熟悉的可观测性格式。

Guider 还可以配置为检查事件、观察何时达到阈值、记录异常情况报告,甚至执行其他命令作为响应。

用于自动执行基于 CPU 使用情况的操作的 Guider 配置文件

Lee 还描述了该软件的批量数据分析功能,其中可以捕获来自多个来源的性能数据,例如来自汽车物体检测系统的激光雷达数据,并包含了分析数据长期趋势。

感兴趣的开发者可以一试~

作者:金宝

参考:

https://iipeace.github.io/docs/guider.html

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论