欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tomcat 优化及守护进程 博客分类: tomcat  

程序员文章站 2024-02-25 22:57:45
...
优化
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 &