Fork me on GitHub

【性能测试】性能监控命令(MEMORY | 磁盘 IO | CPU)

一、性能监控命令 | MEMORY

MEMORY

首先说说虚拟内存和物理内存:

虚拟内存就是采用硬盘来对物理内存进行扩展,将暂时不用的内存页写到硬盘上而腾出更多的物理内存让有需要的进程来用。当这些内存页需要用的时候在从硬盘读回内存。这一切对于用户来说是透明的。通常在Linux系统说,虚拟内存就是swap分区。在X86系统上虚拟内存被分为大小为4K的页。

每一个进程启动时都会向系统申请虚拟内存(VSZ),内核同意或者拒就请求。当程序真正用到内存时,系统就它映射到物理内存。RSS表示程序所占的物理内存的大小。用ps命令我们可以看到进程占用的VSZ和RSS。

 在命令行使用“Free”命令可以监控内存使用情况

 输出的含义

1)top 

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
2)pmap 查看进程内存占用情况的命令
pmap -d 1878
3)ps

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'

其中rsz是是实际内存
ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep root| sort -nrk5

找到具体进程消耗cpu情况:

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 16685

  

 上述信息分析,进程ID为16685的Java进程正在运行,并且其CPU使用率为2.0%。它的物理内存占用大小为2347976KB(2296M),虚拟内存占用大小为5751812KB(5616M)。

找出消耗内存最多的前10名进程:

 ps -auxf | sort -nr -k 4 | head -10

二、性能监控命令 | IO and NETWORK

IO

监控IO的常用命令为iostat

iostat -x

 io相关的参数含义

备注:

重点关注:  rkB/s    wkB/s两个指标(每s读取速度:103.88  每s写入速度:70.81)

三、性能监控命令 | CPU

Cpu风险诊断
1、Cpu关键性能指标

CPU负载。
CPU利用率
CPU利用率。当%CPU≥50%时,需要引起注意;当%CPU≥70%时,就 需要密切关注了,如果是测试,此时需要分析原因;当%CPU≥90% 时,就处于危险状态,此状态不应该成为一个常态,在测试时就 必须分析原因了。
负载(load average),当load average>CPU核心数 1时,工作 负载已经比较重了,需要分析原因;当load average>CPU核心数 2时,已经是高负载,需要排查原因。
2、定位方法
如下方式来分析CPU的性能问题。
(1)找到CPU利用率大的进程。
(2)找到这个进程中占CPU大的线程。
(3)得到当前线程的栈信息(线程快照)。
(4)分析程序执行过程

案例:
1)模拟CPU使用率100%的场景:stress --cpu 1 -- timeout 600
2)命令行,输入top并按1查找linux最大进程

找到最大进程的PID为5649

1)命令行,top –Hp 5649    找到这个进程中占CPU大的线程(如果有,如JVM中)

4)得到当前线程的栈信息  jstack -l PID >./log并导出

其他命令:
ps

(1)找出使用CPU最多的前10名进程:

ps -auxf | sort -nr -k 3 | head -10

uptime 查看系统平均负载情况,watch -d 参数表示高亮显示变化的区域:watch -d uptime

mpstat 查看 CPU 使用率的变化情况:mpstat -P ALL 5

  

posted @ 2023-03-20 09:53  橘子偏爱橙子  阅读(199)  评论(0编辑  收藏  举报