tomcat 性能优化;
一、性能校验涉及:并发、缓存、内存、系统配置。
1、tomcat 配置文件 调整处理器线程数 开启压缩。 设置Connector 处理的进程数; 的minThreads 与 maxThreads 的值;
2、JVM 性能 和 操作系统性能 JVM堆栈内存设置
JAVA_OPTS='-Xms1024m -Xmx2048m -XX: PermSize=512M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'
JAVA_OPTS参数说明
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;
-XX:PermSize 内存永久保留区域;
-XX:MaxPermSize 内存最大永久保留区域;
3、关闭DNS查询 减少贷款查询时间和内存,减少高流量产生的日志存量。 设置serer.xml 中 enablelookup="false" 减少延迟;
4、启动、加快JSP编译速度。 在启动时,指定servlet容器必须允许WEB应用程序指向应被预编译的JSP 页面; 可以在 web.xml 文件添加<servlet> 标签
示例:
<web-app> .... <servlet> <servlet-name>index.jsp</servlet-name> <jsp-file>/index.jsp</jsp-file> <load-on-startup>0</load-on-startup> <!-- 数字设置越小 jsp预编译越早 --> </servlet> ... </web-app>
HTTP会话 控制会话 session 和 会话持续性 persistence
二、tomcat 配置优化;
linux服务器使用tomcat的时候老出现内存不够,这个时候就需要调整tomcat的内存,
1、修改的文件为catalina.sh 在第一行加上以下代码: JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"
2、还有种情况是 ; 停止服务的时候java的路径老不对,这时候需要在catalina.sh中手工添加JAVA_HOME和JRE_HOME指定位置 代码如下: JAVA_HOME=/usr/local/java JRE_HOME=/usr/local/java/jdk1.8.2_45/jre
server.conf 参考示例 (并发 和 缓存配置)
<Connector port="9027" protocol="HTTP/1.1" maxHttpHeaderSize="8192" maxThreads="1000" minSpareThreads="100" maxSpareThreads="1000" minProcessors="100" maxProcessors="1000" enableLookups="false" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" URIEncoding="utf-8" acceptCount="1000" redirectPort="8443" disableUploadTimeout="true" />
maxThreads 客户请求最大线程数
minSpareThreads Tomcat初始化时创建的 socket 线程数
maxSpareThreads Tomcat连接器的最大空闲 socket 线程数
enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
connectionTimeout 连接超时 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的
minProcessors 服务器创建时的最小处理线程数
maxProcessors 服务器同时最大处理线程数
URIEncoding URL统一编码
compression 打开压缩功能
compressionMinSize 启用压缩的输出内容大小
compressableMimeType 压缩类型
三、java VM 配置
1、内存设置 -Xms512 设置JVM启动时堆栈内存的大小 2、内存设置 -Xmx2048 设置JVM 可以扩展的最大对占内存
3、调用安全调试 -Djava.security.debig=all 处于安全性 打开所有输出
4、调试 -enableassertions 启用assertion检查
1、以小的和大的启动堆栈内存配置JVM 都会引起网页响应时间超出JavaVM堆栈的最大值的某种问题;
要让-Xms 和-Xmx开关值就是所需内存的相同大小;
四、变换JSP 编译器
更改为 ant 编译器编译;
要将tomcat从使用默认JDT编译器的状体切换到Ant 的状态;将ant.jar 替换jdt.jar;
五、apache Ant 自动化部署;
六、tomcat 测试负载工具
1、apache benchmark (ab) ab 工具接受单一的URL 校验工具;然后重复的按照指定的多独立线程的方式加载;
根据不同参数控制访问次数和最大的并发访问数; ab -k -n 100000 -c 149 http://localhost:8080 -k 保持http连接请求;用最多149 并发线程;提取10000次;可以设置 连接器connector 最大线程数maxThread 2、Siege 3、Apache Jakarta 的JMeter 有配置和图形界面优化;生成测试报告;但是不能每秒提供多次HTTP 请求;