怎么看服务器CPU利用率,Linux查看cpu占用率命令?

看服务器CPU利用率,最直接的方法是执行top命令看%CPU和load average,但关键是要区分用户态、系统态和I/O等待,否则容易被“空闲”假象误导。

很多刚接触服务器的人,一看到CPU使用率100%就慌,其实在Linux里,CPU“忙着”并不等于“有问题”,得看它到底在忙什么,这篇文章会把查看CPU利用率的常用命令、判断标准、排查逻辑一次讲清楚,全程拿真实可跑的命令说话。

轻松学linux-第十一课-linux查看cpu信息和使用率
加载中
轻松学linux-第十一课-linux查看cpu信息和使用率

怎么看服务器的cpu的利用率?先分清这五种CPU状态

CPU利用率并不是一个单一数字,在Linux的/proc/stat里,它被拆成好几个时间片,用top命令默认显示的是%Cpu(s),那一行有多种状态,常见的五种你要能认出来:

  • us(user):用户态CPU使用率,跑应用程序、脚本、数据库查询都算这一块。
  • sy(system):系统态CPU使用率,内核操作、系统调用、驱动处理占的比例。
  • wa(iowait):等待I/O完成的时间,比如磁盘读写慢,CPU在等数据,这时候wa高说明瓶颈在存储。
  • id(idle):空闲率,完全没被占用。
  • st(steal):虚拟机被宿主机抢走的CPU时间,云服务器上如果st长期偏高,说明物理机资源超卖严重。

行业共识认为,判断CPU是否健康,不能只看id是不是很低,而要同时关注us和wa,us高代表计算密集,wa高代表磁盘拖后腿,这两者的处理方向截然不同。

linux查看cpu利用率命令:top、mpstat、sar到底怎么选

用top命令快速查看整体CPU占用

top是Linux自带的老牌命令,输入top后回车,屏幕最上方两行信息最关键。

第一行是系统运行时间和load average,后面跟三个数字,分别是过去1分钟、5分钟、15分钟的系统负载均值,这里有个常见误区:load average高不等于CPU利用率高,它统计的是处于运行状态和不可中断状态的进程总数,如果服务器是8核CPU,load average持续高于8.0,说明任务在排队;低于8.0时,即使某个核利用率100%,整体也能接受。

第二行是进程列表里的%CPU列,默认按CPU占用从高到低排序,要特别注意,top里的%CPU是多核加总后的结果,一个进程如果用了2个核,显示可能是200%,所以看到某个进程CPU数值超过100%时,不用怀疑数据出错,那是它占了多个逻辑核。

用mpstat查看每个CPU核的使用率

服务器负载高时,你需要知道是某个单核被占满,还是所有核平均高负载,mpstat是sysstat包里的工具,执行:

怎么看服务器CPU利用率,Linux查看cpu占用率命令?

mpstat -P ALL 1 3

这个命令会每隔1秒采样一次,共执行3次,然后输出每个CPU核的us、sy、wa、id等指标,如果只有一个核的us接近100%,其他核空闲,那就是典型的单线程应用瓶颈,比如老的PHP进程或某些数据库逻辑;如果所有核都高,说明负载确实很平均。

mpstat的优势是简洁,不像top那样动态刷新,适合抓取瞬间状态。

用sar记录历史CPU利用率

排查历史性能问题时,临时去跑top已经来不及了,提前开启sysstat服务的服务器,会在/var/log/sysstat/目录下保留历史记录,查看今天某段时间的CPU使用率:

sar -u -f /var/log/sysstat/sa28

其中sa28是某天的数据文件,日期按月份命名,如果你想知道当前实时CPU情况,直接用:

sar -u 1 5

它每秒打印一行CPU状态,连续5次后输出平均值,sar的好处是能给出一个统计汇总,不像top那么杂乱,适合写入运维脚本。

服务器cpu利用率过高怎么排查?按这四步走

当top显示CPU利用率长期高于80%,不要急着kill进程,先按顺序做以下检查。

第一步:确定是用户态高还是系统态高

观察%Cpu(s)那一行的us和sy数值,如果us高,基本可以锁定是业务程序自身的问题死循环、复杂计算、慢SQL、内存泄漏引发频繁垃圾回收等,如果sy高,更可能是系统调用频繁,比如大量的网络包处理、文件锁抢占、进程频繁创建销毁。

这时可以用pidstat定位具体线程:

pidstat -p $(pidof 你的程序) -t 1 5

它会显示进程内每个线程的CPU占用,找到占用最高的线程ID,再用top -Hp 进程ID确认线程栈状态。

第二步:判断是不是I/O等待导致的虚高

看wa字段,如果wa长期在30%以上,而us不高,那CPU利用率数字虽然高,但真正的问题在磁盘或网络,你可以用iostat -x 1看看磁盘的%util参数,再用vmstat 1看bi和bo列每秒钟的块读写量,还有一种典型情况是内存不足导致swap频繁读写,CPU大量时间花在换页上,此时free -h如果有少量swap used,就要考虑加内存或优化缓存。

第三步:查一下是不是云服务器CPU被“偷走”

在云服务器商(简米云、酷番云)控制台里,CPU利用率指标是宿主机视角的,而虚拟机内部的st字段才能反映被抢占的情况,执行:

top -b -n 1 | grep '%Cpu'

怎么看服务器CPU利用率,Linux查看cpu占用率命令?

看st数值,如果st持续超过10%,说明你的云服务器CPU性能受到影响,可能是同物理机邻居上大负载,这种情况下程序再优化也白搭,直接提工单让云厂商迁移实例,或者在购买云服务器时选择独享型实例,避免CPU积分制的突发型实例在持续高负载下被限速。

第四步:结合日志和监控平台做趋势分析

一次性命令只能看到当下,无法回答“服务器cpu利用率过高”是不是偶发现象,正经的做法是接入Prometheus + node_exporter,或者用Zabbix监控历史曲线,node_exporter采集的node_cpu_seconds_total指标会以累计秒数存储,你可以用rate()函数计算某个时间段内的平均利用率。

长期监控CPU利用率,掌握两个自动化技巧

用vmstat配合脚本采集周期数据

vmstat自带时间戳和平均输出,适合写进cron任务,比如每5分钟采样一次,写入文件:

/5     vmstat -t 2 2 | tail -1 >> /var/log/cpu_usage.log

这样积累一个月后,用awk把us和id列拉出来,就能大致摸清服务器的忙闲规律,比如每天凌晨3点CPU跑满,是不是定时备份太集中,这些数据都是你自己生产的,比任何第三方报告都可靠。

使用Linux自带的perf判断热点函数

当某个进程CPU占用奇高但原因不明时,可以用perf top直接看它正在执行的内核或用户态函数:

perf top -p 进程ID

这是比较底层的排查手段,适合开发或资深运维,普通场景下,先用top和vmstat定位到进程,再用perf确认具体代码位置,不要一上来就开perf,信息量太大反而不好下手。

怎么理解服务器CPU利用率的不同数值区间

很多新手爱问:“CPU利用率达到多少算正常?”这里没有绝对标准,但有一个经验区间可供参考:

CPU平均利用率 状态判断 建议动作
0% – 30% 偏低,资源富余 关注是否过度配置,可尝试降低规格节省成本
30% – 60% 健康,留有余量 正常业务波动范围,不需要干预
60% – 80% 偏高,注意监控 留意趋势,建议配置告警阈值
80% – 100% 危险,需要排查 直接进入排查流程,优先确认wa和st

需要指出的是,这个区间只适用于绝大多数中小型业务,如果服务器是数据库专用,活跃时CPU到90%也未必有问题,因

怎么看服务器CPU利用率,Linux查看cpu占用率命令?

为数据库经常把缓存池预热在内存里,算力消耗本来就大,关键是看持续时间和响应时间,如果是Windows服务器,任务管理器里的“CPU使用率”和Linux的top计算方式不同,它包含中断处理时间,所以经常看到数值跳动更剧烈。Windows服务器CPU利用率100%时,优先看资源监视器里“平均CPU”最高的进程,再检查Windows事件日志里的错误级进程。

关于服务器CPU利用率,还有哪些常见疑问?

怎么看服务器的cpu的利用率是不是被挖矿程序占用了?

先用top看进程名,挖矿进程通常会伪装成kdevtmpfs、watchdog这类听起来像系统的名字,验证方法是查看进程的可执行文件路径:

ls -l /proc/进程ID/exe

正常系统命令在/usr/bin下,挖矿程序一般在/tmp或/var/tmp下带着奇怪的随机名,再用ss -antp | grep 进程ID检查它有没有建立外部连接,挖矿程序一定会连接矿池的IP和端口。

查看多个服务器的CPU利用率有没有更省事的方法?

单台服务器用top,多台服务器用并行SSH工具,比如pdsh或ansible,一条命令传到所有机器上执行:

ansible all -m shell -a "top -bn 1 | head -n 5"

如果你有简米云或酷番云的服务器,直接控制台的“云监控”页面能列出所有实例的CPU图,还能设置使用率超过80%时发短信告警,对于本地机房设备,用Grafana搭一个多服务器面板,比登录每台机器更直观。

CPU利用率低的服务器,为什么业务依然卡顿?

因为应用卡顿的根因往往在内存、磁盘I/O或网络延迟,CPU空闲说明它没在等自己,而是在等下游资源,你去看vmstat的wa和cs列,如果cs(上下文切换)每秒超过5万次,说明系统在疯狂切换进程,即使CPU利用率只有20%,表现也会像死机一样,这种情况建议减少运行中的线程数,并用strace -c统计进程的系统调用次数。

判断服务器CPU利用率从来不是看一个数字就结束,它只是一个入口,走进这个入口以后,你会遇到负载均值、中断处理、上下文切换、内存换页这些更具体的问题,把上面这些命令用熟,至少能让你在告警短信响起来的时候,知道下一步往哪个方向看。多练几次top和vmstat,你就会形成自己的直觉:先判断规模,再定位进程,最后看趋势,CPU的事,八成出不了这个圈子。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/%e6%80%8e%e4%b9%88%e7%9c%8b%e6%9c%8d%e5%8a%a1%e5%99%a8cpu%e5%88%a9%e7%94%a8%e7%8e%87%ef%bc%8clinux%e6%9f%a5%e7%9c%8bcpu%e5%8d%a0%e7%94%a8%e7%8e%87%e5%91%bd%e4%bb%a4%ef%bc%9f/

赞 (0)
app客户端如何发请求到服务器地址,接口请求流程是什么?
上一篇 2026年10月11日 06:48
ajax向服务器发送请求时如何指定数据类型,有哪些方法?
下一篇 2026年10月11日 06:52

相关推荐

  • 服务器r420如何设置光盘为第一启动项,详细步骤是什么?

    要设置戴尔PowerEdge R420服务器光盘为第一启动项,只需在开机自检画面出现时按F2进入BIOS,在Boot Settings的Boot Sequence中选中光驱,用+号将其移到最顶部,最后按F10保存退出即可,整个过程无需额外工具,重点在于找准按键时机和正确保存设置,为什么需要光盘启动服务器r420……

    2026年7月30日
    1900
  • excel定义选项怎么设置?excel定义名称下拉菜单

    在Excel中定义选项的核心是通过“数据验证”功能限制单元格输入范围,从而确保数据录入的规范性与准确性,这是构建标准化数据表的基础步骤,很多职场人在处理Excel表格时,最头疼的不是公式复杂,而是数据源混乱,同事A填了“北京”,同事B填了“北京市”,同事C直接手滑敲成了“BeiJing”,这种看似微小的差异,足……

    2026年7月12日
    18800
  • Excel行累加如何实现?,Excel行累加怎么操作

    Excel行累加的本质是SUM族函数配合绝对引用与快捷键的灵活运用,掌握自动求和Alt+=、SUBTOTAL动态汇总以及数据透视表行汇总这三板斧,就能在日常报表中实现零错误的横向累加,Excel行累加怎么操作?三种方法可直接套用操作行累加前先明确需求:是简单连续单元格求和,还是受筛选影响的可见行求和,或者是多表……

    程序编程 2026年7月17日
    3500
  • Excel怎么设置边界?excel表格边框怎么加粗

    Excel设置边界的核心在于精准理解“边框”与“打印区域”的区别,通过“设置单元格格式”中的边框选项调整视觉线条,并通过“页面布局”中的打印区域功能控制实际输出范围,这是解决表格显示混乱和打印溢出问题的根本方法,很多用户在处理Excel表格时,常把“画线”和“定边界”混为一谈,前者是为了让表格在屏幕上看起来清晰……

    2026年7月12日
    18200
  • 合肥大带宽服务器租用一般怎么收费,多少钱一个月?

    合肥大带宽服务器租用的收费主要由带宽大小、线路类型、硬件配置和机房等级决定,普遍采用月付或年付模式,价格范围从每月数百元到数千元不等,具体取决于你的实际需求,合肥大带宽服务器租用收费构成要搞懂合肥大带宽服务器租用怎么收费,得先知道费用花在哪几个地方,服务商报价单上列的项目,拆开看无非这四块,带宽费用是核心带宽是……

    2026年8月11日
    1000
  • java excel demo怎么做?,有哪些方法?

    Java操作Excel的最稳定方案是Apache POI和阿里EasyExcel两个库,本文提供可直接运行的Java Excel Demo代码,涵盖读写、导入导出及性能对比,可用于快速在项目中落地,为什么你需要一个Java Excel Demo在日常开发中,Excel导入导出几乎是每个Java后端项目都会遇到的……

    程序编程 2026年7月17日
    1100
  • 服务器没ipv6咋访问ipv6?,ipv6访问不了咋办?

    服务器没有IPv6地址,想访问IPv6资源,最核心的思路就是“借道”:通过具备IPv6能力的中间层(如NAT64网关、反向代理或隧道服务)做协议转换,让IPv4请求伪装成IPv6流量“溜出去”,再把回包转回来,这个问题在实际运维中并不罕见,托管机房没开IPv6、旧系统不支持双栈、云服务器默认只分配IPv4……但……

    程序编程 2026年10月10日
    100
  • win10网络服务器未运行怎么办,是什么原因

    当Win10提示“网络服务器未运行”时,通常是因为Server服务或Workstation服务未启动,通过服务管理器手动启动并设置为自动即可解决,Win10网络服务器未运行怎么解决:三步快速修复遇到Win10提示网络服务器未运行,先别急着重装系统,绝大多数情况是系统服务被意外关闭,按下面三步走,几分钟就能搞定……

    2026年7月25日
    1600
  • 广西葡萄物联网能解决哪些种植难题?葡萄物联网智能监控

    广西葡萄物联网通过部署土壤传感器、气象站及水肥一体化设备,实现了从种植到采收的全流程数字化管控,显著提升了果实糖度与产量,是当前智慧农业在亚热带水果领域的最佳实践方案,广西葡萄物联网的核心价值与场景应用为什么广西种植户开始转向智能化管理?广西地处亚热带,气候湿热,雨量充沛,这种环境对葡萄种植既是机遇也是挑战,传……

    2026年5月28日
    3800
  • 管家婆套接字服务器怎么改IP?,管家婆服务器IP怎么设置?

    以管家婆套接字服务器改ip为核心,最常见的方法是打开套接字服务器安装目录下的配置文件,直接修改IP字段后重启服务,同时确保数据库地址指向新IP,管家婆套接字服务器ip地址怎么设置咱们在改之前,得先搞清楚一件事:管家婆套接字服务器本质上是一个中转站,它负责转发客户端和数据库之间的数据,改IP不单是改电脑的IP,更……

    2026年10月16日
    100

发表回复

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