概述
top命令是一个非常有用的命令,可能是我前期太肤浅,没有重视使用这个命令。现在要把这个命令做一个笔记。
详解
输入命令:
top
第一行 (用户/负载)
top - 14:40:24 up 34 min, 2 users, load average: 0.00, 0.01, 0.05
名称 | 内容 | 详述 |
---|
运行时间 | 14:40:24 up 34 min | 自系统开机运行至现在 |
同时登录用户数 | 2 users | |
负载均值 | load average: 0.00, 0.01, 0.05 | 5秒均值,10分钟均值,15分钟均值 |
第二行 (进程)
Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie
名称 | 内容 | 详述 |
---|
任务(进程)总数 | 105 total | |
运行数 | 1 running | |
沉睡数 | 104 sleeping | |
停止数 | 0 stopped | |
僵尸进程数 | 0 zombie | 僵尸进程就是子进程结束,父进程没有对残余资源进行回收 |
第三行 (CPU)
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
名称 | 内容 | 详述 |
---|
用户层cpu使用率 | 0.2 us | 运行(未调整优先级的) 用户进程的CPU时间所占百分比 |
内核层cpu使用率 | 0.2 sy | 运行内核进程的CPU时间所占百分比 |
用户cpu使用率 | 0.0 ni | 运行已调整优先级的用户进程的CPU时间 |
cpu空闲百分比 | 99.7 id | 空闲CPU百分比 |
IO wait占用cou百分比 | 0.0 wa | 用于等待IO完成的CPU时间 |
硬中断(Hardware IRQ)占用cou百分比 | 0.0 hi | 处理硬件中断的CPU时间 |
软中断(Hardware IRQ)占用cou百分比 | 0.0 si | 处理软件中断的CPU时间 |
这个虚拟机被hypervisor偷去的CPU时间 | 0.0 st | 如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的 |
第四行(物理内存)
KiB Mem : 1863252 total, 1372388 free, 280876 used, 209988 buff/cache
名称 | 内容(KB) | 详述 |
---|
物理内存总量 | 1863252 total | |
空闲内存 | 1372388 free | |
已使用内存量 | 280876 used | |
缓存内存量 | 209988 buff/cache | |
第五行(虚拟内存/交换空间)
KiB Swap: 2097148 total, 2097148 free, 0 used. 1394768 avail Mem
名称 | 内容(KB) | 详述 |
---|
交换区内存总量 | 2097148 total | |
空闲交换区内存量 | 2097148 free | |
已使用交换区内存量 | 0 used | |
可用的交换区内存量 | 1394768 avail Mem | |
第六行(标题栏)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
简称 | 全称 | 描述 |
---|
PID | pid | 进程ID,进程的唯一标识符 |
USER | user | 进程所有者的实际用户名 |
PR | Priority | 进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。 |
NI | nice | 进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级 |
VIRT | virtual | 进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
RES | resident | 驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
SHR | share | SHR是进程使用的共享内存。共享内存大小,单位kb |
S | status | 这个是进程的状态。它有以下不同的值:D - 不可中断的睡眠态。R – 运行态;S – 睡眠态;T – 被跟踪或已停止;Z – 僵尸态 |
%CPU | | 自从上一次更新时到现在任务所使用的CPU时间百分比。 |
%MEM | memery | 进程使用的可用物理内存百分比。 |
TIME+ | time | 任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。 |
COMMAND | command | 运行进程所使用的命令。进程名称(命令名/命令行) |
内容扩展
(1)查看线程
使用以下命令可以查看该进程的线程信息
top -H -p <pid>
ps -T -p <pid>
(2)合理使用pmap命令
查看线程的详细内容
pmap -x <pid>
分析内存泄露
pmap -d <pid>