Tomcat 性能优化

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 请求;

 




posted @ 2017-11-19 17:29  01234567  阅读(239)  评论(0编辑  收藏  举报