linux服务器cpu使用率如何查看,查看命令有哪些?

查看Linux服务器CPU使用率,最常用的命令是top和mpstat,但真正专业的做法是结合vmstat、sar、pidstat等工具,从进程、负载、历史趋势三个维度综合判断,单看一个数字容易误判,比如负载高但CPU空闲,其实是I/O等待在作祟。

linux查看cpu使用率的命令有哪些?

很多新手习惯只用top,但top是实时快照,看不了历史,也分不清核间均衡,下面这几个命令覆盖了日常运维和排查场景,建议按需选用。

轻松学linux-第十一课-linux查看cpu信息和使用率
加载中
轻松学linux-第十一课-linux查看cpu信息和使用率
5
52机器人
4240--
原视频地址
  • top:最经典,第一行%Cpu(s)显示整体使用率,按1键可展开每个逻辑核,重点看us(用户态)、sy(内核态)、wa(I/O等待)、id(空闲),按P键按CPU排序,直接锁定最耗CPU的进程。
  • htop:top的增强版,彩色界面,支持鼠标操作和树状进程视图,多数发行版需要单独安装(yum install htop或apt install htop),它把CPU使用率用进度条按核展示,视觉更直观,适合人肉快速定位问题。
  • mpstat -P ALL 1:来自sysstat包,专门看每个CPU核的使用率。-P ALL表示所有核,1是每秒刷新一次,如果某个核飙到100%而其他核空闲,说明是单线程应用或锁冲突。
  • vmstat 1:不只看CPU,还兼顾内存、IO、运行队列。r列表示正在运行的进程数,wa列是I/O等待,这里的us和sy跟top里的含义一致,但输出更简洁,适合脚本采集。
  • sar -u 1 3:历史数据天王。sar同样来自sysstat,能回溯过去几周的CPU使用率,排查“昨晚异常”这类问题,sar几乎是最好的工具。
  • pidstat -u 1:按进程报告CPU使用率,比top更精确,它能输出进程的%CPU、线程ID和命令名,适合写进监控脚本。

行业共识认为,熟练使用top加vmstat,已经能解决80%的CPU排查场景,其余工具按需学习,不必贪多。

怎么从top输出判断CPU使用率是否正常?

top第一行里,us、sy、wa是三个关键信号,新手常犯的错是只看id,觉得空闲高就没事,忽略了wa高其实意味着磁盘拖后腿。

指标 正常范围参考 警醒信号
us(用户态) 30%-70% 持续>70%,说明有应用在疯狂计算
sy(内核态) 5%-15% 持续>30%,可能系统调用频繁或虚拟化开销大
wa(I/O等待) 0%-5% 持续>20%,磁盘是瓶颈
id(空闲) 20%以上 长期接近0%,CPU饱和

但“正常”是相对的,一个跑着MySQL的服务器,sy高一点很合理;一个纯静态Nginx,us超过50%就反常,更靠谱的判断方法是看趋势:用top -d 1多刷几次,如果us一直往上走,说明负载在堆积;如果忽高忽低,可能是定时任务或流量抖动。

另外一个容易被忽略的点:负载均衡,如果4核CPU跑满,但4个核的利用率分别是100%、5%、5%、5%,这是典型的单线程瓶颈,整体使用率只有28%,但业务实际已经卡顿,这时应该看进程的%CPU是不是接近100%,再决定是优化代码还是换高主频CPU。

linux服务器cpu占用过高怎么排查?

CPU飙高时,别急着kill进程,按下面顺序操作,多数能快速定位。

  1. 先用top找元凶:执行top -c,让命令展示完整路径,看%CPU最高的PID,记下来。
  2. 确认线程:top -Hp PID,看到具体哪个线程吃CPU,如果进程是多线程的,这一步能缩小范围到线程ID。
  3. 转到进程栈:gdb -p PID或pstack PID,抓取线程栈,没有gdb就用cat /proc/PID/task/TID/stack,至少能看到内核调用路径。
  4. 结合日志看业务:如果是Java应用,用jstack导出线程栈;如果是Python,用py-spy dump;如果是Node.js,用--prof做CPU剖析,这一步才是定位根因的关键,命令只是辅助。
  5. 查系统层面的异常:dmesg -T | tail -n 20看有没有Out of Memory或硬件错误;cat /var/log/messages看是否有人在跑全表扫描或爬虫。

业内专家指出,相当一部分“CPU占用过高”其实是内存换页引起的,进程不断访问磁盘上的swap空间,wa不高但sy暴涨,CPU内核态在拼命处理页中断,这种情况加内存比调优代码更直接。

排查时需要留个心眼:top默认显示的是进程最近一次采样的使用率,不是平均值,如果进程时高时低,多按几次空格刷采样,或者用pidstat -u -p PID 5 5看5秒内的平均趋势,避免误判。

linux服务器负载高但cpu使用率低是怎么回事?

这是常见的“伪高CPU”现象,负载(load average)和CPU使用率不是一回事,别被top第一行的load average吓到。

  • I/O等待:vmstat 1里wa值高,r队列长,但us和sy都很低,典型场景是文件服务器在做大量读写,或数据库的日志刷盘太频繁。
  • 不可中断进程:进程进入D状态(通常是在等磁盘I/O),CPU只能干等,不会主动切换。top里D状态的进程数越多,负载越高,CPU却闲着。
  • 内存交换:free -h看到Swap used在涨,说明物理内存不够了,CPU大部分时间在搬数据,而不是跑业务,所以使用率低但响应慢。
  • 锁竞争:多个线程抢一把锁,CPU空转,进程也卡住,用pidstat -d 1看磁盘读写和CPU的对照,结合strace -p PID看系统调用是否阻塞在futex。

判断方法不复杂:负载高时,先看vmstat的r和b列。b列数值高,说明有进程卡在I/O;r列高但us低,多半是锁或内存问题。load average是1分钟、5分钟、15分钟的均值,如果1分钟高而15分钟低,说明是突发流量,别急着动服务。

如何用sar和pidstat做历史回顾和进程级监控?

排查正在发生的问题用top,复盘过去用sar,追责到进程用pidstat,sysstat包里的这两个工具,能救很多次应急。

  • 用sar查看历史CPU:先确认sar在运行(systemctl start sysstat),然后执行sar -u -f /var/log/sa/sa日期,比如看昨天早上9点的数据:sar -u -f /var/log/sa/sa09 | grep '09:'。sar输出平均、最大和最小使用率,还能配合-q查看负载队列。
  • 用sar对比多核:sar -P ALL -f /var/log/sa/昨天,如果发现某个核持续100%,而其他核很闲,基本确定是单线程瓶颈,该考虑改并行架构。
  • 用pidstat做进程追踪:pidstat -u -p 进程PID 2 10,每2秒采样一次,共10次,输出进程的CPU使用率和累计运行时间,想追线程就加-t参数。
  • 把pidstat输出落盘做定期基线:写个cron任务,每天早上8点跑一次pidstat -u -p 主进程 60 5 > /tmp/pidstat.log,连续收集一周,就能看出业务高峰期的CPU消耗规律,再结合sar的周报表,判断是否需要扩容或优化。

这几个命令组合起来,已经能覆盖从实时监控到历史回溯的全链路,很多线上事故,就是因为只盯着top看一分钟,没等抓到异常就恢复了,事后没法复盘,有了sar和pidstat,至少能留下数据依据。

别只盯数字,要盯业务

Linux服务器CPU使用率没有绝对标准,关键是看变化趋势和业务表现,CPU高不一定坏,CPU低也不一定健康,一个高并发的Web服务器,CPU稳定在80%反而是高效率;一个空闲的数据库服务器,CPU只有5%但I/O等待高,照样需处理,把top当入门,把sar和pidstat当习惯,日常巡检时多看一眼vmstat的r和b列,比只问“怎么提高CPU使用率”要扎实得多。

Q&A

linux cpu使用率100%是什么意思?

表示CPU所有核心都在满负荷运转,没有空闲能力,可能原因包括:复杂计算任务、死循环、内存换页、或者恶意挖矿进程,先执行top按CPU排序找出进程,再查进程行为,如果进程名可疑,用ls -l /proc/PID/exe看真实路径。

怎么查看多核CPU每个核的使用率?

用mpstat -P ALL 1,每秒打印每个逻辑核的%usr、%sys、%idle,或者top后按1键,顶部会逐行显示每核数据,如果某个核持续100%而其他核空闲,是典型的单线程瓶颈,需要优化代码或调整进程绑核策略。

如何用命令行监控某个进程的cpu使用率?

先拿到PID,然后pidstat -u -p PID 2,每2秒输出一次该进程的CPU占用和累计运行时间,想连线程一起看,加-t参数,更简单的方式是top -p PID,但pidstat的输出更适合重定向到文件做监控记录。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/771940.html

赞 (0)
上一篇 2026年10月21日 20:53
下一篇 2026年10月21日 20:56

相关推荐

  • Excel敏感分析怎么做?,具体操作步骤是什么?

    在Excel中进行敏感分析,最直接有效的方法是使用“模拟运算表”功能,它能在几分钟内生成变量变化对结果的影响矩阵,让你清楚看到哪个因素最致命,什么是Excel敏感分析,为什么财务建模离不开它敏感分析,也叫敏感性分析,是评估输入变量波动对输出结果影响程度的技术,在Excel中,它通过模拟不同输入值,展示目标指标……

    2026年7月20日
    2900
  • 服务器扩容前如何观察IP收录情况?,IP收录情况怎么查?

    服务器扩容的决策基础不是流量峰值,而是目标IP在搜索引擎中的收录表现,忽视这一点,扩容可能加速排名下滑,为什么IP收录情况是扩容的前置指标搜索引擎爬虫对IP的信任度直接影响抓取频率和收录量,一个IP如果曾被用于恶意行为,或所在IP段有过不良记录,即使服务器性能再强,爬虫也会谨慎对待,据百度搜索资源平台官方文档……

    2026年7月26日
    600
  • linux服务器启用网络连不上咋办,连接失败原因排查方法?

    Linux服务器网络连不上,核心思路是“先查链路,再查IP,最后查服务”——顺着数据流向逐层排查,大部分问题都能在十分钟内定位,linux服务器网络连接不上怎么排查服务器突然失联,就像合租室友半夜不回家,急也没用,得按线索找,别急着重启,先想清楚它“失联”在哪一层:是物理链路断了,还是IP配置错了,或是服务本身……

    2026年8月31日
    400
  • LOL连接不上服务器未响应怎么办,服务器连接失败原因及解决方法

    关于LOL连接不上服务器未响应,你得先明白一件事LOL连接不上服务器未响应,绝大多数情况下不是你电脑坏了,也不是游戏文件损坏,而是你的数据包根本没有到达腾讯的服务器,或者服务器没来得及理你,简单说,客户端在等服务器“点头”,但消息发出去像石沉大海,于是界面就卡在“未响应”状态给你看,搞清楚这一点,后面所有排查动……

    2026年10月6日
    100
  • 构建数据湖怎么样,构建数据湖有哪些优缺点

    构建数据湖是解决企业数据孤岛、实现统一存储与分析的最佳路径,但需警惕“数据沼泽”风险,建议采用湖仓一体架构并严格治理元数据,为什么企业需要构建数据湖过去,企业数据分散在ERP、CRM、日志系统里,像一个个孤岛,业务部门想要看全貌,得找IT部门导数据,慢得像蜗牛,数据湖的出现,就是把这些碎片拼成一张大图,它不要求……

    2026年5月26日
    4900
  • 服务器cpu和内存组台式可以吗?台式机组装兼容性问题详解

    服务器CPU搭配ECC内存移植到台式机主板,能够以极低的成本构建出具备工作站级性能与数据安全性的高性能主机,这是极具性价比的DIY方案,但必须严格解决硬件兼容性与散热适配问题,这一方案的核心优势在于打破了对品牌溢价的依赖,利用服务器退役或拆机硬件的冗余性能,通过合理的组装,实现计算能力与稳定性的双重提升,核心优……

    2026年4月4日
    9500
  • 服务器1m带宽同时能承受多少人在线?1m带宽能带多少用户

    服务器1m带宽同时能承受多少人在线?核心结论是:在常规Web业务场景下,1M带宽通常支持约200-500人同时在线访问,若涉及视频或下载业务,这一数字将锐减至个位数,这一数值并非固定,而是取决于页面大小、用户行为模式、带宽计算单位以及服务器并发处理能力等多重因素,理解这一问题的关键,在于厘清“带宽”与“并发”的……

    2026年4月8日
    9700
  • 服务器与客户端对接的关键步骤是什么,注意事项有哪些?

    服务器与客户端的对接本质是建立可靠的数据通道,核心在于协议选择、接口设计和数据格式的统一,无论是网页应用还是移动端App,对接成功与否直接影响用户体验和系统稳定性,下面从核心要素、实现步骤、方案对比和注意事项几个方面来拆解,服务器与客户端对接怎么实现实现对接首先要明确通信模型,常见的客户端包括浏览器、App、I……

    2026年7月21日
    900
  • dota2服务器英文怎么换成中文版,在哪设置?

    dota2服务器英文怎么变中文版?直接在Steam客户端右键Dota2选择“属性”,在启动选项里加上 -language=schinese 即可强制切换成简体中文界面,全程不需要换服务器,也不影响你继续在国际服匹配,很多玩家以为英文界面是因为连了外服,其实语言和服务器是两套独立系统,下面按“启动项设置—服务器选……

    2026年10月8日
    200
  • PS5原神登不上服务器怎么办,原神PS5登录失败怎么解决?

    PS5原神无法登录服务器,绝大多数原因是网络连接异常、服务器维护或账号区服不匹配,而不是主机故障,先按“重启路由→检查服务器状态→验证账号”的顺序排查,就能解决大部分登录问题,PS5原神无法登录服务器怎么解决?先分清这几种报错PS5上原神登录失败,画面通常会停留在“正在连接服务器”,或者直接弹出一串看不懂的报错……

    2026年10月9日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注