学习黑客Linux 系统状态管理
(概览)
闭关良久,韩立终将「系统状态管理」炼成九式心法:CPU / 进程、内存、磁盘 I/O、网络、服务守护、日志溯源、启动耗时、性能长录与自动巡检。每式皆附灵纹咒语与洞察要点,助修者于 Linux 主机中“听风辨气”,先知瓶颈、未动先制。
🌪️ 第一式·观天象 —— CPU 与进程灵息
术法 | 核心用法 | 重点洞察 |
---|---|---|
top / htop | 动态查看 CPU%、负载、进程树 | 按 P 排序,可迅速发现高占用 PID (LFCS认证备考电子书) |
uptime | 显示 1/5/15 min Load Average | 单核负载 >1 即排队;多核除以 CPU 数量再评估 (数字海洋, Unix & Linux Stack Exchange) |
sar -u 1 3 | 1 秒采样 3 次 CPU 视图 | %idle≈0 长期出现→过载 (Rackspace Technology Documentation) |
vmstat 1 | 进程、内存、I/O 汇总 | r 队列>CPU 核心数=忙;si/so 表示 swap 抖动 (LFCS认证备考电子书) |
/proc/stat | 精确采样脚本来源 | 可自制 Python 轮询输出 (Unix & Linux Stack Exchange) |
负载口诀:“一看平均,二观队列,三查 CPU 空闲”——配合
sar
历史日志,可定位尖峰时刻。(数字海洋, phoenixNAP | Global IT Services)
🌊 第二式·探灵潮 —— 内存与交换
free -h
# total used free buff/cache available
buff/cache
并非浪费,而是内核页缓存;关键是 available ≥20 % 保平稳 (The world’s open source leader)。
术法 | 用途 | ||
---|---|---|---|
`cat /proc/meminfo | grep -E 'Mem | Swap’` | 精细字段(Active/Inactive) (The world’s open source leader) |
`dmesg | grep -i oom` | 查 OOM Killer 痕迹 (phoenixNAP | Global IT Services) | |
vmstat -s | 汇总结存、交换、分页 |
若频繁 si/so
,先排查应用泄漏,再考虑 swapoff -a
+内存加容。
⛰️ 第三式·测地脉 —— 磁盘与 I/O
术法 | 关键输出 | 判读 |
---|---|---|
df -hT | 分区挂载&剩余 | inodes (%) 亦要留意 |
iostat -dx 3 | %util / await 参数 | %util≈100 说明磁盘队列满 (IBM - United States) |
du -sh /var/* | 目录体积排行 | 找日志膨胀点 |
smartctl -a /dev/sda | S.M.A.R.T. 健康 | 预警重映射扇区 |
🌐 第四式·循脉络 —— 网络连接与延迟
ss -tulpan # 现代替身,速度远胜 netstat
ip -s link # 网卡包计数、错误帧
可配合 tcpdump -i eth0 port 443 -w tls.pcap
定点抓包,再用 Wireshark 过滤 tcp.stream eq 0
分析握/挥手序列。(Rackspace Technology Documentation)
🔧 第五式·御守护 —— systemd 服务阵
咒语 | 效果 |
---|---|
systemctl status nginx | 看活跃/退出码/最近日志 (数字海洋) |
systemctl --failed | 一键列失败单元 (Unix & Linux Stack Exchange, Baeldung) |
systemctl list-units --type=service | 总览服务与负载 |
systemd-analyze blame | 启动耗时排行(Reddit, VMware) |
修者箴言:写/改 unit 文件务必
systemctl daemon-reload
并配journalctl -u xxx -f
逐行盯。若需快速复位,可systemctl reset-failed
清除失败计数。(数字海洋)
📜 第六式·观天书 —— 日志汇流
journalctl -xe
:实时高亮错误级。journalctl --since "1 hour ago" -u sshd
:镜像单元追溯。- 结合
journalctl --disk-usage
调整日志配额。(Log Analysis | Log Monitoring by Loggly)
dmesg -T | less
可查看内核新近告警;硬件故障、驱动加载一览无遗 (phoenixNAP | Global IT Services)。
⚔️ 第七式·定滞障 —— 防火墙 & 流控
- nftables:
nft list ruleset
完整策略输出,性能优于旧 iptables (Unix & Linux Stack Exchange)。 - tc:
tc qdisc show dev eth0
查看队列;tc qdisc add dev eth0 root tbf rate 20mbit burst 25kbit latency 50ms
限速实验 (Reddit)。
⏱️ 第八式·长记录 —— sar & sysstat
启用 sysstat
计划任务后,sar -u -f /var/log/sa/sa10
可回放历史 CPU;sar -n DEV 1 3
抓实时吞吐 (Rackspace Technology Documentation)。
🤖 第九式·自动巡检脚本(示例片段)
#!/bin/bash
date
echo "== CPU & Load =="
uptime
echo "== Top 5 Mem Procs =="
ps -eo pid,comm,%mem --sort=-%mem | head -6
echo "== Disk Hotspot =="
df -hT | grep -E '8[0-9]%|9[0-9]%'
echo "== Failed Units =="
systemctl --failed --no-legend
journalctl -p 3 -n 20 # 最近20条错误
每日 crontab 执行,配合 mail -s "Daily Health" ops@org
邮寄,可快速获知崩溃苗头。
🛡️ 护宗秘典·最佳实践
- 分层监控:CPU/内存/磁盘/网络/服务/日志 六维齐抓;搭配 Grafana + Prometheus 出图。
- 速查 alias:
alias ta='journalctl -xe'
,alias ssopen='ss -ltnp'
提升灵活度。 - 最小权限:仅暴露必需端口;
ss -ltn
与防火墙配置同步巡检。 - 日志轮替:
logrotate
+journalctl --vacuum-time=14d
防磁盘填满。 - 备份 unit & config:Git 版本化
/etc/systemd/system
、/etc/sysctl.d
,出错可秒回。
📚 参考卷宗
- Tecmint – vmstat/iostat 指南 (LFCS认证备考电子书)
- DigitalOcean – systemctl 教程 (数字海洋)
- Loggly – journalctl 完全指南 (Log Analysis | Log Monitoring by Loggly)
- phoenixNAP – dmesg 用法 (phoenixNAP | Global IT Services)
- DigitalOcean – Load Average 详解 (数字海洋)
- Rackspace – sar 资源监控 (Rackspace Technology Documentation)
- Reddit – systemd-analyze 实例 (Reddit)
- Red Hat – dissecting free (The world’s open source leader)
- IBM – iostat 性能评估 (IBM - United States)
- Unix.SE – systemctl failed 单元 (Unix & Linux Stack Exchange)
- PhoenixNAP – load average 含义 (phoenixNAP | Global IT Services)
- VMware – systemd-analyze blame 解析 (VMware)
韩立碎语:系统状态如修者真气,需日常吐纳调息。掌握以上九式,你便可在 CPU 飙升、磁盘哀嚎、服务失血之前洞悉天机,手起刀落、化险为夷——愿诸位同道共勉!