web服务器-tomcat (JVM,HTTP,GZIP)调优

  • JVM 参数调优
  • 使用64位JDK 1.6+ & Tomcat 6+。 jvm内存优化
    编辑tomcat/bin/目录下catalina.bat(linux为catalina.sh,配置类似,请自行百度),在文件开头加上以下代码(注意先搜索一下,不要重复设置)
    set JAVA_OPTS=-Xms512m -Xmx4096m -XX:PermSize=128m
    -XX:MaxPermSize=256m 以上配置相对简陋,含义为: 堆内存最小512M,最大4G,非堆内存最小128M,最大256M,对于系统规模小、访问量不大的项目可酌情将-Xmx4096m设置为-Xmx2048m(2G);
    内存参数的设置没有定论,要根据自己项目的运行环境、访问量、代码逻辑等做个性化调整 官方文档及jvm系列中文博客奉上,望君细细品。

  • 深度优化
    对于访问量较大,集成比较复杂的系统,需要利用JDK中的内存分析工具,分析内存的变化情况(一般是在生产环境中分析实际内存使用情况),并酌情修改内存参数,
    如将堆内存的最大值设置为-Xmx8000m,一般最大值不超过系统内存的2/3;调整新生代、老年代的比例等 常用的分析工具有JDK
    bin目录中的jconsole.exe 或 jvisualvm.exe,其中jvisualvm.exe的使用方式请参考如下链接

  • HTTP 连接数调优

编辑tomcat/conf/目录下server.xml,在访问端口对应的中增加和连接数相关的属性:
minSpareThreads:最小空闲连接线程数,默认值10
maxSpareThreads(Tomcat6之前的版本有一个maxSpareThreads参数,但是在7中已经移除了):最大空闲连接线程数,
maxThreads:最大连接线程数,并发处理的最大请求数,默认值200
acceptCount:等待队列,指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值为100
connectionTimeout:请求超时时间,默认是20秒 推荐配置tomcat7:

redirectPort=“8443” /> 注1:并发能力问题涉及整个系统物理环境、架构和业务逻辑,要根据情况动态调整,web
server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右
注2:可以启用http连接线程池Executor ,但使用Executor是否会提升tomcat压测性能,笔者尚持保留态度。
其他属性配置参考官方文档

  • 启用GZIP压缩

Tomcat 和 Nginx 都可以启用GZIP压缩,配置方式请自行百度,很简单。
需要强调的一点是,体量过小的文件不要压缩,压缩之后有可能变大,笔者一般设置>8k的文件再压缩,这个界限是否为最优值目前还未知
compressionMinSize=“8192”

你可能感兴趣的:(性能调优,tomcat)