前两天生产上的服务器突然宕机了,并且是nginx配置下的两台服务器间隔半小时全部宕机,报错如下:java.lang.OutOfMemoryError: unable to create new native thread
排查流程:查看linux服务器的pid_max = 32768,所以不可能存在是因为并发的问题造成宕机(业务量没这么大),所以使用jvisualvm监控UAT的线程数,最后找到问题是因为线程池资源未释放。
jvisualvm监控Red Hat6.5 Linux下的tomcat流程:
1、linux下输入hostname -i,如果是主机IP,则不用修改hosts文件,如果是127.0.0.1,修改etc/hosts文件将127.0.0.1修改为主机IP。(此处为192.166.14.83)
2、在linux系统中部署项目的tomcat的catalina.sh文件中添加如下:注意端口号为1099,后续会用到
CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.166.14.83"
3、在linux系统上关闭防火墙,命令