java测试程序优化案例分析

举报
阿刚 发表于 2020/02/13 15:19:07 2020/02/13
8.1k+ 0 0
【摘要】 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

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

    全部回复

    上滑加载中

    设置昵称

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

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

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