`

tomcat 优化及守护进程

 
阅读更多
优化
JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6970 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xms700m -Xmx1024m -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=256m -Djava.awt.headless=true"

在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。



<Connector 
port="8080" minProcessors="10" maxProcessors="512"
enableLookups="false" redirectPort="8443"
acceptCount="512" debug="0" connectionTimeout="30000"/>



 #-Xmx6000m                        :设置JVM最大可用内存为6000MB
 
  #-Xms6000m                        :设置JVM初始可用内存为6000MB
 
  #-Xmn2g                              :设置年轻代大小为2G
 
  #-Xss128k                             :设置每个线程的堆栈大小为128k
 
  #-XX:NewRatio=4                 :设置年轻代与年老代的比值为4
 
  #-XX:SurvivorRatio=4            :设置年轻代中Eden区与Survivor区的大小比值为4
 
  #-XX:PermSize=512m                    :设置堆栈永久区起始大小为512m
 
  #-XX:MaxPermSize=512m             :设置堆栈永久区最大大小为512m
 
  #-XX:MaxTenuringThreshold=0     :设置垃圾最大年龄为0
 
  #-XX:+UseParallelGC                     :选择垃圾收集器为并行收集器
 
  #-XX:ParallelGCThreads=8             :配置并行收集器的线程数
 
  #-XX:+UseParallelOldGC                :配置年老代垃圾收集方式为并行收集
 
  #-XX:+UseAdaptiveSizePolicy     :并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低响应时>间或者收集频率等,此值建议使用并行收集器时,一直打开。
 
  JAVA_OPTS='-Xms6000m -Xmx6000m -Xmn2g -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=0 -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy'



守护进程
#!/bin/bash

while true
do

  Lottery=`ps -ef|grep tomcat|grep '\/home\/appusr\/apache-tomcat-6.0.26'`

  if [  -z "${Lottery}" ];then
      sleep 10
      cd /home/appusr/apache-tomcat-6.0.26/bin
      ./startup.sh & > /tmp/1.txt
  fi 
done

另外一个
while true
do
  subchannel=`ps -ef|grep tomcat|grep /home/appusr/apache-tomcat-6.0.32|grep -v grep`

  if [ -z "${subchannel}" ]; then
    /home/appusr/apache-tomcat-6.0.32/bin/startup.sh
   echo tomcat `date  +'%Y-%m-%d %H:%M:%S'` is starting > /tmp/subchannellog.txt
  fi
  sleep 10
done



启动形式:

nohup ./subchannel_tomcat.sh & > /tmp/subchannel
或者crontab -e


set CLASSPATH=.
nohup java -server -Xmx6G -Xms6G -Xmn600M -XX:PermSize=50M -XX:MaxPermSize=50M -Xss256K -XX:+DisableExplicitGC -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128M -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:gc.log -Djava.ext.dirs=lib com.test.server.HttpChunkedServer 8000 >server.out 2>&1 &
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics