性能测试及部分分析

nmon监控相关

1.命令屏幕交互模式:(进入解压的文件目录下,执行系统对应的文件):./nmon

按下c: 出现cpu的监控;再按一次c,cpu监控就关闭

 关注这两个数据,一般 

按下m,出现内存的监控;再按下m,内存监控就关闭

在这里插入图片描述

按d,出现磁盘监控

在这里插入图片描述

2、启动数据收集模式:./nmon -f -s -c,文件保存在指定路径

cpu过高的2种分析

(1)system%较高,说明内核占用时间比较长,结合IO磁盘分析

①使用iostat -x 找到以下指标

a.如果%uti持续接近100%,说明产品的IO请求太多,IO系统已经满负载,该磁盘可能存在瓶颈

b.如果idle持续小于70%,说明IO压力较大,可能等待分配内存,应该分配内存

c.如果iowait%持续很高,可能IO瓶颈

②使用vmstat命令

 如果bi+bo过大,并且wa值比较大,说明磁盘存在IO瓶颈

③strace

如果磁盘IO都没问题,用此命令去查系统内核在做什么事情,导致sys高

以上问题,可以更换磁盘,升级CPU,加大内存,调整内核elevator、算法,优化应用处理

(2)user%较高

说明某个软件程序的cpu资源占用率高,使用top找到消耗cpu的进程

ps -ef| grep java或python或PID进程号 找到服务,交给开发定位

4.top命令

(1)找出cpu占比高的进程Pid

在这里插入图片描述

(2)ps -ef|grep pid 或  jps -l进一步定位后台进程


(3)定位到具体的线程或者代码
     ps -mp 58814 -o THREAD,tid,time   发现是线程号58815的线程


-m 显示所有的线程
-p pid进程使用cpu的时间
-o 该参数后是用户自定义格式

(4)将需要的线程id转换为16进程格式(英文小写格式) 

(5)jstack 进程号 | grep tid -A60

5.查询JVM堆栈情况

方法1:

(1)首先通过top 查出最耗CPU的进程PID,记为JID

(2)通过jps命令查看本机jvm进程

(3)通过 jstat -gc PID  查看Java进程(其实本质就是一个JVM)的内存和GC情况

S0C:这是From Survivor区的大小
S1C:这是To Survivor区的大小
S0U:这是From Survivor区当前使用的内存大小
S1U:这是To Survivor区当前使用的内存大小
EC:这是Eden区的大小
EU:这是Eden区当前使用的内存大小
OC:这是老年代的大小
OU:这是老年代当前使用的内存大小
MC:这是方法区(永久代、元数据区)的大小

MU:这是方法区(永久代、元数据区)的当前使用的内存大小
YGC:这是系统运行迄今为止的Young GC次数
YGCT:这是Young GC的耗时
FGC:这是系统运行迄今为止的Full GC次数
FGCT:这是Full GC的耗时
GCT:这是所有GC的总耗时

************************************

主要关注OC/OU;FGC这几个值
————————————————

————————————————

方法2:

①首先通过top 查出最耗CPU的进程PID,这里标记为JID
②通过top -Hp JID根据进程PID查找出最耗CPU的线程PID,这里标记为XID
③将线程XID转换成16进制,printf "%x\n" XID,这里标记为16XID
④查看堆栈,找到线程在干嘛,jstack JID | grep '16XID' -C5 --color
    最后,根据堆栈里的信息,找到对应的代码,搞定!
————————————————
 

转子其他博主的分享

磁盘主要看是否满了和读写速度,

3.如果是内存占用率过高,

 红框里的值是真实的物理内存使用,绿框里的值是剩余的可用空间。有的操作系统里free命令没有这一行,可以自行计算

红框=Mem行:used(30769)-buffers(965)-cached(16644)

绿框=Mem行:free(1315)+buffers(965)+cached(16644)

①如果物理内存还有,在使用Swap(交换区)内存,也就是used值大于0,就是开始使用虚拟内存了,这个时候需要先看vm/swappiness设置的值是多少,如果设置比较大,可以先改配置再运行;vm/swappiness设置是默认值60,也就是内存使用超过40%(100-60)

②使用vmstat命令查看swap交换区使用情况,si和so值大于0,表示物理内存不够用或者内存泄露了

 

(1)应用的话,找到具体的服务,然后是JVM的分析   (2)自动分配内存,分配小的就导致内存小了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值