互联网公司的Web架构经常使用到nginx + tomcat 的经典配组合,针对业务集群的运营过程中,偶尔会遇到Tomcat 停止服务的情况,其引起的主要原因总结有以下一些:
Tomcat进程不存在:
1.Tomcat严重的内存溢出导致coredump
2.Tomcat中使用到JNI技术,JNI代码存在bug导致内存越界或非法访问
Tomcat进程存在:
1.Tomcat堆溢出导致线程无法分配内存
2. 系统load 太高,已经超出服务的极限
3. 应用本身程序存在bug,造成死锁,例如经典的HashMap线程不安全问题
4. 大量的tcp 连接,导致线程池线程消耗,拒绝服务,例如HttpClient多线程情况下连接池超时问题
5. JVMGC 时间过长,导致应用暂停,此种情况比较少见,只有当JVM参数设置不太合理的情况才容易出现
Tomcat 拒绝服务总结
最新推荐文章于 2024-07-08 02:14:01 发布