服务器监控 -TOP命令详解(下)
用jmeter做性能测试的时候,top命令是最简单扼要的查看服务器CPU和内存占用情况的命令。如下图就是TOP命令展示出来的结果,下面对结果进行详细解说。
Mem 物理内存:
- total : 服务器物理内存总量
- used:已经使用的服务器物理内存量
- free:缓存区
- buffers:高速缓冲区
Swap 交换区(磁盘中的一块空间):
- total:交换区总量
- used:已经使用的交换区
- free:空闲交换区的总量
注:使用 free -m 可以详细查看内存使用情况
swap 如果超过4G,繁置换,影响IO。(内存不够用时会打开磁盘置换SWAP,所以影响IO)
列表显示信息:
- pid:进程号
- user:进程用户名
- PR:进程优先级(含义是进程调度器分配给进程的时间长短,单位是时钟个数,时钟的长度与CPU的主频以及操作系统平台有关,Linux上一般上为10ms,RP值为15则表示这个进程的时间片为 150ms。如果时间片太短,那么CPU浪费在进程切换上的时间比例就比较大,整体效率降低;而如果时间片太长,则多任务实时性以及交互性就无法保证,Linux给每个处理器分配一直运行队列, 互不影响,进程调度器负责将进程分配到适合的CPU。
- NI:表示进程优先级调整值。负值表示高优先级。正值表示低优先级;
- VIRT:进程使用的虚拟内存总量,单位为Kb,VIRT=swap+RES;
- RES:进程使用的、未被换出的物理内存大小,单位为Kb,RES=CODE+DATA;
- SHR:共享内存大小,单位为kb,计算某个进程所占用的物理内存大小 公式:RES-SHR;
- data:数据占用的内存。如果top命令没有显示,按f键可以显示出来,真正的改程序要求的数据空间,是真正在运行中要使用的;
- %CPU:上次更新到现在的CPU占用百分比;
- %MEM:使用物理内存百分比;
- TIME+:进程使用的CPU时间总计,单位1/100秒,
- COMMAND:命令名/进程名
注:top命令默认显示的是进程的信息,如果需要显示线程级的信息,可以使用ps命令,
进程实际使用的内存是查看RES那一列的信息,VIRT表示进程使用的虚拟内存的数据,SHR表示共享内存的数据,
默认情况下系统不会显示进程分配到那个CPU上,如果想要分析每个CPU对应的应用程序可以修改top的默认配置,添加字段Last used CPU即可。
top命令使用技巧:
-
按1:显示平均/或每个CPU信息。
-
按F:排序,排序完按W,永久生效。
M:根据驻留内存大小进行排序
P:根据CPU使用百分比大小进行排序
T:根据时间/累计时间进行排序(TIME+) - 按p:swap进程使用虚拟内存的大小
- 按j:进程上一次使用的CPU