0

0

Linux系统运行状态分析_关键指标解读说明【教程】

冷漠man

冷漠man

发布时间:2025-12-30 17:42:07

|

733人浏览过

|

来源于php中文网

原创

cpu使用率是否真高需分三类看:%us、%sy、%wa;%wa>20%说明i/o瓶颈而非cpu,结合pidstat、mpstat和top shift+i模式综合判断。

linux系统运行状态分析_关键指标解读说明【教程】

怎么看 CPU 使用率是否真的高?

Linux 的 tophtop 显示的 %CPU 常被误读。关键要看三类值:用户态(%us)、内核态(%sy)、等待 I/O(%wa)——如果 %wa 长期 >20%,说明不是 CPU 瓶颈,而是磁盘或网络卡住了。

更准的做法是结合 pidstat -u 1 查单个进程的真正 CPU 消耗,避免被短时峰值误导。注意:top 默认按 CPU% 排序,但会把多核总和当 100%,比如 4 核机器满载显示为 400%,需用 top → Shift+I 切换到“整体使用率”模式(即归一化到 100%)。

  • mpstat -P ALL 1 可查看每颗 CPU 核心的负载差异,排查不均衡调度
  • Java 进程常因 GC 导致 %sy 升高,此时要查 jstat -gc <pid></pid> 而非只盯 %us
  • 容器环境里,docker stats 显示的 CPU% 是相对于容器限制值(--cpus)计算的,不是宿主机物理核占比

内存到底够不够?别只看 free -havailable

available 字段是内核估算的“当前可立即分配的内存”,比 free 更靠谱,但它不包含可快速回收的 page cache。真实压力要看 pgpgin/pgpgoutpgmajfault

watch -n 1 'grep -E "pgpgin|pgpgout|pgmajfault" /proc/vmstat'

pgmajfault 每秒持续 >100,说明频繁缺页中断,进程在反复申请新内存又释放;若 pgpgin 远大于 pgpgout,可能有内存泄漏或缓存堆积。

  • 应用堆内存(如 Java -Xmx)设得过大,反而会推高 pgmajfault,因为内核要花更多时间找连续物理页
  • slabtop 能定位内核模块(如 xfs_inodeext4_inode_cache)是否占用了异常多的 slab 内存
  • /proc/meminfo 中的 MemAvailable 是动态估算值,低内存设备上可能滞后,建议同时看 Committed_AS / CommitLimit 比值是否 >90%

磁盘 I/O 等待时间(%util)为什么不准?

iostat -x 1 输出的 %util 只表示设备忙的时间百分比,不反映队列深度或响应延迟。SSD 或 NVMe 设备即使 %util 为 100%,await 也可能只有 0.1ms;而机械盘 %util 70% 时 await 已达 20ms+,才是真正瓶颈。

Clipfly
Clipfly

一站式AI视频生成和编辑平台,提供多种AI视频处理、AI图像处理工具。

下载

更关键的指标是 avgqu-sz(平均队列长度)和 r_await/w_await(读写平均延迟)。当 avgqu-sz > 1r_await > 10(HDD)或 > 1(NVMe),说明 I/O 请求开始排队。

  • 使用 iotop -oPa 可直接看到哪些进程在发起同步 I/O(IO 列非 0),比 ps aux --sort=-%cpu 更准
  • LVM 或加密设备(如 LUKS)会在 dm-* 层引入额外延迟,iostat 要加 -d 参数才能显示底层物理设备(如 sda)的真实指标
  • cat /sys/block/sda/queue/scheduler 查当前 IO 调度器,云主机常用 none(绕过内核调度),本地 HDD 应设为 deadline

网络丢包和重传怎么快速定位?

netstat -sss -s 显示的 “retransmits” 是累计值,看不出实时恶化趋势。应优先看:

watch -n 1 'ss -i | grep -E "(retrans|rtt)" | head -5'

重点关注每行末尾的 retrans 计数(单连接重传次数)和 rtt(往返时间)。若某连接 retrans:2+rtt:1000+(ms),基本可判定链路不稳定。

  • tcpretrans(bpftrace 工具)能追踪每个重传报文的原始 socket 和进程,比 tcpdump 更轻量
  • 云环境常见问题是网卡多队列未绑定 IRQ,导致单核软中断(softirq)打满,用 cat /proc/interrupts | grep eth0 查各 CPU 上网卡中断分布
  • ethtool -S eth0 中的 rx_missed_errorstx_aborted_errors 非零,说明驱动或硬件层已出问题,不是 TCP 协议能解决的

这些指标之间很少孤立变化。比如 %wa 升高时,大概率伴随 pgpgin 暴涨和 r_await 上升——与其单独调优某一项,不如用 perf record -e syscalls:sys_enter_read,syscalls:sys_enter_write -a sleep 10 抓系统调用热点,从源头看进程到底在等什么。

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

409

2023.09.04

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

435

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

601

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

435

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

601

2023.08.10

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

280

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

516

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

416

2024.04.08

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

23

2026.03.06

热门下载

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

精品课程

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

共48课时 | 10.3万人学习

Git 教程
Git 教程

共21课时 | 4.1万人学习

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

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