linux系统下top命令的详细用法、参数详解、以及模式配置

用过linux系统的人都知道top命令,它是Linux下一个最常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它显示系统中CPU最“敏感”的任务列表,并可以按CPU使用、内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。下面就一一道来。

一、命令用法

首先解释一下该命令的具体用法。

top使用格式:

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

参数说明:

  • d 指定每两次屏幕信息刷新之间的时间间隔;
  • p 通过指定监控进程ID来仅仅监控某个进程的状态;
  • q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行;
  • S 指定累计模式;
  • s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险;
  • i 使top不显示任何闲置或者僵死进程;
  • c 显示整个命令行而不只是显示命令名;

比如:

top                                // 每隔5秒显式所有进程的资源占用情况;
top -d 2                        // 每隔2秒显式所有进程的资源占用情况;
top -c                           // 每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名);
top -p 12345 -p 6789  // 每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况;
top -d 2 -c -p 123456  // 每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数;

二、实例解读

然后,我们结合实际的例子,来聊一聊该命令执行过程中所输出的信息,如何进行解读:
在这里插入图片描述

第一行:运行概览

top - 09:15:56 up 31 min, 2 users, load average: 0.01, 0.03, 0.05

内容含义
09:15:56当前系统时间
up 31 min系统已经运行了31分钟(在这期间没有重启过)
2 users当前有2个用户登录系统
load average: 0.01, 0.03, 0.05过去1分钟、5分钟、15分钟内系统的负载情况

注:load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行:任务概览

Tasks: 191 total, 2 running, 189 sleeping, 0 stopped, 0 zombie

这一行比较简单,就不多解释了,只说明一点,zombie表示僵尸进程,不理解的可自行百度。

第三行:CPU状态

%Cpu(s): 0.7 us, 0.5 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

内容含义
0.7 us用户空间所占百分比
0.5 sy内核空间所占百分比
0.0 ni改变过优先级的进程所占百分比
98.8 id空闲进程所占百分比
0.0 waIO等待进程所占百分比
0.0 hi硬中断(Hardware IRQ)所占百分比
0.0 si软中断(Software Interrupts)所占百分比
0.0 st虚拟机所占百分比

同样也要说明一点,这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,自行百度吧。

第四行:内存状态

KiB Mem: 3081144 total, 1445648 used, 1635496 free, 323064 buffers
KiB Swap: 4191228 total, 0 used, 4191228 free. 527176 cached Mem

内容含义
3081144 total物理内存总量(3G)
1445648 used使用中的内存总量(1.38GB)
1635496 free空闲内存总量(1.56G)
323064 buffers缓存的内存量 (315M)
4191228 total交换分区总量(4G)
0 used已使用的交换分区(0)
4191228 free空闲状态的交换分区(4G)
527176 cached Mem缓冲状态的交换分区(514K)

这里要说明一下,我们不能用windows的内存概念来理解这些数据,Linux的内存管理有其特殊性,复杂点需要一本书来说明,这里只是简单说点和我们传统概念(windows)的不同。

MEM一行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

对于内存监控,在top里我们要时刻监控SWAP一行中的已用数值used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

剩余行:进程详情

在这里插入图片描述
首先说明一点,上述命令的显示状态,是在Ubuntu 14.04(64位)系统的缺省状态下所显示的。在其他的系统下,或者同一个系统的不同设置状态下,top命令所显示出来的列项目是有所区别的,有可能与上述图片中的不一样。换句话说,top命令其实能显示非常多的项目信息,远不止上述图片中所述,究竟有哪些呢,如下表所述:

序号名称含义
aPID进程id
bPPID父进程id
cRUSERReal user name
dUID进程所有者的用户id
eUSER进程所有者的用户名
fGROUP进程所有者的组名
gTTY启动进程的终端名。不是从终端启动的进程则显示为?
hPR优先级
iNInice值。负值表示高优先级,正值表示低优先级
jP最后使用的CPU,仅在多CPU环境下有意义
k%CPU上次更新到现在的CPU时间占用百分比
lTIME进程使用的CPU时间总计,单位秒
mTIME+进程使用的CPU时间总计,单位1/100秒
n%MEM进程使用的物理内存百分比
oVIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
pSWAP进程使用的虚拟内存中,被换出的大小,单位kb
qRES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
rCODE可执行代码占用的物理内存大小,单位kb
sDATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
tSHR共享内存大小,单位kb
unFLT页面错误次数
vnDRT最后一次写入到现在,被修改过的页面数
wS进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
xCOMMAND命令名/命令行
yWCHAN若该进程在睡眠,则显示睡眠中的系统函数名
zFlags任务标志,参考 sched.h

从上表可以看出,其实top命令可以显示的信息列最多有26列,每一列的代号分别对应为a-z,只不过在缺省状态下,系统只显示其中比较重要的【PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND】列,而用户是完全通过指定的方式可以进行随意增减的。同时,在top命令运行的过程中,还可以进行一些其他的自定义设置,包括刷新速度、排序方式等,那么,究竟应该如何操作呢?请看下节:

三、个性化设置

上文说到,可以在输入top命令的时候携带一些参数来进行配置,可是有时候,输入top命令的时候,并不很清楚它的运行状态,有些参数也不知道如何设置,比如排序模式、需要显示的列等,而是要等到top命令运行起来了,才好进行设置。因此,有没有一种方法是在top命令运行的过程中,能够对其显示的模式、内容等进行临时的设置呢?

答案当然是有的!下面就介绍一下在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。

  • h或者? 显示帮助画面,给出一些简短的命令总结说明;
  • k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽;
  • i 忽略闲置和僵死进程。这是一个开关式命令;
  • q 退出程序;
  • r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10;
  • S 切换到累计模式;
  • s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
  • f或者F 从当前显示中添加或者删除项目。按下此键之后,系统会进入配置界面,显示出目前所能支持的全部条目,用户可以进行自定义的删减和配置;
  • o或者O 改变显示项目的顺序;
  • l 切换显示平均负载和启动时间信息;
  • m 切换显示内存信息;
  • t 切换要不要显示进程和CPU状态信息这两行;
  • c 切换显示命令名称和完整命令行;
  • M 根据内存大小进行排序;
  • P 根据CPU使用百分比大小进行排序;
  • T 根据时间/累计时间进行排序;
  • W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法;

怎么样,是不是非常灵活?自己去试试吧?

### 回答1: Linux top命令是一个非常常用的系统性能监控工具,它可以实时显示系统的CPU、内存、进程等信息,帮助用户快速了解系统的运行状态和性能瓶颈。下面是top命令用法详解: 1. 命令格式 top命令的基本格式为: top [选项] 2. 命令选项 top命令的常用选项包括: - -d:指定刷新时间,单位为秒,默认为3秒; - -b:以批处理模式运行,输出结果到文件; - -c:显示完整的命令行信息; - -H:显示线程信息; - -p:指定要监控的进程ID; - -n:指定刷新次数,达到指定次数后自动退出; - -u:指定要监控的用户。 3. 命令输出 top命令的输出结果包括: - 第一行:系统时间、运行时间、登录用户数、系统负载; - 第二行:总进程数、运行中进程数、睡眠中进程数、停止进程数、僵尸进程数; - 第三行:CPU使用情况; - 第四行:内存使用情况; - 后续行:各个进程的详细信息,包括进程ID、CPU占用率、内存占用率、进程状态、运行时间、命令行等。 4. 命令操作 在top命令的输出结果中,可以使用以下操作: - k:杀死指定进程; - r:修改指定进程的优先级; - u:显示指定用户的进程; - q:退出top命令。 总之,top命令是一个非常实用的系统性能监控工具,可以帮助用户快速了解系统的运行状态和性能瓶颈,同时也提供了一些操作功能,方便用户对系统进行管理和调优。 ### 回答2: Linux中的top命令是一个非常常用的系统监控工具,它可以以交互模式或批处理模式显示当前正在运行的进程的信息,如CPU占用率、内存占用率、进程状态等,是系统管理员或开发人员必备的工具之一。 1. 命令格式: `top [-] [d interval] [q] [pid]` -参数:可以通过+和-来控制升降序。 -d:刷新间隔时间,单位为秒。 -q:直接退出。 -pid:指定查看某个进程的信息。 2. top命令输出信息 top命令输出的信息非常详细,包括: 进程ID(PID)、用户(USER)、进程状态(PR)、虚拟内存(VIRT)、物理内存(RES)、共享内存(SHR)、CPU占用(%CPU)、内存占用(%MEM)、进程名称(COMMAND)等。 其中,VIRT表示虚拟内存占用了多少物理内存(包含共享内存),RES表示物理内存占用大小(不包含共享内存),SHR表示共享内存占用大小。 PR表示进程的运行优先级。 3. top命令使用技巧 (1)top在交互模式下可以通过键盘操作控制输出结果,例如: u: 切换显示用户 p: 切换显示进程 M: 切换按内存排序 T: 切换按CPU排序 q: 退出top (2)top在批处理模式下可以将输出结果保存到文件中,例如: top -n 1 > top.txt 该命令将top输出结果保存到top.txt文件中。 (3)top可以通过pid参数指定查看某个进程的信息,例如: top -p pid 该命令将查看进程ID为pid的进程信息。 总之,top命令Linux系统中非常实用的工具之一,可以方便地监控系统性能和进程状态,熟练掌握top命令的使用方法,对于系统管理员或开发人员而言都是非常有益的。 ### 回答3: Linux top命令是一款实时监控系统资源使用情况的工具,也是Linux系统管理员必须掌握的基本工具之一。它可以在命令行下运行,展示当前系统中占用CPU、内存等资源最高的进程。 使用top命令,首先需要打开终端,输入top命令,就可以看到系统进程的实时信息。在top界面中,通常会显示如下信息: 1.系统整体信息 系统整体信息主要包括:系统当前时间、运行时间、正在运行的进程数、负载平均值等。 2.进程列表 进程列表包括每个进程的进程ID、进程名、进程状态、占用CPU的百分比以及占用内存的百分比。 3.进程详情 若要查看某个进程的详细信息,可以使用快捷键“Shift + M”来按照内存占用排序,或者“Shift + P”来按照CPU占用排序。在这个模式下,可以看到进程的线程数、虚拟内存与物理内存的使用情况以及进程的启动命令等信息。 此外,还可以通过快捷键“H”来查看进程的线程详情。 常见参数及使用方式: 1. 指定显示进程数量:top -n 10表示显示当前系统占用资源最高的10个进程。 2. 批处理模式:top -b表示以批处理模式运行,可以将top命令的输出结果保存到文件中。 3. 指定刷新频率:top -d 5表示每5秒刷新一次进程列表。 4. 只显示某个用户的进程:top -u username表示只显示username用户的进程列表。 5. 只显示某个进程:top -p pid1,pid2...表示只显示指定的进程列表。 总之,Linux top命令是一款非常强大的系统监控工具,通过加深对top命令的使用和理解,可以更好地掌控系统的整体运行状况,及时识别和解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值