当前位置: 首页 > 后端技术 > Java

LinuxTop命令参数详解

时间:2023-04-02 01:50:56 Java

简介top命令是Linux下常用的性能分析工具,可以实时显示系统中各个进程的资源使用情况,类似于Windows的任务管理器。top显示系统的当前进程和其他情况。它是一个动态的显示过程,即可以通过用户按键不断刷新当前状态。如果命令在前台执行,它将独占前台,直到用户终止程序。更准确地说,top命令提供了对系统处理器状态的实时监控。它将显示系统中对CPU最敏感的任务列表。该命令可以按照CPU使用率、内存使用率和执行时间对任务进行排序;并且该命令的许多特性可以通过交互式命令或在个人定制文件中进行设置。下面详细介绍如何使用它。参数含义top-01:06:48up1:22,1user,loadaverage:0.06,0.60,0.48Tasks:29total,1running,28sleeping,0stopped,0zombieCpu(s):0.3%us,1.0%sy,0.0%ni,98.7%id,0.0%wa,0.0%hi,0.0%siMem:总计191272k,已用173656k,免费17616k,22052k缓冲区交换:总计192772k,已用0k,免费192772k,缓存123988kNIRTUSResShrS%CPU%MEMTime+Command1379ROOT160797624561980S0.71.30:11.03SSHD14704ROOT1602128980796R0.50:02.72TOP1ROOT16019926325440.30.30.30.30.30.30.30.30.30.30.30.30.30.30.30.30.19000S0.00.00:00.00ksoftirqd/03rootRT0000S0.00.00:00.00watchdog/0统计信息区前五行是系统整体统计信息。第一行是任务队列信息,和uptime命令的执行结果一样。其内容如下:01:06:48当前时间1:22系统运行时间,格式为小时:分钟1用户当前登录用户数loadaverage:0.06,0.60,0.48系统负载,即平均长度的任务队列。三个数值分别是1分钟、5分钟、15分钟前到现在的平均值。第二行和第三行是进程和CPU信息。当有多个CPU时,这些可能会超过两行。内容如下:totaltotaltotalprocessesrunningrunningprocessessleepingnumbersleepingprocessesstoppednumberofstoppedprocesseszombie僵尸进程数Cpu(s):0.3%us用户空间占用的CPU百分比1.0%syCPU百分比内核空间占用0.0%ni用户进程空间优先级发生改变的进程占用CPU百分比98.7%id空闲CPU百分比0.0%wa等待输入输出的CPU时间百分比0.0%hi:硬件CPU中断占用百分比0.0%si:软中断占用百分比0.0%st:虚拟机占用百分比最后两行的内存信息。内容如下:Mem:191272ktotaltotaltotalphysicalmemory173656kusedtotalphysicalmemory17616kfreetotalfreememory22052kbuffersmemoryusedaskernelcacheSwap:192772ktotaltotaltotalswaparea0kusedtotalswaparea192772kfree空闲交换区总量area123988k缓冲swap区的总量,内存中的内容被换出到swap区,再换入内存,但是使用过的swap区还没有被覆盖,值就是这些swap区的大小其内容已经存在于内存中。当相应的内存再次被换出时,就不需要写交换区了。进程信息区中统计信息区的下方显示了各个进程的详细信息。首先,让我们了解每一列的含义。No.列名含义PID进程idbPPID父进程idcRUSER真实用户名为UID进程所有者userideUSER进程所有者用户名fGROUP进程所有者组名gTTY启动进程终端名称。不是从终端启动的进程显示为?hPRPriorityiNInicevalue。负值表示高优先级,正值表示低优先级。jP最后使用的CPU,只在多CPU环境下有意义。k%CPU自上次更新以来占用的CPU时间百分比lTIME进程使用的CPU总时间,单位为秒mTIME+进程使用的CPU总时间,单位为1/100秒n%MEM的percentageofphysicalmemoryusedbytheprocessoVIRT进程使用的虚拟内存总量,单位是kb。VIRT=SWAP+RESpSWAP进程使用的虚拟内存中,换出的大小以kb为单位。qRES进程使用但未换出的物理内存大小,以kb为单位。RES=CODE+DATArCODE可执行代码占用的物理内存大小,单位kbsDATA除可执行代码(数据段+栈)以外部分占用的物理内存大小,单位kbtSHR共享内存大小,单位kbunFLT缺页次数vnDRT的自上次写入以来已修改的页数。wS进程状态(D=不可中断睡眠状态,R=running,S=sleeping,T=tracking/stopping,Z=zombieprocess)xCOMMAND命令名/命令行yWCHAN如果进程处于睡眠状态,则显示睡眠系统functionnameinzFlags任务标志,参考sched.h默认只显示比较重要的PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,COMMAND列。可以通过以下快捷键更改显示内容。更改显示内容按f键可以选择显示内容。按f键后会显示一列列,按a-z显示或隐藏相应列,最后按回车键确认。按o键更改列的显示顺序。小写的a-z将相应的列向右移动,大写的A-Z将相应的列向左移动。最后按回车键确认。按大写的F或O键,然后按a-z按相应列对进程进行排序。大写R键可以反转当前排序。该命令使用top,使用格式top[-][d][p][q][c][C][S][s][n]参数说明d指定每两次屏幕信息刷新的时间间隔。当然,用户可以使用s交互命令来改变它。p通过指定监控进程ID,只监控一个进程的状态。q此选项将使顶部刷新没有任何延迟。如果调用程序具有超级用户权限,那么top将以尽可能高的优先级运行。S指定累积模式s使top命令在安全模式下运行。这消除了交互式命令带来的潜在危险。i使top不显示任何空闲或死进程。c显示整个命令行,而不仅仅是命令名其他有用的命令下面介绍一些在top命令执行过程中可以使用的交互命令。从使用的角度来说,熟练掌握这些命令比掌握选项更重要。这些命令都是单字母的。如果在命令行选项中使用了s选项,其中一些命令可能会被阻止。Ctrl+L擦除和重写屏幕。还是?显示帮助屏幕,为命令提供一些简短的摘要说明。k终止一个进程。系统会提示用户输入需要终止的进程的PID,以及需要向进程发送什么样的信号。一般可以用signal15来终止进程;如果不能正常结束,使用信号9强制结束进程。默认为信号15。此命令在安全模式下被阻止。i忽略空闲和僵尸进程。这是一个切换命令。q退出程序。r重新排列进程的优先级。系统提示用户输入要更改的进程的PID和要设置的进程的优先级值。输入正值将使优先级降低,输入负值将使进程具有更高的优先级。默认值为10。S切换到累加模式。s更改刷新之间的延迟。系统将提示用户输入新的时间,单位为s。如果有小数,则转换为ms。如果输入值为0,系统将连续刷新,默认值为5秒。需要注意的是,如果时间设置得太小,可能会造成不断刷新,以至于来不及看到显示,系统负载也会大大增加。f或F在当前显示中添加或删除项目。o或O更改显示项目的顺序。l切换显示平均负载和启动时间信息。m切换内存信息的显示。t切换显示进程和CPU状态信息。c切换显示命令名称和完整命令行。M按常驻内存大小排序。P按照CPU使用率百分比排序。T按时间/累计时间排序。W将当前设置写入~/.toprc文件。这是编写顶级配置文件的推荐方式。附上常用操作:top//每5秒显示所有进程的资源占用情况top-d2//每2秒显示所有进程的资源占用情况top-c//每5秒显示所有进程的资源占用情况Resource占用情况,并显示进程的命令行参数(默认只有进程名)top-p12345-p6789//每5秒显示一次pid12345和pid6789的两个进程的资源占用情况top-d2-c-p123456//每2秒显示一次pid为12345的进程的资源使用情况,并显示启动该进程的命令行参数。转自:http://www.w3pop.com/learn/vi...