← 返回运维监控

⚔️ 命令行 vs 大屏对比

同一件事的两种做法 · 左命令行(深色)右大屏(白色)

1🖥️ 看 CPU 使用率

目标:知道 CPU 高不高、哪个线程在吃满。

⌨️ 命令行
# 实时看哪个进程吃CPUtop# 看某进程的线程级CPUtop -H -p 12345# 综合状态vmstat 1
🖥️ Grafana CPU曲线
历史趋势:过去24h曲线。多机对比:30台机器一张图。聚合:集群平均。
[ CPU% ▁▃▅█▇▅▃▁ ] 集群30台·峰值95%@14:32
命令行优零成本、看到当前进程列表;缺点:无历史,一次一台
大屏优有历史趋势、多机对比、阈值告警;缺点:看不到具体进程
2📜 查日志

目标:搜错误、看异常栈、定位时间段。

⌨️ 命令行
tail -f app.loggrep -A20 "NullPtr" app.loggrep -c "ERROR" app.logawk '/14:00/,/14:05/' app.log
🖥️ Kibana
全文搜索:输关键字秒出。结构化筛选:按level/service过滤。错误率趋势:跨机搜索。
[level:ERROR][service:order]→1,204条·错误率▁▂▁▇█
命令行优无需额外组件、灵活;缺点:大文件慢、多机逐台
大屏优跨机搜索、可视化趋势;缺点:依赖ELK搭好
3🔗 看请求卡在哪(链路)

目标:一个慢请求跨了哪些服务、卡在哪段。

⌨️ 命令行
grep "traceId=abc" *.log# 人脑拼调用链# 算每段耗时# 费时易漏
🖥️ SkyWalking
调用链拓扑图:服务间依赖一目了然。瀑布图:每段耗时,红色标慢节点
gateway(5ms)→order(🔴820ms)→[DB 780ms]
命令行优什么环境都能用;缺点:跨服务拼链极痛苦
大屏优自动成树、慢节点高亮;几乎只能用大屏
4☕ 看 JVM(GC/堆/线程)

目标:GC频不频繁、堆涨不涨、线程卡在哪。

⌨️ 命令行(JDK自带)
jstat -gcutil PID 1000jmap -histo PID | headjmap -dump:format=b,file=h.bin PIDjstack PID
🖥️ Grafana JVM面板
GC曲线:YGC/FGC频率和耗时。堆内存趋势:Eden/Old区涨没涨。线程状态:BLOCKED数。
[Old ▁▃▅▆▇█][FGC ▁▁▁▁▇█]
命令行优唯一能dump堆/导线程栈;缺点:只看当下,dump有STW风险
大屏优长期趋势、跨实例;缺点:看不到具体对象
结论:大屏擅长"趋势+对比+预警",命令行擅长"当前现场+深度下钻"。正确姿势是大屏发现→命令行深入
运维监控 · 命令行vs大屏 · 全栈资料库