zoukankan      html  css  js  c++  java
  • 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 请求;




  • 相关阅读:
    黑马程序员_超全面的JavaWeb视频教程vedio--.ppt,.pptx,.doc,.txt,.docx列表
    Delphi线程定时器TThreadedTimer及用法--还有TThreadList用法可以locklist
    人人项目renren-securitygit enren-security的目录下的文件列表
    第六天-request response13-request乱码.avi;
    Tip:HttpServletRequest
    第六天-request response4-response实现文件下载.avi--本人测试失败
    response的字节流和字符流输入的区别和问题--02-response的outputStream输出数据的问题.avi
    第六天
    Java-Servlet--《12-WEB应用中的普通Java程序如何读取资源文件.mp4》 有疑问
    Applet、Scriptlet与Servlet
  • 原文地址:https://www.cnblogs.com/sharesdk/p/7860450.html
Copyright © 2011-2022 走看看