java测试程序优化案例分析

举报
阿刚 发表于 2020/02/13 15:19:07 2020/02/13
【摘要】 java测试程序调优通过设置jvm的最小内存Xms参数可以有效提升处理效率

一 问题背景

项目中遇到鲲鹏916服务器运行一段java测试代码时(解压一个有2w多个小文件的zip包,然后读取及处理),执行时间过长,有50+s

二 原因分析

2.1 硬件信息分析

使用hdparm命令和iostat查看磁盘性能,未发现瓶颈。

2.2 软件分析

该代码运行时为单核单进程的,从top信息看,唯一瓶颈在cpu上,单个cpu已经超过100%

不过如果只是cpu瓶颈的话,TaiShan100执行应该时间不会这么长,说明还有其他瓶颈

通过perf监控,和热点函数分析,发现libjvm.so等调用较高

1581578201235659.png

三 解决方案


在执行测试程序时增加jvm最小内存参数(java  -Xms48m)后,执行时间有明显降低,结合性能优化十板斧中磁盘IO的调优,将测试程序绑定到一个空闲的核上(如下图示例中绑定到cpu24)最终执行时间稳定在16s左右

1581578222778075.png


四 总结

调优后,TaiShan服务器上执行java测试程序执行时间从50s优化至16s,调优的思路总结如下:

1.       java类测试程序调优过程中,除了常规的十板斧之外,还要结合测试模块特点,对比下jdk版本号以及JVM内存相关的设置。

2.       JVM内存相关设置参考:https://www.kancloud.cn/hx78/java/334790


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。