JAVA_OPTS=\\\’-Xms[初始化內存大小] -Xmx[能夠使用的最大內存]\\\’ 
    需要時,把這個兩個參數值調大。例如: 
    JAVA_OPTS=\\\’-Xms256m -Xmx512m\\\’ 
    表示初始化內存為256MB,能夠使用的最大內存為512MB。 
    要考慮的是Java提供的垃圾回收機制。虛擬機的堆大小決定了虛擬機花費在收集垃圾上的時間和頻度。收集垃圾能夠接受的速度和應用有關,應該通過分析實際的垃圾收集的時間和頻率來調整。假如堆的大小很大,那么完全垃圾收集就會很慢,但是頻度會降低。假如您把堆的大小和內存的需要一致,完全收集就很快,但是會更加頻繁。調整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內最大化處理客戶的請求。在基準測試的時候,為確保最好的性能,要把堆的大小設大,確保垃圾收集不在整個基準測試的過程中出現。 
    假如系統花費很多的時間收集垃圾,請減小堆大小。一次完全的垃圾收集應該不超過 3-5 秒。假如垃圾收集成為瓶頸,那么需要指定代的大小,檢查垃圾收集的周詳輸出,研究 垃圾收集參數對性能的影響。一般說來,您應該使用物理內存的 80% %u4F5C為堆大小。當增加處理器時,記得增加內存,因為分配能夠并行進行,而垃圾收集不是并行的。 

調整tomcat的線程參數

    編輯server.xml文件

    在tomcat配置文件server.xml中的<Connector />配置中,和連接數相關的參數有:

    maxThreads=150,表示最多同時處理150個連接,Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。默認值200。   
    minSpareThreads=25,表示即使沒有人使用也開這么多空線程等待  
    maxSpareThreads=75,表示如果最多可以空75個線程,例如某時刻有80人訪問,之后沒有人訪問了,則tomcat不會保留80個空線程,而是關閉5個空的。  (一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。默認值50)
    acceptCount=100,當同時連接的人數達到maxThreads時,還可以接收排隊的連接數量,超過這個連接的則直接返回拒絕連接。(指定當任何能夠使用的處理請求的線程數都被使用時,能夠放到處理隊列中的請求數,超過這個數的請求將不予處理。默認值100)

    其中和最大連接數相關的參數為maxThreads和acceptCount。如果要加大并發連接數,應同時加大這兩個參數。
web server允許的最大連接數還受制于操作系統的內核參數設置,通常Windows是2000個左右,Linux是1000個左右。tomcat5中的配置示例:
    <Connector port=8080
               maxThreads=150 minSpareThreads=25 maxSpareThreads=75
               acceptCount=100/>

主要是調整maxThreads 和acceptCount的值

在tomcat配置文檔server.xml中的配置中,和連接數相關的其他參數有: 
    enableLookups 是否反查域名,默認值為true。為了提高處理能力,應配置為false 
    connnectionTimeout 網絡連接超時,默認值60000,單位:毫秒。配置為0表示永不超時,這樣配置有隱患的。通常可配置為30000毫秒。 
    maxKeepAliveRequests nginx動態的轉給tomcat,nginx是不能keepalive的,而tomcat端默認開啟了keepalive,會等待keepalive的timeout,默認不設置就是使用connectionTimeout。

所以必須設置tomcat的超時時間,并關閉tomcat的keepalive。否則會產生大量tomcat的socket timewait。
    maxKeepAliveRequests=1就可以避免tomcat產生大量的TIME_WAIT連接,從而從一定程度上避免tomcat假死。
設置tomcat/conf/server.xml:
maxKeepAliveRequests=1
connectionTimeout=20000
maxKeepAliveRequests=1            ##表示每個連接只響應一次就關閉,這樣就不會等待timeout了

    <Connector executor=tomcatThreadPool
               port=8080 protocol=HTTP/1.1 
               connectionTimeout=30000 maxKeepAliveRequests=1 
               redirectPort=8443 bufferSize=8192 sockedBuffer=65536 acceptCount=200/>
    bufferSize 輸入流緩沖大小,默認值2048 bytes。 
    compression 壓縮傳輸,取值on/off/force,默認值off

貼上我的配置文件:

CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=10.1.2.131
JAVA_OPTS=-Xms16384m -Xmx16384m -Xloggc:/home/soft/8080_gc.log -Xss256k -Xmn6144m -XX:PermSize=1024m -XX:MaxPermSize=1024m -XX:SurvivorRatio=6 -XX:MaxTenuringThreshold=7 -XX: UseConcMarkSweepGC -XX: UseParNewGC -XX:CMSFullGCsBeforeCompaction=0 -XX: UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=60 -XX: CMSClassUnloadingEnabled  -XX:SoftRefLRUPolicyMSPerMB=0 -XX:TargetSurvivorRatio=90 -XX: PrintGCDetails -XX: PrintGCTimeStamps -XX: PrintHeapAtGC
#JAVA_OPTS=-Xms4096m -Xmx16384m -XX:MaxPermSize=1024m
# OS specific support.  $var _must_ be set to either true or false.
cygwin=false
darwin=false
os400=false
case `uname` in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac
# resolve links - $0 may be a softlink
PRG=$0
while [ -h $PRG ]; do
  ls=`ls -ld $PRG`
  link=`expr $ls : \\\'.*-> \\\\(.*\\\\)$\\\'`
  if expr $link : \\\'/.*\\\' > /dev/null; then
    PRG=$link
  else
    PRG=`dirname $PRG`/$link
  fi
done
# Get standard environment variables
PRGDIR=`dirname $PRG`
# Only set CATALINA_HOME if not already set
[ -z $CATALINA_HOME ] && CATALINA_HOME=`cd $PRGDIR/.. >/dev/null; pwd`
# Copy CATALINA_BASE from CATALINA_HOME if not already set
[ -z $CATALINA_BASE ] && CATALINA_BASE=$CATALINA_HOME
# Ensure that neither CATALINA_HOME nor CATALINA_BASE contains a colon
# as this is used as the separator in the classpath and Java provides no
# mechanism for escaping if the same character appears in the path.
case $CATALINA_HOME in
  *:*) echo Using CATALINA_HOME:   $CATALINA_HOME;
       echo Unable to start as CATALINA_HOME contains a colon (:) character;
       exit 1;
esac
case $CATALINA_BASE in
  *:*) echo Using CATALINA_BASE:   $CATALINA_BASE;
       echo Unable to start as CATALINA_BASE contains a colon (:) character;
       exit 1;
esac
# Ensure that any user defined CLASSPATH variables are not used on startup,
# but allow them to be specified in setenv.sh, in rare case when it is needed.
CLASSPATH=
if [ -r $CATALINA_BASE/bin/setenv.sh ]; then
  . $CATALINA_BASE/bin/setenv.sh
elif [ -r $CATALINA_HOME/bin/setenv.sh ]; then
  . $CATALINA_HOME/bin/setenv.sh
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin; then
  [ -n $JAVA_HOME ] && JAVA_HOME=`cygpath --unix $JAVA_HOME`
  [ -n $JRE_HOME ] && JRE_HOME=`cygpath --unix $JRE_HOME`
  [ -n $CATALINA_HOME ] && CATALINA_HOME=`cygpath --unix $CATALINA_HOME`
  [ -n $CATALINA_BASE ] && CATALINA_BASE=`cygpath --unix $CATALINA_BASE`
  [ -n $CLASSPATH ] && CLASSPATH=`cygpath --path --unix $CLASSPATH`
fi
# For OS400
if $os400; then
  # Set job priority to standard for interactive (interactive - 6) by using
  # the interactive priority - 6, the helper threads that respond to requests
  # will be running at the same priority as interactive jobs.
  COMMAND=\\\'chgjob job(\\\'$JOBNAME\\\') runpty(6)\\\'
  system $COMMAND
  # Enable multi threading
  export QIBM_MULTI_THREADED=Y
fi
# Get standard Java environment variables
if $os400; then
  # -r will Only work on the os400 if the files are:
  # 1. owned by the user
  # 2. owned by the PRIMARY group of the user
  # this will not work if the user belongs in secondary groups
  . $CATALINA_HOME/bin/setclasspath.sh
else
  if [ -r $CATALINA_HOME/bin/setclasspath.sh ]; then
    . $CATALINA_HOME/bin/setclasspath.sh
  else
    echo Cannot find $CATALINA_HOME/bin/setclasspath.sh
    echo This file is needed to run this program
    exit 1
  fi
fi
# Add on extra jar files to CLASSPATH
if [ ! -z $CLASSPATH ] ; then
  CLASSPATH=$CLASSPATH:
fi
CLASSPATH=$CLASSPATH$CATALINA_HOME/bin/bootstrap.jar
if [ -z $CATALINA_OUT ] ; then
  CATALINA_OUT=$CATALINA_BASE/logs/catalina.out
fi
if [ -z $CATALINA_TMPDIR ] ; then
  # Define the java.io.tmpdir to use for Catalina
  CATALINA_TMPDIR=$CATALINA_BASE/temp
fi
# Add tomcat-juli.jar to classpath
# tomcat-juli.jar can be over-ridden per instance
if [ -r $CATALINA_BASE/bin/tomcat-juli.jar ] ; then
  CLASSPATH=$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jar
else
  CLASSPATH=$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar
fi
# Bugzilla 37848: When no TTY is available, don\\\'t output to console
have_tty=0
if [ `tty` != not a tty ]; then
    have_tty=1
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
  JAVA_HOME=`cygpath --absolute --windows $JAVA_HOME`
  JRE_HOME=`cygpath --absolute --windows $JRE_HOME`
  CATALINA_HOME=`cygpath --absolute --windows $CATALINA_HOME`
  CATALINA_BASE=`cygpath --absolute --windows $CATALINA_BASE`
  CATALINA_TMPDIR=`cygpath --absolute --windows $CATALINA_TMPDIR`
  CLASSPATH=`cygpath --path --windows $CLASSPATH`
  JAVA_ENDORSED_DIRS=`cygpath --path --windows $JAVA_ENDORSED_DIRS`
fi
# Set juli LogManager config file if it is present and an override has not been issued
if [ -z $LOGGING_CONFIG ]; then
  if [ -r $CATALINA_BASE/conf/logging.properties ]; then
    LOGGING_CONFIG=-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties
  else
    # Bugzilla 45585
    LOGGING_CONFIG=-Dnop
  fi
fi
if [ -z $LOGGING_MANAGER ]; then
  LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
fi
# Uncomment the following line to make the umask available when using the
# org.apache.catalina.security.SecurityListener
#JAVA_OPTS=$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`
# ----- Execute The Requested Command -----------------------------------------
# Bugzilla 37848: only output this if we have a TTY
if [ $have_tty -eq 1 ]; then
  echo Using CATALINA_BASE:   $CATALINA_BASE
  echo Using CATALINA_HOME:   $CATALINA_HOME
  echo Using CATALINA_TMPDIR: $CATALINA_TMPDIR
  if [ $1 = debug ] ; then
    echo Using JAVA_HOME:       $JAVA_HOME
  else
    echo Using JRE_HOME:        $JRE_HOME
  fi
  echo Using CLASSPATH:       $CLASSPATH
  if [ ! -z $CATALINA_PID ]; then
    echo Using CATALINA_PID:    $CATALINA_PID
  fi
fi
if [ $1 = jpda ] ; then
  if [ -z $JPDA_TRANSPORT ]; then
    JPDA_TRANSPORT=dt_socket
  fi
  if [ -z $JPDA_ADDRESS ]; then
    JPDA_ADDRESS=localhost:8000
  fi
  if [ -z $JPDA_SUSPEND ]; then
    JPDA_SUSPEND=n
  fi
  if [ -z $JPDA_OPTS ]; then
    JPDA_OPTS=-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND
  fi
  CATALINA_OPTS=$JPDA_OPTS $CATALINA_OPTS
  shift
fi
if [ $1 = debug ] ; then
  if $os400; then
    echo Debug command not available on OS400
    exit 1
  else
    shift
    if [ $1 = -security ] ; then
      if [ $have_tty -eq 1 ]; then
        echo Using Security Manager
      fi
      shift
      exec $_RUNJDB $LOGGING_CONFIG $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \\\\
        -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS -classpath $CLASSPATH \\\\
        -sourcepath $CATALINA_HOME/../../java \\\\
        -Djava.security.manager \\\\
        -Djava.security.policy==$CATALINA_BASE/conf/catalina.policy \\\\
        -Dcatalina.base=$CATALINA_BASE \\\\
        -Dcatalina.home=$CATALINA_HOME \\\\
        -Djava.io.tmpdir=$CATALINA_TMPDIR \\\\
        org.apache.catalina.startup.Bootstrap $@ start
    else
      exec $_RUNJDB $LOGGING_CONFIG $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \\\\
        -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS -classpath $CLASSPATH \\\\
        -sourcepath $CATALINA_HOME/../../java \\\\
        -Dcatalina.base=$CATALINA_BASE \\\\
        -Dcatalina.home=$CATALINA_HOME \\\\
        -Djava.io.tmpdir=$CATALINA_TMPDIR \\\\
        org.apache.catalina.startup.Bootstrap $@ start
    fi
  fi
elif [ $1 = run ]; then
  shift
  if [ $1 = -security ] ; then
    if [ $have_tty -eq 1 ]; then
      echo Using Security Manager
    fi
    shift
    eval exec \\\\$_RUNJAVA\\\\ \\\\$LOGGING_CONFIG\\\\ $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \\\\
      -Djava.endorsed.dirs=\\\\$JAVA_ENDORSED_DIRS\\\\ -classpath \\\\$CLASSPATH\\\\ \\\\
      -Djava.security.manager \\\\
      -Djava.security.policy==\\\\$CATALINA_BASE/conf/catalina.policy\\\\ \\\\
      -Dcatalina.base=\\\\$CATALINA_BASE\\\\ \\\\
      -Dcatalina.home=\\\\$CATALINA_HOME\\\\ \\\\
      -Djava.io.tmpdir=\\\\$CATALINA_TMPDIR\\\\ \\\\
      org.apache.catalina.startup.Bootstrap $@ start
  else
    eval exec \\\\$_RUNJAVA\\\\ \\\\$LOGGING_CONFIG\\\\ $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \\\\
      -Djava.endorsed.dirs=\\\\$JAVA_ENDORSED_DIRS\\\\ -classpath \\\\$CLASSPATH\\\\ \\\\
      -Dcatalina.base=\\\\$CATALINA_BASE\\\\ \\\\
      -Dcatalina.home=\\\\$CATALINA_HOME\\\\ \\\\
      -Djava.io.tmpdir=\\\\$CATALINA_TMPDIR\\\\ \\\\
      org.apache.catalina.startup.Bootstrap $@ start
  fi
elif [ $1 = start ] ; then
  if [ ! -z $CATALINA_PID ]; then
    if [ -f $CATALINA_PID ]; then
      if [ -s $CATALINA_PID ]; then
        echo Existing PID file found during start.
        if [ -r $CATALINA_PID ]; then
          PID=`cat $CATALINA_PID`
          ps -p $PID >/dev/null 2>&1
          if [ $? -eq 0 ] ; then
            echo Tomcat appears to still be running with PID $PID. Start aborted.
            echo If the following process is not a Tomcat process, remove the PID file and try again:
            ps -f -p $PID
            exit 1
          else
            echo Removing/clearing stale PID file.
            rm -f $CATALINA_PID >/dev/null 2>&1
            if [ $? != 0 ]; then
              if [ -w $CATALINA_PID ]; then
                cat /dev/null > $CATALINA_PID
              else
                echo Unable to remove or clear stale PID file. Start aborted.
                exit 1
              fi
            fi
          fi
        else
          echo Unable to read PID file. Start aborted.
          exit 1
        fi
      else
        rm -f $CATALINA_PID >/dev/null 2>&1
        if [ $? != 0 ]; then
          if [ ! -w $CATALINA_PID ]; then
            echo Unable to remove or write to empty PID file. Start aborted.
            exit 1
          fi
        fi
      fi
    fi
  fi
  shift
  touch $CATALINA_OUT
  if [ $1 = -security ] ; then
    if [ $have_tty -eq 1 ]; then
      echo Using Security Manager
    fi
    shift
    eval \\\\$_RUNJAVA\\\\ \\\\$LOGGING_CONFIG\\\\ $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \\\\
      -Djava.endorsed.dirs=\\\\$JAVA_ENDORSED_DIRS\\\\ -classpath \\\\$CLASSPATH\\\\ \\\\
      -Djava.security.manager \\\\
      -Djava.security.policy==\\\\$CATALINA_BASE/conf/catalina.policy\\\\ \\\\
      -Dcatalina.base=\\\\$CATALINA_BASE\\\\ \\\\
      -Dcatalina.home=\\\\$CATALINA_HOME\\\\ \\\\
      -Djava.io.tmpdir=\\\\$CATALINA_TMPDIR\\\\ \\\\
      org.apache.catalina.startup.Bootstrap $@ start \\\\
      >> $CATALINA_OUT 2>&1 &
  else
    eval \\\\$_RUNJAVA\\\\ \\\\$LOGGING_CONFIG\\\\ $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \\\\
      -Djava.endorsed.dirs=\\\\$JAVA_ENDORSED_DIRS\\\\ -classpath \\\\$CLASSPATH\\\\ \\\\
      -Dcatalina.base=\\\\$CATALINA_BASE\\\\ \\\\
      -Dcatalina.home=\\\\$CATALINA_HOME\\\\ \\\\
      -Djava.io.tmpdir=\\\\$CATALINA_TMPDIR\\\\ \\\\
      org.apache.catalina.startup.Bootstrap $@ start \\\\
      >> $CATALINA_OUT 2>&1 &
  fi
  if [ ! -z $CATALINA_PID ]; then
    echo $! > $CATALINA_PID
  fi
  echo Tomcat started.
elif [ $1 = stop ] ; then
  shift
  SLEEP=5
  if [ ! -z $1 ]; then
    echo $1 | grep [^0-9] >/dev/null 2>&1
    if [ $? -gt 0 ]; then
      SLEEP=$1
      shift
    fi
  fi
  FORCE=0
  if [ $1 = -force ]; then
    shift
    FORCE=1
  fi
  if [ ! -z $CATALINA_PID ]; then
    if [ -f $CATALINA_PID ]; then
      if [ -s $CATALINA_PID ]; then
        kill -0 `cat $CATALINA_PID` >/dev/null 2>&1
        if [ $? -gt 0 ]; then
          echo PID file found but no matching process was found. Stop aborted.
          exit 1
        fi
      else
        echo PID file is empty and has been ignored.
      fi
    else
      echo \\\\$CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted.
      exit 1
    fi
  fi
  eval \\\\$_RUNJAVA\\\\ $LOGGING_MANAGER $JAVA_OPTS \\\\
    -Djava.endorsed.dirs=\\\\$JAVA_ENDORSED_DIRS\\\\ -classpath \\\\$CLASSPATH\\\\ \\\\
    -Dcatalina.base=\\\\$CATALINA_BASE\\\\ \\\\
    -Dcatalina.home=\\\\$CATALINA_HOME\\\\ \\\\
    -Djava.io.tmpdir=\\\\$CATALINA_TMPDIR\\\\ \\\\
    org.apache.catalina.startup.Bootstrap $@ stop
  # stop failed. Shutdown port disabled? Try a normal kill.
  if [ $? != 0 ]; then
    if [ ! -z $CATALINA_PID ]; then
      echo The stop command failed. Attempting to signal the process to stop through OS signal.
      kill -15 `cat $CATALINA_PID` >/dev/null 2>&1
    fi
  fi
  if [ ! -z $CATALINA_PID ]; then
    if [ -f $CATALINA_PID ]; then
      while [ $SLEEP -ge 0 ]; do
        kill -0 `cat $CATALINA_PID` >/dev/null 2>&1
        if [ $? -gt 0 ]; then
          rm -f $CATALINA_PID >/dev/null 2>&1
          if [ $? != 0 ]; then
            if [ -w $CATALINA_PID ]; then
              cat /dev/null > $CATALINA_PID
              # If Tomcat has stopped don\\\'t try and force a stop with an empty PID file
              FORCE=0
            else
              echo The PID file could not be removed or cleared.
            fi
          fi
          echo Tomcat stopped.
          break
        fi
        if [ $SLEEP -gt 0 ]; then
          sleep 1
        fi
        if [ $SLEEP -eq 0 ]; then
          echo Tomcat did not stop in time.
          if [ $FORCE -eq 0 ]; then
            echo PID file was not removed.
          fi
          echo To aid diagnostics a thread dump has been written to standard out.
          kill -3 `cat $CATALINA_PID`
        fi
        SLEEP=`expr $SLEEP - 1 `
      done
    fi
  fi
  KILL_SLEEP_INTERVAL=5
  if [ $FORCE -eq 1 ]; then
    if [ -z $CATALINA_PID ]; then
      echo Kill failed: \\\\$CATALINA_PID not set
    else
      if [ -f $CATALINA_PID ]; then
        PID=`cat $CATALINA_PID`
        echo Killing Tomcat with the PID: $PID
        kill -9 $PID
        while [ $KILL_SLEEP_INTERVAL -ge 0 ]; do
            kill -0 `cat $CATALINA_PID` >/dev/null 2>&1
            if [ $? -gt 0 ]; then
                rm -f $CATALINA_PID >/dev/null 2>&1
                if [ $? != 0 ]; then
                    if [ -w $CATALINA_PID ]; then
                        cat /dev/null > $CATALINA_PID
                    else
                        echo The PID file could not be removed.
                    fi
                fi
                echo The Tomcat process has been killed.
                break
            fi
            if [ $KILL_SLEEP_INTERVAL -gt 0 ]; then
                sleep 1
            fi
            KILL_SLEEP_INTERVAL=`expr $KILL_SLEEP_INTERVAL - 1 `
        done
        if [ $KILL_SLEEP_INTERVAL -lt 0 ]; then
            echo Tomcat has not been killed completely yet. The process might be waiting on some system call or might be UNINTERRUPTIBLE.
        fi
      fi
    fi
  fi
elif [ $1 = configtest ] ; then
    eval \\\\$_RUNJAVA\\\\ $LOGGING_MANAGER $JAVA_OPTS \\\\
      -Djava.endorsed.dirs=\\\\$JAVA_ENDORSED_DIRS\\\\ -classpath \\\\$CLASSPATH\\\\ \\\\
      -Dcatalina.base=\\\\$CATALINA_BASE\\\\ \\\\
      -Dcatalina.home=\\\\$CATALINA_HOME\\\\ \\\\
      -Djava.io.tmpdir=\\\\$CATALINA_TMPDIR\\\\ \\\\
      org.apache.catalina.startup.Bootstrap configtest
    result=$?
    if [ $result -ne 0 ]; then
        echo Configuration error detected!
    fi
    exit $result
elif [ $1 = version ] ; then
    $_RUNJAVA   \\\\
      -classpath $CATALINA_HOME/lib/catalina.jar \\\\
      org.apache.catalina.util.ServerInfo
else
  echo Usage: catalina.sh ( commands ... )
  echo commands:
  if $os400; then
    echo   debug             Start Catalina in a debugger (not available on OS400)
    echo   debug -security   Debug Catalina with a security manager (not available on OS400)
  else
    echo   debug             Start Catalina in a debugger
    echo   debug -security   Debug Catalina with a security manager
  fi
  echo   jpda start        Start Catalina under JPDA debugger
  echo   run               Start Catalina in the current window
  echo   run -security     Start in the current window with security manager
  echo   start             Start Catalina in a separate window
  echo   start -security   Start in a separate window with security manager
  echo   stop              Stop Catalina, waiting up to 5 seconds for the process to end
  echo   stop n            Stop Catalina, waiting up to n seconds for the process to end
  echo   stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
  echo   stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running
  echo   configtest        Run a basic syntax check on server.xml - check exit code for result
  echo   version           What version of tomcat are you running?
  echo Note: Waiting for the process to end and use of the -force option require that \\\\$CATALINA_PID is defined
  exit 1
fi

更多關于云服務器域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » tomcat簡單優化

登錄

找回密碼

注冊

主站蜘蛛池模板: 激情伊人五月天久久综合| www国产无套内射com| 少妇太爽了在线观看免费视频| 天美传媒一区二区| 国产精品一亚洲av日韩| 精品国产熟女一区二区三区| 亚洲色大成网站WWW永久麻豆| 久久这里只有精品免费首页| 国产精品不卡一二三区| 久久丫精品久久丫| 亚洲情A成黄在线观看动漫尤物| 丰满岳乱妇三级高清| 久久毛片少妇高潮| 口爆少妇在线视频免费观看| 精品国产美女福到在线不卡| 人成午夜免费视频在线观看| 国产一区二区在线观看粉嫩| 亚洲国产精品无码一区二区三区| 久久久久久久久久久免费精品| 97免费公开在线视频| 日本高清成本人视频一区| 91中文字幕在线一区| 临夏县| 国产 一区二区三区视频| 欧美成人h精品网站| 亚洲一区二区三级av| 一二三四中文字幕日韩乱码| 亚洲欧美一区二区成人片| 亚洲春色在线视频| 成人精品色一区二区三区| 色综合天天综合网天天看片| 精品国产午夜福利在线观看| 国产av综合一区二区三区| 日本久久一区二区免高清| 久久精品国产高潮国产夫妻| 色偷偷中文在线天堂中文| 国产一二三五区不在卡| 国内精品久久人妻无码不卡| 在线播放亚洲成人av| 亚洲综合无码明星蕉在线视频| 成人无码视频97免费|