Top命令是Linux下常用的系统性能分析工具,能实时查看系统中各个进程资源占用情况。
top - 16:24:25 up 284 days, 4:59, 1 user, load average: 0.10, 0.05, 0.01
Tasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 4074364k total, 3733628k used, 340736k free, 296520k buffers
Swap: 2104504k total, 40272k used, 2064232k free, 931680k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11836 root 15 0 2324 1028 800 R 0.3 0.0 0:00.02 top
27225 root 25 0 1494m 696m 11m S 0.3 17.5 2304:03 java
1 root 18 0 2072 620 532 S 0.0 0.0 7:04.48 init
第一行分别显示:
当前时间、系统启动时间、当前系统登录用户数目、平均负载(1分钟,10分钟,15分钟)。
平均负载(load average),一般对于单个cpu来说,负载在0~1.00之间是正常的,超过1.00须引起注意。在多核cpu中,系统平均负载不应该高于cpu核心的总数。
第二行分别显示:
进程总数、运行进程数、休眠进程数、终止进程数、僵死进程数。
第三行:
%us用户空间占用cpu百分比;
%sy内核空间占用cpu百分比;
%ni用户进程空间内改变过优先级的进程占用cpu百分比;
%id空闲cpu百分比,反映一个系统cpu的闲忙程度。越大越空闲;
%wa等待输入输出(I/O)的cpu百分比;
%hi指的是cpu处理硬件中断的时间;
%si值的是cpu处理软件中断的时间;
%st用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间。
第四行(Mem):
total总的物理内存;
used使用物理内存大小;
free空闲物理内存;
buffers用于内核缓存的内存大小
第五行(Swap):
total总的交换空间大小;
used已经使用交换空间大小;
free空间交换空间大小;
cached缓冲的交换空间大小
buffers于cached区别:buffers指的是块设备的读写缓冲区,cached指的是文件系统本身的页面缓存。他们都是Linux系统底层的机制,为了加速对磁盘的访问。
然后下面就是和ps相仿的各进程情况列表了
第六行:
PID 进程号
USER 运行用户
PR
优先级,PR(Priority)所代表的值有什么含义?它其实就是进程调度器分配给进程的时间片长度,单位是时钟个数,那么一个时钟需要多长时间呢?这
跟CPU的主频以及操作系统平台有关,比如linux上一般为10ms,那么PR值为15则表示这个进程的时间片为150ms。
NI 任务nice值
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 物理内存用量
SHR 共享内存用量
S 该进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态
%CPU 该进程自最近一次刷新以来所占用的CPU时间和总时间的百分比
%MEM 该进程占用的物理内存占总内存的百分比
TIME+ 累计cpu占用时间
COMMAND 该进程的命令名称,如果一行显示不下,则会进行截取。内存中的进程会有一个完整的命令行