linux性能速查-CPU使用率

本文介绍了如何通过/proc/stat文件中的数据计算Linux系统的CPU使用率,并提供了定位高CPU使用率进程的方法,包括使用pidstat、perftop等工具进行详细分析。

该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。

我们最常用的衡量CPU性能的指标就是CPU使用率,在linux系统中,使用节拍率维护CPU时间,比如如果节拍率为100,也就是每秒触发100次时间中断,在/proc/stat中可以看到CPU自开机以来的节拍数,如:

cpu  27191238 724 17538650 6555468157 13483194 0 372961 37615633 0 0
cpu0 3346390 39 1954616 820939905 662421 0 57314 4561521 0 0
cpu1 4765506 209 3089722 819027667 247121 0 25793 4435362 0 0
cpu2 3359440 71 2033369 809011451 11441557 0 32490 4539880 0 0
cpu3 5300105 66 3154309 815403991 500441 0 202204 5791673 0 0
cpu4 2200534 16 1539795 823364225 150664 0 15448 4429211 0 0
cpu5 3673752 223 2642467 820775853 175038 0 15088 4607002 0 0
cpu6 2401452 53 1626525 823274254 153443 0 12550 4620012 0 0
cpu7 2144055 44 1497844 823670807 152504 0 12071 4630968 0 0

各项具体含义有兴趣可自查,不过这不是重点。可以采用这种方式计算CPU使用率:

CPU使用率=1-CPU空闲时间/CPU总时间

但是如果以/proc/stat中的数据代入计算意义不大,因为计算出来的是自开机以来的平均值,没有参考意义。所以:

性能工具,大多取一段时间间隔来计算平均值,这样能够较为准确的衡量CPU使用率。

CPU使用率我们可以通过pidstat top等工具定位具体的进程,要定位具体的调用函数库可采用:

perf top -g -p 进程ID //-g开启调用链分析

有的时候CPU使用率在用户态下非常高,但是查看具体的进程却没有CPU使用很高的进程,可能是进程在崩溃重启,或者大量瞬时调用,导致 top pistat命令没有及时的捕捉到。那么,此时应该如何处理

1.从就绪队列长度,处于R状态的进程是哪些入手,使用pstree查看父子进程,找到调用的父进程。

2.使用perf record -g  perf report。

<think>嗯,用户这次的问题是关于Linux系统查看硬件资源使用率的命令汇总,之前提供的引用内容已经覆盖了top、vmstat、free、df等关键工具。结合引用中强调的指标解读(比如CPU使用率=100%-空闲率),需要突出命令输出的核心参。 用户可能是个刚接触Linux运维的新手,更关注基础命令的实用性而非原理。虽然引用[2]详细列出了top命令的字段含义,但直接全部堆砌会给用户造成阅读负担。应该按资源类型分类呈现,每个命令给出最简示例和关键指标说明即可。 注意到引用[3]提到top能综合判断系统瓶颈,这点值得融入回答——在命令汇总后补充场景建议会更贴心。用户没提磁盘I/O,但引用[1][3]都涉及wa%指标,把iostat加入磁盘部分会更完整。 上次回复的"相关问题"设计不错,这次可以延续:第一个问题聚焦top/vmstat区别(引用[1][2]正好形成对比),第二个针对内存计算(引用[2]的available Mem常被误解),第三个延伸出性能瓶颈分析(扣住引用[3]的定位缺陷思路)。这样既强化引用内容,又引导用户深入。 </think>根据您的需求,以下是Linux系统中查看CPU、内存和磁盘使用率的常用命令总结👇: --- ### 🔍 一、CPU使用率查看 1. **`top` 命令** 实时显示系统资源占用情况,按 `1` 可查看每个逻辑CPU核心的详细据: ```bash top ``` - **关键指标**: - `%us`:用户空间程序CPU使用率 `%sy`:内核空间CPU使用率 `%id`:空闲CPU率 → **系统CPU使用率 = 100% - %id** - `%wa`:等待I/O的CPU时间(高值可能预示磁盘瓶颈)[^1][^3] 2. **`vmstat` 命令** 报告进程、内存、分页、块I/O等实时状态,刷新间隔可自定义(如每2秒刷新): ```bash vmstat 2 # 每2秒刷新一次 ``` - **输出字段**: `r`(运行队列进程) `us` + `sy` = 总CPU使用率 `wa`(I/O等待时间占比)[^1][^3] --- ### 🧠 二、内存使用率查看 1. **`free` 命令** 显示物理内存和交换分区(Swap)使用情况: ```bash free -h # -h 以易读单位(GB/MB)显示 ``` - **核心指标**: - `total`:总物理内存 `used`:已用内存(含缓存) `available`:真正可用内存(剩余内存+可回收缓存)[^2] - **重点关注 `available`** → 更真实反映剩余可用内存 2. **`top` 命令附加信息** 在 `top` 界面中查看内存: - **内存行**:`Mem` 显示物理内存,`Swap` 显示交换分区 - **进程级内存**:`%MEM` 列显示各进程内存占比[^2] --- ### 💾 三、磁盘使用率查看 1. **`df` 命令** 查看文件系统磁盘空间占用: ```bash df -h # -h 以易读单位显示 ``` - **关键列**: `Use%`:磁盘分区使用百分比 `Avail`:剩余可用空间[^3] 2. **`iostat` 命令(需安装 sysstat)** 监控磁盘I/O性能使用率: ```bash iostat -dx 2 # -d 显示磁盘报告,-x 扩展统计,每2秒刷新 ``` - **关键指标**: `%util`:磁盘I/O利用率(接近100%表示磁盘繁忙) `await`:I/O请求平均等待时间(单位:毫秒)[^1] --- ### 💡 四、综合工具推荐 - **`htop`(增强版 top)** 更直观的交互式界面,支持鼠标操作(需安装): ```bash htop ``` - **`glances`** 全资源监控工具(CPU/内存/磁盘/网络/进程): ```bash glances ``` --- ### 📌 总结命令速查 | 资源类型 | 命令 | 常用参 | 核心指标 | |----------|------------------|----------------|------------------------| | **CPU** | `top` | - | `%id`, `%us`, `%wa` | | | `vmstat` | `2`(刷新间隔)| `us`, `sy`, `wa` | | **内存** | `free` | `-h` | `available` | | **磁盘** | `df` | `-h` | `Use%` | | | `iostat` | `-dx 2` | `%util`, `await` | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值