Linux之top命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最敏感的任务列表。该命令可以按CPU使用。内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。命令格式
top〔参数〕命令功能
显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等命令参数b批处理c显示完整的路径I忽略失效过程s保密模式S累积模式i时间设置间隔时间u用户名指定用户名p进程号指定进程n次数循环显示的次数显示进程信息toptop21:16:05up59days,4:13,1user,loadaverage:0。25,0。42,0。42Tasks:181total,1running,180sleeping,0stopped,0zombieCpu(s):2。3us,3。1sy,0。0ni,94。6id,0。0wa,0。0hi,0。0si,0。0stKiBMem:16265536total,807520free,12503980used,2954036buffcacheKiBSwap:0total,0free,0used。2625804availMemPIDUSERPRNIVIRTRESSHRSCPUMEMTIMECOMMAND29160root02043430043995763936S49。52。510752:33vpnserver
前五行是当前系统情况整体的统计信息区。下面我们看每一行信息的具体意义。第一行,任务队列信息,同uptime命令的执行结果,具体参数说明情况如下top21:16:05up59days,4:13,1user,loadaverage:0。25,0。42,0。4221:16:05当前系统时间up59days距离上次服务器重启服务器已经运行了59天1user当前有1个用户登录系统loadaverage:0。25,0。42,0。42loadaverage后面的三个数分别是1分钟、5分钟、15分钟的负载情况
loadaverage数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。第二行,Tasks任务(进程),具体信息说明如下Tasks:181total,1running,180sleeping,0stopped,0zombie
系统现在共有181个进程,其中处于运行中的有1个,180个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。第三行,cpu状态信息,具体属性说明如下Cpu(s):2。3us,3。1sy,0。0ni,94。6id,0。0wa,0。0hi,0。0si,0。0st2。3us用户空间占用CPU的百分比。3。1sy内核空间占用CPU的百分比。0。0ni改变过优先级的进程占用CPU的百分比94。6id空闲CPU百分比0。0waIO等待占用CPU的百分比0。0hi硬中断(HardwareIRQ)占用CPU的百分比0。2si软中断(SoftwareInterrupts)占用CPU的百分比0。0st表示被强制等待虚拟CPU的时间第四行,内存状态,具体信息如下KiBMem:16265536total,807520free,12503980used,2954036buffcache16265536ktotal物理内存总量(16GB)807520kfree空闲内存总量(807MB)12503980kused使用中的内存总量(12GB)2954036kbuffers缓存的内存量(2GB)第五行,swap交换分区信息,具体信息说明如下KiBSwap:0total,0free,0used。2625804availMem0ktotal交换区总量(0)0kfree空闲交换区总量(0)0kused使用的交换区总量(0)2625804availMem虚拟内存总量(2。6GB)
buffcache虽然占用物理内存,但当内存不够时也可以直接使用,因此物理内存的可使用空间为:freebuffcache。第六行,空行。第七行以下:各进程(任务)的状态监控,项目列信息说明如下PID进程idUSER进程所有者PR进程优先级NInice值。负值表示高优先级,正值表示低优先级VIRT进程使用的虚拟内存总量,单位kb。VIRTSWAPRESRES进程使用的、未被换出的物理内存大小,单位kb。RESCODEDATASHR共享内存大小,单位kbS进程状态。D不可中断的睡眠状态R运行S睡眠T跟踪停止Z僵尸进程CPU上次更新到现在的CPU时间占用百分比MEM进程使用的物理内存百分比TIME进程使用的CPU时间总计,单位1100秒COMMAND进程名称(命令名命令行)多U多核CPU监控
在top基本视图中,按键盘数字1,可监控每个逻辑CPU的状况:top
高亮显示当前运行进程
敲击键盘b(打开关闭加亮效果),top的视图变化如下
进程id为22221的top进程被加亮了,top进程就是视图第二行显示的唯一的运行态(runing)的那个进程,可以通过敲击y键关闭或打开运行态进程的加亮效果。进程字段排序
top默认的排序列是CPU
敲击键盘x(打开关闭排序列的加亮效果),top的视图变化如下
通过shift或shift可以向右或左改变排序列
按一下shift就会按照MEM排序,以此类推显示完整命令
topc或者先输入top进入后按c键topc
设置信息更新次数topn2
表示更新两次后终止更新显示设置信息更新周期topd3
表示更新周期为3秒显示指定的进程信息topp123top交互命令
在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了s选项,其中一些命令可能会被屏蔽。h显示帮助画面,给出一些简短的命令总结说明k终止一个进程。i忽略闲置和僵死进程。这是一个开关式命令。q退出程序r重新安排一个进程的优先级别S切换到累计模式s改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5sf或者F从当前显示中添加或者删除项目o或者O改变显示项目的顺序l切换显示平均负载和启动时间信息m切换显示内存信息t切换显示进程和CPU状态信息c切换显示命令名称和完整命令行M根据驻留内存大小进行排序P根据CPU使用百分比大小进行排序T根据时间累计时间进行排序W将当前设置写入。toprc文件中
按q可以退出top