最近在开发一个文件管理服务,实际文件存储在阿里的OSS上,服务本身只管理文件映射,需要调用阿里的API生成授权访问链接。
今天做了一下压力测试:
1)在服务端先开启visualvm(jdk1.7以上自带,也可单独下载),然后启动服务
2) 在客户端启动JMeter,设置25个线程循环10次
测试结果非常糟糕,平均响应时长30s,而且OOM了。
看了一下服务器,确实OOM了
看了一下visualvm
点击红框里的“”堆Dump”,在左侧会出现【heapdump】,点击右侧的“”类”
发现生成了很多的HashMap实例,逐层点开,发现是阿里的SDK引起的
知道问题在哪,就容易了。
修改后重新测了一次,线程还是25个,循环40次
性能提升非常明显,平均响应时长800ms,提升了近40倍。