jdk安裝
su - root mkdir jdk cd jdk wget https://mirror.its.sfu.ca/mirror/CentOS-Third-Party/NSG/common/x86_64/jdk-7u76-linux-x64.rpm rpm -ivh jdk-7u76-linux-x64.rpm
環境變量
vi /etc/profile export JAVA_HOME=/usr/java/jdk1.7.0_76 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib . /etc/profile
tomcat下載
#建議用一般用戶運行tomcat wget http://www.apache.org/dist/tomcat/tomcat-7/v7.0.59/bin/apache-tomcat-7.0.59.tar.gz tar xzf apache-tomcat-7.0.59.tar.gz apache-tomcat-7.0.59/bin chmod +x *.sh
tomcat隱藏版本號
cd apache-tomcat-7.0.59/lib mkdir test cd test jar xf ../catalina.jar vi org/apache/catalina/util/ServerInfo.properties server.info=Tomcat server.number=6 server.built=Jan 18 2013 14:51:10 UTC jar cf ../catalina.jar ./* rm -rf test
Tomcat jconsole監控遠程jvm配置
參考:http://blog.linuxeye.com/262.html
Tomcat的三種模式及並發優化
Tomcat的運行模式有3種
1、bio
默認的模式,性能非常低下,沒有經過任何優化處理和支持.
2、nio
利用java的異步io護理技術,noblocking IO技術.
想運行在該模式下,直接修改server.xml裡的Connector節點,修改protocol為
<Connector port="80″ protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" URIEncoding=”UTF-8″ useBodyEncodingForURI="true" enableLookups="false" redirectPort="8443">
啟動後,就可以生效。
3、apr
從操作系統級別來解決異步的IO問題,大幅度的提高性能。
必須要安裝apr和native,直接啟動就支持apr
修改protocol為org.apache.coyote.http11.Http11AprProtocol
安裝apr
yum -y install apr apr-devel
安裝native
進入tomcat/bin目錄,比如:
cd /usr/local/tomcat/bin/ tar xzfv tomcat-native.tar.gz cd tomcat-native-1.1.20-src/jni/native/ ./configure --with-apr=/usr/bin/apr-1-config make && make install
安裝完成之後 會出現如下提示信息
Libraries have been installed in: /usr/local/apr/lib
安裝成功後還需要對tomcat設置環境變量,方法是在catalina.sh文件中增加1行:
CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
修改8080端對應的conf/server.xml
protocol="org.apache.coyote.http11.Http11AprProtocol"
啟動tomcat之後,查看日志會有這一行信息,說明已經是APR模式啟動了
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
並發優化
1.JVM調優
新增文件TOMCAT_HOME/bin/setenv.sh如下語句,具體數值視情況而定。
JAVA_OPTS="-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=64m -XX:MaxPermSize=128m"
參數詳解
-Xms JVM初始化堆內存大小 -Xmx JVM堆的最大內存 -Xss 線程棧大小 -XX:PermSize JVM非堆區初始內存分配大小 -XX:MaxPermSize JVM非堆區最大內存
建議和注意事項:
-Xms和-Xmx選項設置為相同堆內存分配,以避免在每次GC 後調整堆的大小,堆內存建議占內存的60%~80%;非堆內存是不可回收內存,大小視項目而定;線程棧大小推薦256k.
32G內存配置如下:
JAVA_OPTS="-Xms20480m -Xmx20480m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"
2.關閉DNS反向查詢
在<Connector port=”8080″ 中加入如下參數
enableLookups="false"
3.優化tomcat參數(使用APR)
<Listener className="org.apache.catalina.core.AprLifecycleListener" /> ... <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" //鏈接超時時長 redirectPort="8443" maxThreads="500" minSpareThreads="20" acceptCount="1000" enableLookups="false" URIEncoding="UTF-8" />原文:http://blog.linuxeye.com/413.html