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

  • 相关阅读:
    PHP获取当前服务器版本,Ip等详细信息
    Alipay 支付类
    php对接app支付宝支付出错Cannot redeclare Decrypt()
    Alipay支付宝支付 报错 invalid [default store dir]: /tmp/
    C# .net 高清压缩图片 合并图片方法
    csharp C#数字字符串排序orderby的问题解决
    tesseract 4.0 ocr图像识别利器,可识别文字。图片越高清越准确
    mysql update ...select的使用 & update 遇到 disable safe 的解决方法
    在Visual Studio 2013中安装Mysql for EntityFramework
    Mysql 中如何创建触发器
  • 原文地址:https://www.cnblogs.com/qlong8807/p/6110304.html
Copyright © 2011-2022 走看看