0

0

如何在Linux系统中查看和管理系统进程?掌握ps和top命令的实用教程

雪夜

雪夜

发布时间:2025-08-28 09:39:01

|

283人浏览过

|

来源于php中文网

原创

答案:ps命令提供进程静态快照,常用ps aux和ps -ef查看并筛选进程,结合grep定位特定进程;top命令实时动态监控资源占用,支持按CPU、内存排序,可交互式终止或调整进程优先级;两者结合使用可高效排查系统问题。

如何在linux系统中查看和管理系统进程?掌握ps和top命令的实用教程

在Linux系统中,查看和管理系统进程是日常运维和故障排查的核心技能。我们主要依赖

ps
top
这两个命令,它们一个提供进程的静态快照,另一个则提供实时动态监控,各有侧重,互为补充。掌握它们,你就能更好地理解系统在做什么,以及如何介入。

解决方案

要查看和管理Linux系统进程,核心思路是利用

ps
命令获取进程的当前状态(一个“快照”),并通过各种选项筛选和格式化输出;同时,使用
top
命令实时监控进程的资源占用情况,并在必要时进行交互式管理,如终止进程或调整其优先级。

如何利用ps命令全面查看进程信息并进行筛选?

说实话,刚接触

ps
命令时,那一大堆选项和参数确实让人头疼。但用久了,你会发现它就像一个“照相机”,能把系统某一刻的进程状态清晰地拍下来。我个人最常用的,也是推荐给大家的,是
ps aux
ps -ef

ps aux
会显示所有用户的进程,包括进程ID(PID)、CPU占用率、内存占用率、启动时间、命令行等。
a
表示显示所有用户的进程,
u
表示显示用户/所有者,
x
表示显示没有控制终端的进程。比如,你想看看哪个进程占用了大量内存,直接输入
ps aux --sort=-%mem | head -n 10
,就能快速定位到内存占用最高的几个进程。这里我加了个
--sort=-%mem
,意思是按内存占用从高到低排序,
head -n 10
就是只看前十行,这样输出就没那么冗长了。

ps -ef
则以更经典的Unix风格显示所有进程,
e
表示显示所有进程,
f
表示显示完整格式列表。它会显示进程的父进程ID(PPID),这在理解进程树和排查“僵尸进程”时特别有用。

定位特定进程通常会结合

grep
。例如,我想找所有与MySQL相关的进程,我会这么做:
ps aux | grep mysql
。但这里有个小技巧,因为
grep mysql
本身也会成为一个进程,为了避免它出现在结果中,我通常会写成
ps aux | grep [m]ysql
。这样,
grep
就不会匹配到它自己了,结果会更干净。

如果你知道进程ID(PID),直接用

ps -p 
就能查看该特定进程的详细信息。这在调试或者需要确认某个服务是否还在运行时非常方便。

问小白
问小白

免费使用DeepSeek满血版

下载

top命令如何实时监控系统资源并进行交互式管理?

top
命令则完全是另一个“画风”,它提供了一个动态、实时的系统概览。每次我看到系统性能有点不对劲,第一个想到的就是它。它会不断刷新,显示CPU、内存、交换分区的使用情况,以及每个进程的资源占用。

进入

top
界面后,你会看到很多信息,但最关键的几个点是:

  • 第一行:系统时间、运行时间、登录用户数、负载平均值(load average)。负载平均值是个好东西,它告诉你系统在1分钟、5分钟、15分钟内有多少个进程在“排队”等待CPU。如果这个值持续高于CPU核心数,那你的系统可能有点忙了。
  • 第二行:进程总数、运行中的、睡眠中的、停止的、僵尸进程数。
  • 第三行:CPU使用率,包括用户空间、内核空间、空闲百分比等。
  • 第四、五行:内存和交换分区的使用情况。

top
界面里,你可以进行很多交互操作:

  • 按下
    P
    键,会按CPU占用率排序(默认就是这个)。
  • 按下
    M
    键,会按内存占用率排序。
  • 按下
    T
    键,会按运行时间排序。
  • 如果你想终止一个进程,直接按
    k
    键,然后输入要终止的进程ID(PID),回车。它会默认发送
    SIGTERM
    信号,给进程一个优雅退出的机会。如果进程不响应,你可以再试一次,但这次输入
    9
    (代表
    SIGKILL
    ),强制杀死进程。不过,强制终止进程要慎重,可能会导致数据丢失
  • 按下
    r
    键,可以重新调整进程的“nice”值,也就是它的优先级。输入PID后,再输入新的nice值,正值表示降低优先级,负值表示提高优先级(需要root权限)。这在你想让某个后台任务不要抢占太多CPU时很有用。
  • 按下
    q
    键,退出
    top

top
的实时性让它成为排查性能瓶颈的利器。当系统卡顿或者某个服务响应慢时,我通常会先用
top
看看是哪个进程在捣乱,是CPU飙高了,还是内存快耗尽了。

在实际工作中,ps和top命令有哪些高级用法和常见陷阱?

在日常运维中,

ps
top
远不止这些基础用法。它们有很多“隐藏”功能和一些需要注意的地方。

ps
的高级玩法: 我有时候需要查看进程的完整命令行,特别是那些被截断的。
ps auxww
就能派上用场,多加一个
w
可以防止命令行被截断,两个
w
则可以显示更长的命令行。这在调试一些启动参数很复杂的应用时特别有用。 另一个高级用法是自定义输出格式。例如,我想看进程的PID、父进程ID、CPU和内存占用,以及完整的命令行,并且按内存从高到低排序,我会这样写:
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%mem | head -n 10
这里的
-o
选项允许你指定任何你想要的字段,非常灵活。

top
的高级玩法: 你可以在
top
启动时就指定一些参数。比如,如果你只想监控特定用户的进程,可以用
top -u 
。如果你只想监控一个或几个特定的进程ID,可以用
top -p ,
。这在专注于排查某个特定服务问题时非常高效。 另外,
top
的交互界面其实可以保存配置。如果你经常需要按某种特定的排序方式或显示某些列,可以按
w
键,它会将当前配置保存到
~/.toprc
文件中,下次启动
top
时就会自动加载。

常见陷阱和注意事项:

  1. ps
    的输出是瞬时快照
    :这意味着在你执行
    ps
    命令的那一刻,进程的状态可能已经发生了变化。所以,如果你需要持续监控,
    top
    才是更好的选择。
  2. 僵尸进程(Zombie Processes):有时你会看到
    ps
    top
    显示一些状态为
    Z
    (或者
    defunct
    )的进程。这些是僵尸进程,它们已经完成了执行,但它们的父进程还没有收集它们的退出状态。僵尸进程本身不占用CPU和内存,但它们会占用PID,如果数量过多,可能会耗尽PID资源。通常,你需要找到它们的父进程并解决父进程的问题(比如,父进程没有正确调用
    wait()
    函数)。
  3. 负载平均值不等于CPU使用率:负载平均值反映的是系统在某个时间段内,处于可运行状态和不可中断睡眠状态的进程数量。它包含了等待CPU的进程,也包含了等待I/O的进程。所以,高负载不一定意味着CPU不够用,也可能是磁盘I/O瓶颈。你需要结合
    top
    中的CPU使用率和
    iostat
    工具来综合判断。
  4. kill -9
    的风险
    :虽然
    kill -9
    SIGKILL
    )可以强制终止进程,但它不会给进程清理资源的机会,可能导致数据损坏或资源泄露。始终优先尝试
    kill 
    SIGTERM
    ),给进程一个优雅退出的机会。
  5. 进程权限:你只能查看和管理你有权限的进程。普通用户无法直接杀死root用户启动的关键系统进程,这是一种安全机制。

掌握

ps
top
,就像是给你的Linux系统装上了两只眼睛,一只负责“看清现状”,另一只负责“实时观察”。在实际工作中,它们能帮助你快速定位问题、优化性能,是每个Linux用户都应该熟练掌握的工具。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

664

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

246

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

281

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

515

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

255

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

386

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

530

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

599

2023.08.14

excel表格操作技巧大全 表格制作excel教程
excel表格操作技巧大全 表格制作excel教程

Excel表格操作的核心技巧在于 熟练使用快捷键、数据处理函数及视图工具,如Ctrl+C/V(复制粘贴)、Alt+=(自动求和)、条件格式、数据验证及数据透视表。掌握这些可大幅提升数据分析与办公效率,实现快速录入、查找、筛选和汇总。

0

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 4.6万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号