Linux进程管理ps top:Linux 进程管理入门:p

前置准备


在开始学习 Linux进程管理ps top 之前,请确保你具备以下条件:



  • 一台可以正常运行的 Linux 服务器(CentOS 7/8、Ubuntu 20.04+ 均可)。

  • 已通过 SSH 登录到服务器(推荐使用本地终端或 Xshell 等工具)。

  • 具备基本的命令行使用常识(只会回车就行)。

  • pstop 是系统自带命令,无需额外安装。


💡 如果发现命令执行后提示 “command not found”,请先执行 yum install procps-ng -y(CentOS)或 apt install procps -y(Ubuntu)安装工具包。

分步操作


第一步:用 ps 命令查看当前进程


ps 命令用于显示当前终端或系统中的进程快照。

新手最常用的是以下组合:


# 显示所有进程(BSD风格)
ps aux

参数解释



  • a:显示所有终端下的进程。

  • u:以用户为主的格式输出(包含 CPU/内存占用)。

  • x:显示不依附于终端的进程(守护进程等)。


示例输出片段:


USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root 1 0.0 0.1 225300 9944 ? Ss 10:20 0:01 /sbin/init
www 1234 0.3 2.1 654321 87654 ? S 10:25 0:02 nginx: worker process

重点字段



  • PID:进程唯一标识号,结束进程时要用它(kill PID)。

  • %CPU / %MEM:CPU 和内存占用百分比。

  • COMMAND:启动该进程的命令或程序名。


如果你想只看某个程序(比如 nginx),可以配合 grep


ps aux | grep nginx

如果想查看父子进程关系,用 ps -ef(标准格式):


ps -ef

第二步:用 top 命令实时监控进程


top 是动态刷新工具,可以像 Windows 的任务管理器一样实时观察资源占用。


直接输入 top 即可启动:


top

进入 top 界面后,默认每 3 秒刷新一次。

常用交互快捷键:



  • 1:展开/折叠每个 CPU 核心的单独统计。

  • M:按内存使用排序(大写 M)。

  • P:按 CPU 使用排序(大写 P)。

  • q:退出 top。


🔑 零基础技巧:初次使用 top 时,先按 P 看哪个进程最耗 CPU,再按 M 看哪个最耗内存。记下可疑的 PID,后续可以用 kill 命令结束。

第三步:结合 ps 与 top 进行进程管理


假设你发现服务器变慢,想排查哪个程序占用过高,操作流程如下:



  1. 运行 top 观察,按 P 找到 CPU 最高的进程,记下 PID(例如 5678)。

  2. q 退出 top,执行 ps -p 5678 -o pid,ppid,cmd,%cpu,%mem 查看该进程的详细信息。

  3. 如果确认是异常进程,使用 kill 5678 结束它。如果杀不掉,用 kill -9 5678(强制终止)。


批量查看:想获取所有进程并保存到文件分析,可以用:


ps aux > /tmp/process_list.txt

或者用 top -b -n 1 > /tmp/top_snapshot.txt 抓取一次快照。


避坑指南



  • 误区1:看到很多 [kworker][ksoftirqd] 以为是病毒。

  • 这些是内核线程,属于正常系统进程,不要随意 kill。

  • 误区2:用 kill -9 直接杀所有高占用进程。

  • 对于重要服务(如 Nginx、MySQL),应该先尝试正常停止服务(systemctl stop xxx),只有僵死进程才用 -9。

  • 误区3ps aux 输出的内存百分比总和超过 100%。

  • 因为进程可能共享内存(如 VSS),所以 %MEM 列加起来超过 100% 是正常的,实际物理内存看 RSS

  • 推荐:想要只看特定用户的进程,用 ps -u username


高频问题解答


Q1:ps 和 top 有什么区别?

A:ps 是静态快照,查看某一时刻的进程状态;top 是动态刷新,可以持续观察变化。日常分析用 ps 查细节,监控用 top。


Q2:为什么用 kill -9 后进程还在?

A:可能该进程是僵尸进程(状态 Z),kill -9 无法清理僵尸进程,需要杀掉其父进程(kill 父PID)或重启系统。用 ps aux | grep 'Z' 可以找到僵尸进程。


Q3:如何在 top 中只看某个用户的进程?

A:在 top 界面按 u 键,输入用户名回车即可过滤。


Q4:命令打错了能恢复到上一次输出吗?

A:不能,因为 ps 和 top 都是瞬间输出或实时刷新。如果要保留记录,请用 ps aux > log.txttop -b -n 1 > log.txt 写入文件。


效果验证


完成以上学习后,请依次执行以下命令验证你是否掌握了 Linux进程管理ps top 的核心操作:



  1. ps aux | head -10 —— 能看到前 10 行进程信息。

  2. top -b -n 1 | head -20 —— 能获取一次 top 输出并查看前 20 行。

  3. 模拟一个测试进程:sleep 300 &(后台运行一个睡眠 5 分钟的进程),然后执行 ps aux | grep sleep 能看到该进程的 PID。

  4. kill PID 结束该 sleep 进程,再执行 ps aux | grep sleep 确认进程已消失。


如果以上步骤全部成功,说明你已经能独立运用 ps 和 top 进行基础的 Linux 进程管理了。


如果你正在处理 Linux进程管理ps top,建议先按本文步骤完整执行,再根据自己的环境做微调;

遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
WordPress白屏报错解决:从排查到修复,六步搞定白屏问
下一篇
Docker镜像制作自定义:手把手教你自定义Docker镜像
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意