RELATEED CONSULTING
相关咨询
欢迎选择下列在线客服咨询
微信客服
微信客服二维码
热线电话:13863516421
7x24小时,全年无休
我们服务器的承诺:
关闭右侧工具栏

境外国外服务器专题

如何找出占用CPU过高的进程?

  • 来源:本站
  • 编辑: 超级管理员
  • 时间:2025-07-15 09:42:24
  • 阅读0次


在 Linux 系统中,找出占用 CPU 过高的进程是排查系统性能问题的关键步骤。以下是几种常用方法,从简单到深入逐步定位问题:

一、使用top命令(实时动态查看)

top是最常用的实时监控工具,能直观显示进程的 CPU 占用率,步骤如下:


启动top:终端输入top并回车,进入实时界面。

按P键:按%CPU列降序排列进程(默认排序),此时列表顶部即为 CPU 占用最高的进程。

关键信息:

%CPU:进程占用的 CPU 百分比(多核心系统中可超过 100%,如 8 核 CPU 上满负荷的进程可能显示 800%)。

PID:进程 ID,用于后续操作(如终止进程)。

COMMAND:进程名称或启动命令,帮助判断进程用途。


示例:若top显示PID 1234的java进程%CPU为 150%,则该进程是主要 CPU 消耗源。

二、使用ps命令(静态快照查看)

ps命令可生成当前进程的静态快照,适合捕捉某一时刻的 CPU 占用情况,常用组合:


bash

ps -eo %cpu,pid,user,comm --sort=-%cpu | head -n 10


选项说明:

-e:显示所有进程。

-o %cpu,pid,user,comm:指定输出列(CPU 占用率、进程 ID、用户、进程名)。

--sort=-%cpu:按%CPU降序排列。

head -n 10:只显示前 10 个最高 CPU 占用的进程。


优势:可保存输出到文件(如>> cpu_log.txt),便于后续分析。

三、使用htop命令(更友好的交互界面)

htop是top的增强版,界面更直观,支持鼠标操作,需先安装(如yum install htop或apt install htop):


启动htop后,默认按 CPU 占用率排序,顶部进程即为高消耗者。

优势:

可直接按F6选择排序字段(如CPU%)。

按F4可搜索进程名称(如输入java快速定位相关进程)。

按F9可直接发送信号(如9即强制终止进程)。

四、针对特定场景的深入排查

如果高 CPU 占用来自进程内的某个线程(如多线程程序),需进一步查看线程级别的 CPU 消耗:

1. 查看进程内的线程 CPU 占用

bash

# 替换1234为目标进程PID

ps -T -p 1234 -o %cpu,tid,comm --sort=-%cpu | head -n 10


-T:显示进程的所有线程。

tid:线程 ID,可结合top -H -p 1234实时监控线程。

2. 结合perf工具分析 CPU 热点(适合深入调试)

若需定位进程内具体函数的 CPU 消耗,可使用perf(需安装):


bash

# 对进程1234采样10秒,分析CPU热点函数

perf record -p 1234 -g sleep 10

perf report  # 查看分析结果,显示函数调用栈的CPU占比

五、总结步骤

用top或htop实时定位 CPU 占用最高的进程(看%CPU和PID)。

用ps -eo %cpu,pid,user,comm --sort=-%cpu确认快照中的高消耗进程。

若怀疑线程问题,用ps -T -p <PID>或top -H -p <PID>查看线程。

必要时用perf工具深入分析进程内部的 CPU 热点函数。


通过以上方法,可快速定位并分析 CPU 占用过高的进程,为后续优化(如重启服务、调整配置、修复代码)提供依据。


我们提供7X24小时售后服务,了解更多机房产品和服务,敬请联系
购买咨询 售后服务