如何查看linux服务cpu信息
如何查看linux服务cpu信息详细介绍
在 Linux 系统中查看服务的 CPU 信息,可根据服务类型(普通进程、systemd 管理的服务等)选择不同工具。以下是常用方法:
一、通过进程名 / 服务名查找 CPU 信息(通用方法)
1.
实时监控:top 或 htop
top(默认按 CPU 占用排序):bash- 输入
PID对应的数字(若已知服务的 PID),或通过Shift + f选择排序字段(如按P键以 CPU 占用排序),找到目标服务的进程,查看%CPU列(实时占用率)。
- 输入
htop(增强版,支持搜索和交互):bash- 按
F3搜索服务关键词(如服务名),直接定位进程,查看 CPU 占用。
- 按
2.
静态查看:ps 命令
- 通过服务名过滤进程并查看 CPU 占用:bash
aux 服务名- 关键列说明:
%CPU:进程占用 CPU 的百分比(累计值,非实时)。PID:进程 ID,可结合其他工具进一步分析。
- 关键列说明:
二、针对 systemd 管理的服务(如 .service 文件)
若服务通过 systemd 启动(如 nginx.service、docker.service),可先获取服务的 PID,再查看 CPU 信息。
1.
获取服务 PID
bash
systemctl status 服务名systemctl show MainPID 服务名
2.
查看该 PID 的 CPU 信息
- 用
ps单独查看该 PID 的详细信息:bashpid,%cpu,%mem,cmd - 用
top定位特定 PID(输入top后按k输入 PID,或直接在命令行指定):bash
3.
systemd 内置工具:systemd-cgtop
- 查看 cgroup(系统资源分组)中服务的 CPU 占用(需服务属于 systemd cgroup):bash
systemd-cgtop
三、通过 proc 文件系统获取详细 CPU 时间
每个进程的 CPU 信息存储在 /proc/[PID]/stat 中,可通过以下命令解析:
bash
/proc//stat
$14:用户态 CPU 时间(单位:jiffies,1 jiffy ≈ 1/100 秒,具体取决于内核配置)。$15:内核态 CPU 时间。
四、历史 CPU 统计:sar(需安装 sysstat 包)
若需查看过去的 CPU 使用情况(需系统开启 sysstat 服务):
bash
sysstat
yum sysstat
sar PID
五、总结步骤
- 确定服务的进程名或 PID:
- 若已知服务名,用
ps aux | grep 服务名或systemctl status 服务名获取 PID。
- 若已知服务名,用
- 实时监控:用
top/htop定位进程,查看实时%CPU列。 - 静态查询:用
ps -p PID或解析/proc/PID/stat获取详细 CPU 时间。 - systemd 服务专用:通过
systemctl获取 PID 后,结合上述工具分析。
根据需求选择合适工具,实时监控推荐 top/htop,脚本化查询推荐 ps 或 proc 文件系统,systemd 服务优先使用 systemctl 结合 PID 分析。