0

0

Linux 系统监控与告警实战

舞夢輝影

舞夢輝影

发布时间:2026-02-13 20:59:02

|

144人浏览过

|

来源于php中文网

原创

用 top 定位高 cpu 进程需按 1 键看单核负载、h 键切线程视图,再用 ps -t -p 查高 %cpu 的 tid 对应线程名;容器中 tid 是宿主机 pid;日志需用 logger 或配置 standardoutput=journal 才进 journalctl。

linux 系统监控与告警实战

怎么用 top 快速定位吃 CPU 的进程,而不是被平均值骗?

top 默认显示的是所有 CPU 核心的加权平均负载,但真实问题往往藏在单个线程里。比如一个 Java 应用突然卡住,top 显示 CPU 使用率才 30%,其实是因为它跑了 8 个核,某个线程占满 1 个核(12.5%),其余空闲——你根本看不出异常。

  • 1 键展开各 CPU 核心使用率,看是否某核长期 95%+
  • H 键切换线程视图(Threads mode),找出 %CPU 列里持续高于 80 的 TID
  • 记下那个 TID,用 ps -T -p <pid></pid> 查它属于哪个线程名,再结合应用日志定位逻辑
  • 注意:容器环境里看到的 TID 是宿主机命名空间下的,不是容器内 PID

systemd-journald 日志查不到告警触发记录?先确认这三件事

很多监控脚本(比如用 curl 调 webhook)失败了,翻 journalctl 却没痕迹,不是日志丢了,是输出没进 journal。

  • 确保脚本执行时用了 logger 命令打点,比如:logger "alert: disk usage >90%",直接 echo 到终端或文件不会进 journal
  • 如果是 systemd service,检查 StandardOutput=journalStandardError=journal 是否显式配置,否则子进程 stdout/stderr 会被丢弃
  • journalctl -u <service-name> --since "2 hours ago"</service-name>-b 更可靠,因为告警可能跨 boot

写 shell 告警脚本时,dfstatfs 返回的磁盘使用率为什么对不上?

df -h 显示 92%,但用 du -sh /var/log 加总才 60GB,怀疑工具不准——其实是两者统计维度不同。

韩顺平PHP入门到精通全套笔记
韩顺平PHP入门到精通全套笔记

韩顺平,毕业于清华大学,国内著名的软件培训高级讲师,先后在新浪、点击科技、用友就职。 主持或参与《新浪邮件系统》、《橙红sns(社会化网络)网站》、《点击科技协同软件群组服务器端(Linux/solaris平台)》、《国家总参语音监控系统》、《英语学习机系统》、《用友erp(u8产品)系统》等项目。实战经验丰富,授课耐心细致,通俗易懂,勇于实践,勤于创新,授课风格贴近生活,授课语言生动风趣,多年

下载
  • df 看的是文件系统级剩余空间,包含 reserved blocks(默认 5%,root 用户可用,普通用户不可见)
  • du 只统计当前用户有权限读取的文件大小总和,不包括删除但未释放的文件(lsof +L1 才能发现)
  • 真实告警阈值建议按 df -P | awk '$5 ~ /%$/ {sub(/%/,"",$5); if($5 > 85) print $1,$5}',但必须配合 lsof +L1 定期扫一遍,否则删了日志却因进程没重启,空间不释放

netstatss 查连接数时,TIME_WAIT 突然暴涨,是不是要调 net.ipv4.tcp_tw_reuse

不是所有 TIME_WAIT 都需要干预。它本身是 TCP 正常挥手的一部分,大量存在只说明短连接频繁——先判断是不是真问题。

  • 先跑 ss -ant | awk '{++s[$1]} END {for(i in s) print i, s[i]}',确认是不是 TIME_WAIT 真的占绝对多数(比如 >80%)
  • 如果是后端服务被上游高频轮询,优先改上游重试策略或切长连接,而不是动内核参数
  • net.ipv4.tcp_tw_reuse 在 NAT 环境下慎开,可能引发连接混淆;更安全的做法是缩短 net.ipv4.tcp_fin_timeout(从 60 降到 30)并确保 net.ipv4.ip_local_port_range 足够宽(比如 1024 65535

实际部署时,最常漏掉的是告警脚本自身的资源泄漏:比如用 while true; do ... sleep 60; done 跑着,但里面忘了 unset 临时变量,几周后 Bash 进程 RSS 涨到 200MB,反而把监控搞挂了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

192

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

11

2026.02.03

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

808

2023.08.22

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

102

2023.09.25

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

450

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

180

2023.10.30

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

673

2023.08.10

alert怎么实现换行
alert怎么实现换行

alert通过使用br标签来实现换行。更多关于alert相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

499

2023.11.07

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

23

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9万人学习

Git 教程
Git 教程

共21课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号