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倍。

  • 相关阅读:
    cocos2dx 3.x 集成protobuf
    Lua面向对象之三:其它一些尝试
    Lua面向对象之二:类继承
    Lua面向对象之一:简单例子
    cocos2dx lua 绑定之二:手动绑定自定义类中的函数
    向量点积、叉积的意义
    cocos2dx lua 绑定之一:自动绑定自定义类中的函数
    Lua和C++交互 学习记录之九:在Lua中以面向对象的方式使用C++注册的类
    Lua和C++交互 学习记录之八:C++类注册为Lua模块
    Lua和C++交互 学习记录之七:C++全局函数注册为Lua模块
  • 原文地址:https://www.cnblogs.com/qlong8807/p/6110304.html
Copyright © 2011-2022 走看看