首页 > 代码库 > linux top
linux top
Linux top命令简介
在终端输入top,结果如下:
1:第一行,系统状态
19:12:02---->当前的系统时间
6 min------->系统启动了6分钟
1 use------->只有1个用户登录,如果2个人分别通过2台电脑登录1个账户,这个数字是2,也就是说不是账户的登录个数
load average:0.43, 0.59, 0.3------->三个数字顺序代表系统1分钟,5分钟,15分钟的负载状态,
这3个数字数据是每隔5秒钟检查一次活跃的进程数,然后通过进程数根据一定的算法计算出来的。
查看CPU个数命令,grep "model name" /proc/cpuinfo | wc -l
假设 A = (load average),B = CPU个数
A / B < 0.7 ,此时表示系统良好
A / B >= 0.7 且A / B <= 1 ,如果长期这种状态,最好尽早调查服务器的状态,避免出现负荷
A / B >= 1 且 A / B <= 5 ,系统处于负荷状态,马上调查服务器的状态
A / B > 5 ,系统处于超负荷状态
2:第二行,进程状态
Tasks: 198 total-------->当前的系统共有198个进程
2 running--------------->其中有2个进程处于运行态
196 sleeping------------>其中有196个进程处于休眠态
0 stopped--------------->其中有0个进程处于暂停态
0 zombie---------------->其中有0个进程处于僵死态
3:第三行,CPU状态
7.1 us-------->User CPU time: 用户空间占用CPU的百分比
5.9 sy-------->System CPU time:内核空间占用CPU的百分比
0.0 ni-------->Nice CPU time 改变过优先级的进程占用CPU的百分比
86.7 id------->空闲CPU百分比
0.2 wa-------->iowait: IO等待占用CPU的百分比
0.1 hi-------->Hardware IRQ:硬中断占用CPU的百分比
0.0 si-------->SoftwareIRQ:软中断占用CPU的百分比
0.0 st-------->Steal Time: 虚拟 CPU 等待物理CPU的时间的百分比
4:第四行,内存状态
3931300 total ------> 内存总量(4GB)
1402100 used--------> 使用的内存总量(1.4GB)
2529200 free--------> 空闲的内存总量(2.5G)
89240 buffers ------> 缓存的内存量 (89M)
5:第五行,交换区状态
7812092 total-------> 交换区总量(8GB),当时分区时手动分了内存的2倍,8G
0used---------------> 使用的交换区总量(0),使用了0M,说明暂时物理内存完全够用
7812092 free--------> 空闲交换区总量(8GB)
689192cached--------> 缓冲的交换区总量(7GB)
6:第六行,各进程状态
PID------------> 进程id号
USER-----------> 进程所有者
PR-------------> 进程优先级,是内核分配的优先级,一般比NI值高20。如果是 rt,表示该进程是在实时调度优先级下运行
NI-------------> nice值。是用户层面的优先级,越小优先级越高
VIRT-----------> 进程需要的内存总量,包括进程使用的库、代码、数据等,单位kb。
假如进程申请5M的内存,但实际只使用了1M,那么它会增长5M,而不是实际的使用量
RES------------> 进程当前使用的、未被换出的物理内存大小,单位kb。
假如进程申请5M的内存,但实际只使用了1M,那么它会增长1M,是实际的使用量
SHR------------>共享内存大小,单位kb
S--------------> 进程状态。D=不可中断的睡眠状态,在这个状态下,kill这个进程是不好使的,
比如read系统调用时,就是这个状态,但是因为时间太短,top命令一般捕捉不到,
S=可中断的睡眠状态 R=运行 T=跟踪/停止 Z=僵尸进程
%CPU----------->上次更新到现在的CPU时间占用百分比
%MEM----------->进程使用的物理内存百分比
TIME+---------->进程使用的CPU时间总计,单位1/100秒
COMMAND-------->进程名称