当前位置: 代码网 > 服务器>服务器>Linux > Linux使用top命令过滤排序的方法详解

Linux使用top命令过滤排序的方法详解

2026年02月04日 Linux 我要评论
你希望详细掌握centos 7系统中top命令的使用方法,特别是其中的过滤和排序功能,以此精准监控系统进程的资源占用情况。top是centos 7中最核心的系统监控工具,能实时显示进程的cpu、内存等

你希望详细掌握centos 7系统中top命令的使用方法,特别是其中的过滤和排序功能,以此精准监控系统进程的资源占用情况。

top是centos 7中最核心的系统监控工具,能实时显示进程的cpu、内存等资源占用,下面从基础界面排序过滤三个维度详解,重点聚焦你关注的排序和过滤功能。

一、先熟悉top基础界面

执行top命令后,界面分为两部分:

top - 10:23:45 up 7 days,  2:10,  1 user,  load average: 0.10, 0.05, 0.01
tasks: 120 total,   1 running, 119 sleeping,   0 stopped,   0 zombie
%cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
kib mem :  8010240 total,  1234560 free,  2345670 used,  4429910 buff/cache
kib swap:  8388604 total,  8388604 free,        0 used.  5234560 avail mem 

  pid user      pr  ni    virt    res    shr s  %cpu %mem     time+ command                                                                
 1234 root      20   0  123456  12345   6789 s   5.0  0.2   0:10.23 nginx                                                                  
 5678 mysql     20   0  987654 876543  12345 s   2.0 10.9   1:20.34 mysqld                                                                 
  • 上部(系统概览):负载、进程总数、cpu/内存/交换分区使用率。
  • 下部(进程列表):pid(进程id)、user(所属用户)、%cpu(cpu使用率)、%mem(内存使用率)、command(进程名)等核心列。

二、top排序功能(核心)

排序是top最常用的功能,分为交互模式排序(运行中操作)和命令行参数排序(启动时指定),新手优先掌握交互模式。

1. 交互模式快速排序(运行top后操作)

运行top后,直接按以下快捷键即可实时排序,无需重启命令:

快捷键排序规则适用场景
pcpu使用率降序(默认)找cpu占用最高的进程
m内存使用率降序找内存占用最高的进程(最常用)
t累计cpu时间(time+) 降序找长期占用cpu的进程
npid降序按进程id排序
r反转当前排序(升序↔降序)想看占用最低的进程时使用
< / >切换排序列自定义按其他列(如user)排序

示例

  • 运行top后按m,进程会立刻按内存使用率从高到低排列,能一眼定位内存“大户”(如mysql、java进程);
  • r后,排序反转,变成内存使用率从低到高排列;
  • >键,可切换到按time+列排序,再按r变成升序,能找到运行时间最短的进程。

2. 命令行参数排序(启动时指定)

如果想启动top就按指定列排序,用-o参数(centos 7的top原生支持),格式:

top -o 列名

常用列名:%cpu%mempidtime+user(列名需和top界面显示一致)。

示例

# 启动top时直接按内存使用率降序排序
top -o %mem

# 启动top时按pid升序排序(加负号表示升序)
top -o -pid

# 启动top时按累计cpu时间降序排序
top -o time+

三、top过滤功能(精准筛选进程)

过滤能只显示符合条件的进程,避免无关进程干扰,分为交互模式过滤命令行参数过滤

1. 交互模式过滤(运行top后操作)

(1) 按用户过滤(最常用):按u键

操作步骤:

  1. 运行top
  2. u键,界面底部提示which user (blank for all)
  3. 输入要过滤的用户名(如rootnginxmysql),回车;
    • 若直接回车,取消用户过滤,显示所有用户进程。

示例
u → 输入nginx → 回车,仅显示nginx用户的所有进程,快速排查nginx进程的资源占用。

(2) 按进程名/自定义条件过滤:按o键

操作步骤:

  1. 运行top
  2. o键,界面提示add filter expression
  3. 输入过滤条件(格式:列名=值/列名>值,支持通配符*);
  4. 回车生效。

常用过滤条件示例

  • command=nginx:只显示进程名包含nginx的进程;
  • %cpu>5:只显示cpu使用率超过5%的进程;
  • %mem>2:只显示内存使用率超过2%的进程;
  • user=mysql:等效于按u键过滤mysql用户(多一种方式)。

(3) 清除所有过滤条件:按=键

如果设置了多个过滤条件,想一键恢复显示所有进程,按=键即可。

2. 命令行参数过滤(启动时指定)

适合脚本/批量监控场景,启动top时直接指定过滤条件:

(1) 按用户过滤:-u参数

格式:top -u 用户名/uid

# 只显示nginx用户的进程
top -u nginx

# 只显示uid为1000的用户进程(uid可通过id命令查询:id 用户名)
top -u 1000

(2) 按pid过滤:-p参数

格式:top -p pid1,pid2,pid3(多个pid用逗号分隔,最多20个)

# 只监控pid为1234(nginx主进程)和5678(mysql进程)的进程
top -p 1234,5678

四、实用补充技巧

  1. 调整刷新频率:默认3秒刷新一次,按s键修改(如输入1则1秒刷新),或启动时用top -d 1
  2. 显示单cpu核心使用率:按数字1,从“总cpu使用率”切换为“每个核心的使用率”;
  3. 只显示活跃进程:按i键,隐藏闲置(sleeping)进程,减少干扰;
  4. 退出top:按q键(或ctrl+c)。

总结

  1. 排序核心:交互模式按p/m/t快速按cpu/内存/累计时间排序,启动时用top -o 列名指定排序列(加负号为升序);
  2. 过滤核心:按u过滤用户、按o设置自定义过滤条件(如command=nginx),启动时用-u(用户)/-p(pid)过滤;
  3. 实用技巧:按1看单cpu核心使用率,按=清除过滤,按q退出top。

以上就是linux使用top命令过滤排序的方法详解的详细内容,更多关于linux top命令过滤排序的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com