内存相关,避免内存溢出,又要尽可能利用内存资源
linux修改TOMCAT_HOME/bin/catalina.sh,在前面加入
8G为例:
JAVA_OPTS="-server -Xms4G -Xmx4G  -XX:MaxNewSize=2G  -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:PermSize=1G 
-XX:MaxPermSize=1G  -Djava.awt.headless=true -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"


-server  启用jdk 的 server 版; 
-Xms    java虚拟机初始化时的最小内存,最好接近于Xmx,避免过多内存交换
-Xmx   java虚拟机可使用的最大内存; 可用内存的80%
-Xss
每个线程的栈的大小,减少这个值可以生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限制生成。如果程序
没有报StackOverFlow,可以设置成128K。
-XX:PermSize    内存永久保留区域 
-XX:MaxPermSize   内存最大永久保留区域

windows修改TOMCAT_HOME/bin/catalina.bat,在前面加入
set JAVA_OPTS=-Xms512m -Xmx512m -Xss1024k -XX:MaxNewSize=256M -XX:MaxPermSize=1024M 参数同linux

连接并发相关:
配置文件conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
        maxHttpHeaderSize="8192"  客户端Http请求、响应的Header的最大限制
        maxThreads="1000"        客户请求最大线程数
        minSpareThreads="100"     Tomcat初始化时创建的 socket 线程数
        maxSpareThreads="1000"   Tomcat连接器的最大空闲 socket 线程数
        minProcessors="100"    最小连接线程数,用于提高系统处理性能,默认值为 10
        maxProcessors="1000"  最大连接线程数,即:并发处理的最大请求数,默认值为 75
        enableLookups="false"      禁用DNS查询
compression="on"    打开压缩功能
        compressionMinSize="2048"  启用压缩的输出内容大小,默认为2KB
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
压缩类型
        connectionTimeout="20000" 
网络连接超时,0 表示永不超时,这样设置有隐患的。通常可设置为30000 毫秒
        URIEncoding="utf-8"   URL统一编码
        acceptCount="1000"  允许的最大连接数,应等于 maxProcessors ,默认值为 100
        redirectPort="8443"  重定向端口,默认即可
        disableUploadTimeout="true"/>  关闭数据上载的超时时间,默认为false
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数,webserver允许的
最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右

运行模式:
1)bio  默认的模式,性能非常低下,没有经过任何优化处理和支持.
2)nio  利用java的异步io护理技术,no blocking IO技术.
想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为
<Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol"
    connectionTimeout="20000"
    redirectPort="8443" />    重启后,就可以生效。
3)apr 安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.
必须要安装apr和native,直接启动就支持apr。下面的修改纯属多余,仅供大家扩充知识,但仍然需要安装apr和native
如nio修改模式,修改protocol为org.apache.coyote.http11.Http11AprProtocol
Apr插件提高Tomcat性能(linux)
在产品环境中,特别是直接使用Tomcat做WEB服务器的时候,应该使用Tomcat Native来提高其性能 
  要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。
  如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR之后,并发的线程数量明显下降,从原来的300可能
  会马上下降到只有几十,新的请求会毫无阻塞的进来。
  在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大
  部分时间都用来页面传输。如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的。
(1)安装APR tomcat-native
    apr-1.3.8.tar.gz   安装在/usr/local/apr
    #tar zxvf apr-1.3.8.tar.gz
    #cd apr-1.3.8
    #./configure;make;make install
    apr-util-1.3.9.tar.gz  安装在/usr/local/apr/lib
    #tar zxvf apr-util-1.3.9.tar.gz
    #cd apr-util-1.3.9 
    #./configure --with-apr=/usr/local/apr ----with-java-home=JDK;make;make install
    #cd apache-tomcat-6.0.20/bin 
    #tar zxvf tomcat-native.tar.gz 
    #cd tomcat-native/jni/native 
    #./configure --with-apr=/usr/local/apr;make;make install
  (2)设置 Tomcat 整合 APR
    修改 tomcat 的启动 shell (startup.sh),在该文件中加入启动参数:
      CATALINA_OPTS="$CATALINA_OPTS  -Djava.library.path=/usr/local/apr/lib" 。
  (3)判断安装成功:
    如果看到下面的启动日志,表示成功。
      INFO: Loaded APR based Apache Tomcat Native library

server.xml :
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="3000" minSpareThreads="200"/>

<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
               connectionTimeout="20000000"
               redirectPort="8443" URIEncoding="UTF-8"
               enableLookups="false"
               useURIValidationHack="false"
           disableUploadTimeout="false"
               maxHttpHeaderSize="65536" 
               maxPostSize="52428800"/>

results matching ""

    No results matching ""