性能监控命令:MEMORY
首先说说虚拟内存和物理内存:
虚拟内存就是采用硬盘来对物理内存进行扩展,将暂时不用的内存页写到硬盘上而腾出更多的物理内存让有需要的进程来用。
当这些内存页需要用的时候在从硬盘读回内存。这一切对于用户来说是透明的。通常在Linux系统说,虚拟内存就是swap分区。
在X86系统上虚拟内存被分为大小为4K的页。
每一个进程启动时都会向系统申请虚拟内存(VSZ),内核同意或者拒就请求。当程序真正用到内存时,系统就它映射到物理内存。RSS表示程序所占的物理内存的大小。用ps命令我们可以看到进程占用的VSZ和RSS。
在命令行使用“Free”命令可以监控内存使用情况
输出的含义
top:
可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
pmap:
pmap -d 1878
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的性能问题。
找到CPU利用率大的进程;
找到这个进程中占CPU大的线程;
得到当前线程的栈信息(线程快照);
分析程序执行过程;
案例:
模拟CPU使用率100%的场景:stress --cpu 1 – timeout 600;
命令行,输入top并按1查找linux最大进程;
找到最大进程的PID为5649
命令行,top –Hp 5649 找到这个进程中占CPU大的线程(如果有,如JVM中)
得到当前线程的栈信息 jstack -l PID >./log并导出
其他命令:
ps:
找出使用CPU最多的前10名进程:
ps -auxf | sort -nr -k 3 | head -10
uptime:查看系统平均负载情况,watch -d 参数表示高亮显示变化的区域:watch -d uptime
mpstat 查看 CPU 使用率的变化情况:mpstat -P ALL 5
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
只有拼尽全力,才能迎接更大的挑战;只有奋斗不止,才能书写辉煌的篇章;只要不放弃,成功就在前方等待你。坚持梦想,勇往直前,未来的路,因你而精彩!
只有拼尽全力,才能点亮未来的星辉;只有坚持不懈,才能迎来成功的曙光。无论遭遇多少挫折,继续奋斗,你就是无敌的火箭,永远向前飞翔!
只要有梦想,就有无限可能;只要有坚持,就能创造奇迹;扬帆起航,砥砺前行,勇往直前,胜利属于那些不畏艰险、敢于拼搏的人。相信自己,努力奋斗,你将收获美好的未来!