不停的用线程去发送消息给MQ,看之前写的那个handler的处理最大能支持多少。

这个handler里的线程池创建方式是直接用

 Executors.newFixedThreadPool(300); //这样的方式是会有问题的,后面测试完给他改了,再看看效果

测试过程其实就是发送一个消息,会回复一个二维码的链接

结果我发了大概500~600次吧,一直点,结果报了这个内存不足

image.png

处理办法: 第一种:直接修改tomcat启动时分配的JVM大小,找到tomcat/bin下的catalina.sh image.png

#OS specific support. $var must be set to either true or false. ##设置tomcat启动vm大小 JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m "

-vmargs -Xms256M -Xmx512M -XX:PermSize=128M -XX:MaxPermSize=256M
-vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了
-Xms256m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=128M JVM初始分配的非堆内存
-XX:MaxPermSize=256M JVM最大允许分配的非堆内存,按需分配

其他的启动参数。 如果你有一个双核的CPU,也许可以尝试这个参数:

并行垃圾回收器,不过jdk1.8会默认使用这个的,不设置也可以哦 -XX:+UseParallelGC 让GC可以更快的执行。(只是JDK 5里对GC新增加的参数)

天色不早,明天继续。

2020年6月19日 01:20:54