原文地址:
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
top可以显示CPU占用率为前几位的进程,并提供CPU的实时活动情况 语法:top [-s time] [-d count] [-q] [-u] [-h] [-n number] [-f filename] -s time 设置屏幕刷新的延时,单位为秒,默认值5秒 -d count 设置屏幕刷新的次数,刷新显示完count次后退出 -q 如果经过nice授权,使用-q可以使top运行的更快一些 -u 用显示User ID代替username,提高命令运行速度 -h 当系统由多个CPU时,个别CPU的状态信息被隐藏,只显示平均状态值 -n number 设置每一屏幕显示的进程数目,number值超过进程最大数目,则设置无效 -f filename 输出重定向到给定的文件名,默认为16个进程信息top - 09:20:44 up 1:49, 1 user, load average: 0.07, 0.02, 0.00Tasks: 67 total, 1 running, 64 sleeping, 2 stopped, 0 zombieCpu(s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% siMem: 514280k total, 313348k used, 200932k free, 20480k buffersSwap: 2008116k total, 0k used, 2008116k free, 217160k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 16 0 1696 552 472 S 0 0.1 0:00.57 init 2 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0 3 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0 4 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/1 5 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/1 6 root 5 -10 0 0 0 S 0 0.0 0:00.00 events/0 7 root 5 -10 0 0 0 S 0 0.0 0:00.00 events/1 8 root 5 -10 0 0 0 S 0 0.0 0:00.00 khelper 9 root 15 -10 0 0 0 S 0 0.0 0:00.00 kacpid
统计信息区(前五行)
第一行:任务队列信息,同 uptime 命令的执行结果。其内容如下:09:20:44 当前时间up 1:49 系统运行时间,格式为时:分1 user 当前登录用户数load average: 0.07, 0.02, 0.00 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。第二行:进程信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
67 total 进程总数1 running 正在运行的进程数64 sleeping 睡眠的进程数2 stopped 停止的进程数0 zombie 僵尸进程数第三行:CPU的信息。当有多个CPU时,可能不止一行。内容如下:
0.0% us (user mode)用户占用CPU百分比0.0% sy (system mode)系统占用CPU百分比0.0% ni (low priority user mode (nice))低优先级用户占用CPU百分比100.0% id (idle task)空闲任务占CPU百分比0.0% wa (I/O waiting)等待输入输出的CPU时间百分比0.0% hi (servicing IRQs)硬件中断占CPU百分比0.0% si (servicing soft IRQs)软件中断占CPU百分比第四行:物理内存信息
最后两行为内存信息。内容如下:514280k total 物理内存总量313348k used 使用的物理内存总量200932k free 空闲内存总量20480k buffers 用作内核缓存的内存量第五行:交换内存信息
2008116k total 交换区总量0k used 使用的交换区总量2008116k free 空闲交换区总量217160k cached 缓冲的交换区总量 进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。列名 含义PID 进程idPPID 父进程idRUSER Real user nameUID 进程所有者的用户idUSER 进程所有者的用户名GROUP 进程所有者的组名TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?PR 优先级NI nice值。负值表示高优先级,正值表示低优先级P 最后使用的CPU,仅在多CPU环境下有意义%CPU 上次更新到现在的CPU时间占用百分比TIME 进程使用的CPU时间总计,单位秒TIME+ 进程使用的CPU时间总计,单位1/100秒%MEM 进程使用的物理内存百分比VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESSWAP 进程使用的虚拟内存中,被换出的大小,单位kb。RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATACODE 可执行代码占用的物理内存大小,单位kbDATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kbSHR 共享内存大小,单位kbnFLT 页面错误次数nDRT 最后一次写入到现在,被修改过的页面数。S 进程状态。 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程COMMAND 命令名/命令行WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名Flags 任务标志,参考 sched.h默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。