zoukankan      html  css  js  c++  java
  • tomcat 性能调优

    1. 内存

    windows在bin/catalina.bat的注释下第一行加入

    set JAVA_OPTS=-Xms2048m -Xmx2048m -Xss128K -XX:PermSize=64m -XX:MaxPermSize=256m

    linux在bin/catalina.sh的注释下第一行加入

    JAVA_OPTS="-Xms2048m -Xmx2048m -Xss128K -XX:PermSize=64m -XX:MaxPermSize=256m"

    这些参数是否生效,可以通过命令jmap -heap 进程ID查看。

    最大堆内存和最小堆内存最好设置为一样的。堆内存一般设置为可用内存的80%左右,后面的几个参数根据堆内存进行调整。

    2. IO优化

    tomcat一共有三种IO策略,bio(默认,兼顾旧jdk,性能差),nio,apr

    这里修改为nio:

    把   <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

    改为<Connector connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>

    apr是使用了系统的异步io,需要安装软件,然后在tomcat中配置,我没有使用这种方式。

    3. 线程池

    在conf/server.xml中打开Executer,并修改参数如下:

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

    在Connector中使用:

    <Connector executor="tomcatThreadPool" connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>

    4. 压缩

    在Connector中添加compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

    5. 禁用DNS

    在Connector中添加enableLookups="false"

    最终Connector如下

    <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" 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"/>

    如此修改后,我的tomcat吞吐量从380/s达到了3800/s,完全扩大了10倍。

  • 相关阅读:
    『奇葩问题集锦』npm install 报错 node-pre-gyp ERR! node-pre-gyp -v v0.6.25
    『奇葩问题集锦』Ruby 切换淘宝源报错WARNING: Error fetching data: SSL_connect returned=1 errno=0 state=SSLv3 read s erver certificate B: certificate verify failed
    一分钟搭建Webpack+react+es6框架
    『奇葩问题集锦』Cannot find module 'webpack/lib/node/NodeTemplatePlugin'
    『奇葩问题集锦』Zepto 页面唤醒拨号功能点透
    webpack面试题(转载)
    手机端样式
    输入框问题
    白色表单隐式边框阴影
    线性渐变css
  • 原文地址:https://www.cnblogs.com/qlong8807/p/6110304.html
Copyright © 2011-2022 走看看