1.cpu突增的情况 线程很多 a.业务代码是否合理,是否有大量创建线程的动作,上线纹切换频繁 b.gc是否频繁 c.线上使用jconsole或者jvmvisual,或者jstack pid查看具体哪里内存较多,调用线程比较大 2.连接拒绝的情况 a.服务器是不是挂了 b.应用端口已经被占用 c.SocketException:Too many open files 句柄文件不够用了,关闭一下无用的句柄文件,增加 unlimit -你1000 3.内存溢出, 使用优化虚拟机的方案即可, jps查看那个应用占用内存最多, 定位到那个或者那些线程调用的方法有问题, 业务代码有没有递归或者死循环什么的,或者增加内存
思考类加载器的隔离与共享? 双亲委派模型:解决jvm中如果存在两个同样的全路径类怎么办? tomcat不能完全打破这种机制,从而自定义了类加载器。 Catalin ClassLoader:tomcat类和web应用 Shared ClassLoader:共享 WebApp ClassLoader:有多个相同的全路径类,不仅要做隔离还要有多个(在web之间)