top命令经常用来监控linux的系统状况,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,比如cpu、内存等的使用。
top进入视图
top的基本视图
1)11:08:02— 当前系统的时间
2)117 days, 20:31 — 系统已经运行了117天20个小时31分钟(这个期间没有重启过)
3)7 users— 当前有7个用户登录系统
4)load average:0.00,0.00,0.00— load average后边的三个数分别是1分钟、5分钟、15分钟的负载情况
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
5)Tasks:130 total,1 running,129 sleeping,0 stopped ,0 zombie—
任务(进程),系统现在共有130个进程,其中运行中的有1个,129个在休眠,stopped的状态有0个,zombie状态(僵尸)有0个。
6)Cpu(s):状态
0.3%us — 用户空间占用CPU的百分比。
0.3%sy — 内核空间占CPU的百分比
0.2%ni — 改变过优先级的进程占用CPU的百分比
99.2%id — 空闲CPU百分比
0.0%wa — IO等待占用CPU的百分比
0.0%hi — (Hardware IRQ)硬中断占用CPU的百分比
0.0%si —(software Interrupts)占用CPU的百分比
0.0%st — 虚拟机被hpyervisor偷去的CPU时间
注释:hypervisor是一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件.也可叫做VMM(虚拟机监视器).
7)Mem:内存状态
1921984k total — 物理内存总量(1GB)
1839144k used — 使用中的内存总量(1.8GB)
82840k free — 空闲内存总量(80M)
184460k buffers — 缓存的内存量 (180M)
8)swap交换分区
835580k total — 交换区总量(0.67GB)
266144k used — 使用的交换区总量(259M)
569436k free — 空闲交换区总量(0.54GB)
642236k cached — 缓冲的交换区总量(0.61GB)
内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
9)各进程(任务)的状态监控
PID— 进程id
USER— 进程所有者
PR — 进程优先级
NI— nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S— 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU— 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+— 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)