tomcat是一個老牌的中間件了,從我從業到現在時不時都會遇到它,方便、靈活、性能一般是我對它的使用經驗總結。
配置
注意 : tomcat 7 和 6 有很大差別,server.xml catalina.sh 配置文件不能通用
設置tomcat7 使用jdk1.7
export JAVA_HOME=/usr/local/java/
/usr/local/tomcat1/conf/server.xml
maxThreads="1000" minSpareThreads="25" maxSpareThreads="200"
enableLookups="false" redirectPort="8443" acceptCount="1000"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
maxThreads="150" 表示最多同時處理150個連接
minSpareThreads="25" 表示即使沒有人使用也開這么多空線程等待
maxSpareThreads="75" 表示如果最多可以空75個線程,例如某時刻有80人訪問,之后沒有人訪問了,則tomcat不會保留80個空線程,而是關閉5個空的
acceptCount="100" 當同時連接的人數達到maxThreads時,還可以接收排隊的連接,超過這個連接的則直接返回拒絕連接
# StartServers:啟動時服務器啟動的進程數
# MinSpareServers:保有的備用進程的最小數目
# MaxSpareServers:保有的備用進程的最大數目
# MaxClients:服務器允許啟動的最大進程數
# MaxRequestsPerChild:一個服務進程允許的最大請求數
每類日志的級別分為如下 7 種:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
最后 上增加
==========================================================================
普通文件【tar】 下載直接全目錄
文本文件 主頁做一個超連接 ty
windows 修改 tomcat的名字
catalina.bat
:doStart
shift
if not "%OS%" == "Windows_NT" goto noTitle
if "%TITLE%" == "" set TITLE=Tomcat8080
set _EXECJAVA=start "%TITLE%" %_RUNJAVA%
goto gotTitle
日志級別的設定方法
修改 conf/logging.properties 中的內容,設定某類日志的級別
示例:
設置 catalina 日志的級別為: FINE
1catalina.org.apache.juli.FileHandler.level = FINE
管理
導出java堆棧
jstack
kill -3
java 堆棧狀態解析
http://blog.csdn.net/rachel_luo/article/details/8920596
在Tomcat中,我們知道%catalina_home%\work是存放緩存文件的地方
統計TCP連接狀態
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
堆棧內存分配
CATALINA_OPTS="-Xms1024m -Xmx1024m"
JAVA_OPTS="-Xms1024m -Xmx1024m"
問題報錯:
LifecycleException: No UserDatabase component found under key UserDatabase
server.xml文件出錯了:
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
athname="conf/tomcat-users.xml" />
conf/tomcat-users.xml 或者出現了問題,找一個正常的比較一下就可以了