显示全文:
linux下的top命令能够比较详细的显示linux正在运行的一些进程,显示cpu,内存等资源使用率,非常实用。
执行top命令的输出:
top - 18:41:37 up 3:22, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 145 total, 1 running, 144 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.2%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1906552k total, 358736k used, 1547816k free, 61964k buffers Swap: 2097144k total, 0k used, 2097144k free, 168592k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 250 root 20 0 0 0 0 S 2.0 0.0 0:00.64 mpt_poll_0 3925 root 20 0 15032 1128 832 R 2.0 0.1 0:00.02 top 1 root 20 0 19356 1540 1232 S 0.0 0.1 0:02.24 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.40 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.45 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.04 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 0:00.11 migration/1 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1 9 root 20 0 0 0 0 S 0.0 0.0 0:00.20 ksoftirqd/1 10 root RT 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/1 11 root 20 0 0 0 0 S 0.0 0.0 0:11.86 events/0 12 root 20 0 0 0 0 S 0.0 0.0 0:01.63 events/1 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm 18 root 20 0 0 0 0 S 0.0 0.0 0:00.14 sync_supers
输出各参数含义:
top - 18:41:37 up 3:22:启动时间,运行时间。
load average 0.00 0.00 0.00平均1min,5min,10min的平均队列长度,长度约小,cpu负载越低
tasks:所有进程的相关信息。正在运行的进程总数,睡眠中的进程,运行中的进程,僵尸进程以及停止进程的数目。
cpus显示平均cpu的负载情况;按1键可以看到多个cpu的情况。
0.0%us:用户空间所占的百分比 0.2%sy:系统进程所占用cpu百分比, ni:nice值,调整nice或者为了调整nice所占比例。 id:空闲; wa:等待IO完成所等待的时间。hi:硬件终端所占用的时间。si:软件终端所占用的时间 st:被偷走的。
Mem:内存统计信息,包括内存总量,已用内存,空闲内存量,不同进程共享的内存量,以及用作缓冲区的内存量。
Swap:显示了虚存或交换活动的统计信息,包括交换空间总量,已用的交换空间,空闲的交换空间大小以及缓存的交换空间大小。
VIRT:虚拟内存集:进程“需要的”虚拟内存大小,包括进程使用的库,代码,数据等。假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:常驻内存集 :
1),进程当前使用的内存大小,但不包括swap out 2),包含其他进程的共享 3),如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反 4),关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:共享内存大小:
1),除了自身进程的共享内存,也包括其他进程的共享内存 2),虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小 3),计算某个进程所占的物理内存大小公式:RES – SHR 4),swap out后,它将会降下来
S:状态(详细进程各种状态见下方补充)。
time:并不是挂钟走的时间,而是真正占用cpu的时间。
top是一个交互命令,我们可以输入以下命令:
M:按照memory的大小进行排列。 P:按照占用的cpu进行排列。 T:占用的时间进行排序。 l:是否显示平均负载和启动时间 t:是否显示进程和CPU状态相关信息。 m:是否显示内存相关信息。 c:是否显示完整的命令行信息 q:退出top k:终止某个进程。 top -d 1 :显示刷新时长为1s top -b :批处理,一屏一屏显示。 -n #:指定显示多少批。
补充:进程的一些状态信息:
进程状态:
**D**:表示不可中断的睡眠 **R**:表示运行或就绪 **S**:可中断的睡眠 **T**:停止 **Z**:僵死 **<**:高优先级的进程 **N**:低优先级的进程 **+**:前台进程组中的进程。(从命令行输入的进程) **l**:多线程进程 **s**:会话进程首进程