excel如何制作月度项目进度表格
659
2022-05-28
一 问题背景
项目中遇到鲲鹏916服务器运行一段Java测试代码时(解压一个有2w多个小文件的zip包,然后读取及处理),执行时间过长,有50+s
二 原因分析
2.1 硬件信息分析
使用hdparm命令和iostat查看磁盘性能,未发现瓶颈。
2.2 软件分析
该代码运行时为单核单进程的,从top信息看,唯一瓶颈在cpu上,单个cpu已经超过100%
不过如果只是cpu瓶颈的话,TaiShan100执行应该时间不会这么长,说明还有其他瓶颈
通过perf监控,和热点函数分析,发现libjvm.so等调用较高
三 解决方案
在执行测试程序时增加jvm最小内存参数(java -Xms48m)后,执行时间有明显降低,结合性能优化十板斧中磁盘IO的调优,将测试程序绑定到一个空闲的核上(如下图示例中绑定到cpu24)最终执行时间稳定在16s左右
四 总结
调优后,TaiShan服务器上执行java测试程序执行时间从50s优化至16s,调优的思路总结如下:
1. 在java类测试程序调优过程中,除了常规的十板斧之外,还要结合测试模块特点,对比下jdk版本号以及JVM内存相关的设置。
2. JVM内存相关设置参考:https://www.kancloud.cn/hx78/java/334790
Java
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。