Tomcat性能的指标?怎样判断一个tomcat的好坏?
吞吐量,响应时间,错误数,cpu,内存[tomcat java进程];
命令和工具
ps -ef|grep tomcat -->pid;
cat pid status;
性能优化
- server.xml文件可以进行优化
Connetor :
Host/context/executor:属性可能进一步的优化
jmeter进行压测;进行吞吐量的观察,不同的并发形况下,使用不同的IO;
host主机参数中有autodepaloy==false;不在关注jar更新情况下去,会去替换;
tomcat还有那些部分可以优化?
没有用的web项目;
启动慢:随机数 Tomcat7以上的版本
- 压缩配置
Connetor:compression=“100” 表示当请求数据达到100byte时,进行压缩;
1.tomcat–>:web应用:cpu使用率高比较高了,你会怎么办?
为什么cpu会高呢—线程数比较多?线程数量为什么会多?业务代码中创建线程比较多,上下文的频繁切换;
GC垃圾回收比较频繁;
解决:
(1)ps -ef|grep tomcat -->pid
(2)top -H - p pid 查询某个进程中线程使用cpu的情况
(3)已经知道是tomcat中哪个线程占用c’pu比较高–》thread j’e’c’k
(4)jstack pid;–>thread jeck 是因为死循环,还是死锁,还是递归
(5)并发编程中线程的各个状态
(2)拒绝连接
-
bindExcetion:address already jvm_bind–>端口号占用
查看用哪个端口被占用 杀掉端口 或者修改端口; -
connetorException:表示tomcat未启动
-
SocketException:Too many open files
文件句柄不够用了,关闭一些无用的文件句柄,或者增加 unlimit - n 1000
(3)tomcat内存溢出或者泄露了
JVM和tomcat的类加载器
jvm:双亲委派模型
tomcat:复写了findClass,loadClass();
不仅要做隔离,还希望你有两份(web应用之间/tomcat和web应用之间),而且还要做共享,希望你有一份:spring
wabappClassloader是用来加web应用之间的
shareClassLOader是web;
Catalina classloader:tomcat 和web应用之间