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 以精确的时间增量(微秒)和大小(字节)测量所有内容,并可以将所有内容写入文件以供以后分析。
它可以测量系统和任务的资源使用情况。它可以快照数据。它可以计算发生次数并在达到阈值时发送通知。
在演示中,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。
用于自动执行基于 CPU 使用情况的操作的 Guider 配置文件
Lee 还描述了该软件的批量数据分析功能,其中可以捕获来自多个来源的性能数据,例如来自汽车物体检测系统的激光雷达数据,并包含了分析数据长期趋势。
感兴趣的开发者可以一试~
作者:金宝
参考:
https://iipeace.github.io/docs/guider.html
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。