Tomcat 性能優化(鏈接數、線程、JVM、dir)

Tomcat的server.xml中Context元素的如下參數應該怎麼配合適 

<Connector port="8080" 
maxThreads="150" 
minSpareThreads="25" 
maxSpareThreads="75" 
acceptCount="100" 
/>   
    java

答曰:linux

maxThreads="150" 表示最多同時處理150個鏈接 
minSpareThreads="25" 表示即便沒有人使用也開這麼多空線程等待 
maxSpareThreads="75" 表示若是最多能夠空75個線程,例如某時刻有80人訪問,以後沒有人訪問了,則tomcat不會保留80個空線程,而是關閉5個空的。 

acceptCount="100" 當同時鏈接的人數達到maxThreads時,還能夠接收排隊的鏈接,超過這個鏈接的則直接返回拒絕鏈接。 

根據你的配置建議 
maxThreads="500" 
minSpareThreads="100" 若是你的網站常常訪問量都很大的話,缺省就開比較大 
maxSpareThreads="300" 
acceptCount="100" 
這只是說你的服務器能夠支持這麼多用戶,但還要看你安裝了哪些東西,還有你的程序是否足夠高效率。web

 

(第二種方法)tomcat

tomcat中的幾點配置說明服務器

 

如何加大tomcat鏈接數網絡


在tomcat配置文件server.xml中的配置中,和鏈接數相關的參數有:
minProcessors:最小空閒鏈接線程數,用於提升系統處理性能,默認值爲10
maxProcessors:最大鏈接線程數,即:併發處理的最大請求數,默認值爲75
acceptCount:容許的最大鏈接數,應大於等於maxProcessors,默認值爲100
enableLookups:是否反查域名,取值爲:true或false。爲了提升處理能力,應設置爲false
connectionTimeout:網絡鏈接超時,單位:毫秒。設置爲0表示永不超時,這樣設置有隱患的。一般可設置爲30000毫秒。併發

其中和最大鏈接數相關的參數爲maxProcessors和acceptCount。若是要加大併發鏈接數,應同時加大這兩個參數。app


web server容許的最大鏈接數還受制於操做系統的內核參數設置,一般Windows是2000個左右,Linux是1000個左右。Unix中如何設置這些參數,請參閱Unix經常使用監控和管理命令less

tomcat4中的配置示例:
port="8080" minProcessors="10" maxProcessors="1024"
enableLookups="false" redirectPort="8443"
acceptCount="1024" debug="0" connectionTimeout="30000" />jsp

對於其餘端口的偵聽配置,以此類推。

2. tomcat中如何禁止列目錄下的文件
在{tomcat_home}/conf/web.xml中,把listings參數設置成false便可,以下:

...

listings
false

 

---------------------------------------------------------------

 

 

 

 

linux下tomcat設置最大鏈接數,設置最大內存

linux下tomcat設置最大鏈接數,設置最大內存,使用Jconsole監控

1. 添加tomcat管理員賬戶 添加管理員帳戶tomcat-users.xml <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> <user username="admin" password="admin123" roles="admin,manager"/> </tomcat-users> 2. TOMCAT內存 基本原理:JAVA程序啓動時都會JVM 都會分配一個初始內存和最大內存給這個應用程序。這個初始內存和最大內存在必定程度都會影響程序的性能。好比說在應用程序用到最大內存的時候,JVM是要 先去作垃圾回收的動做,釋放被佔用的一些內存。 因此想調整Tomcat的啓動時初始內存和最大內存就須要向JVM聲明,通常的JAVA程序在運行均可以經過中-Xms -Xmx來調整應用程序的初始內存和最大內存:   如:java -Xms64m -Xmx128m application.jar. 方法1:若是是使用的tomcat_home/bin/catalina.sh(linux)或catalina.bat(win)啓動的: 修改相應文件,加上下面這句: JAVA_OPTS='$JAVA_OPTS -server -Xmx800m -Xms512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true'--ms是最小內存,mx是最大內存。這裏設置最小內存爲512M,最大內存爲 800M。$JAVA_OPTS是保留先前設置。 CATALINA_OPTS彷佛能夠與JAVA_OPTS不加區別的使用。[對於catalina.bat則是如此設置: set   JAVA_OPTS=-Xms1024m   -Xmx1024m] 方法2:若是使用的winnt服務啓動: 在命令行鍵入regedit,找到 HKEY_LOCAL_MACHINE-->SOFTWARE-->Apache Software Foundation-->Procrun 2.0-->Tomcat5-->Parameters的Java, 修改Options的值,新添加屬性: -Xms64m -Xmx128m 或者直接修改JvmMx(最大內存)和JvmMs(最小內存)。 有人建議Xms和Xmx的值取成同樣比較好,說是能夠加快內存回收速度。 修改完以後,能夠訪問http://127.0.0.1:8080/manager/status查看內存大小。 也能夠編寫下面測試tomcat內存大小的jsp頁面: <% Runtime lRuntime = Runtime.getRuntime(); out.println("*** BEGIN MEMORY STATISTICS ***<br/>"); out.println("Free Memory: "+lRuntime.freeMemory()+"<br/>"); out.println("Max   Memory: "+lRuntime.maxMemory()+"<br/>"); out.println("Total Memory: "+lRuntime.totalMemory()+"<br/>"); out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>"); out.println("*** END MEMORY STATISTICS ***"); %> 3. 增長tomcat鏈接數 在tomcat配置文件server.xml中的配置中,和鏈接數相關的參數有: minProcessors:最小空閒鏈接線程數,用於提升系統處理性能,默認值爲10 maxProcessors:最大鏈接線程數,即:併發處理的最大請求數,默認值爲75 acceptCount:容許的最大鏈接數,應大於等於maxProcessors,默認值爲100 enableLookups:是否反查域名,取值爲:true或false。爲了提升處理能力,應設置爲false connectionTimeout: 網絡鏈接超時,單位:毫秒。設置爲0表示永不超時,這樣設置有隱患的。一般可設置爲30000毫秒。 其中和最大鏈接數相關的參數爲maxProcessors和acceptCount。若是要加大併發鏈接數,應同時加大這兩個參數。 web server容許的最大鏈接數還受制於操做系統的內核參數設置,一般Windows是2000個左右,Linux是1000個左右。 如: <Connector   port="8080"         maxThreads="150"           minSpareThreads="25"           maxSpareThreads="75"         acceptCount="100"         />   maxThreads="150"     表示最多同時處理150個鏈接   minSpareThreads="25"     表示即便沒有人使用也開這麼多空線程等待   maxSpareThreads="75"     表示若是最多能夠空75個線程,例如某時刻有80人訪問,以後沒有人訪問了,則tomcat不會保留80個空線程,而是關閉5個空的。       acceptCount="100"   當同時鏈接的人數達到maxThreads時,還能夠接收排隊的鏈接,超過這個鏈接的則直接返回拒絕鏈接。 4.使用Jconsole監控 在須要監控的tomcat_home/bin/catalina.sh(linux)文件中添加下面語句:JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=8089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" 設置一個新的端口號。而後在本機dos下輸入Jconsole命令,彈出「JAVA 監視和管理控制檯」,若是是遠程監視,就輸入<hostname>:<port>,這個port就上上面配置的8089,而後再輸入遠程主機的用戶名跟口令,就能夠監控啦。 傳說這裏面還能夠加一句話"-Djava.rmi.server.hostname=192.168.1.80" 沒有試過 ⊙﹏⊙b汗 先拷貝上一句話,留做記憶:    再找找遠程tomcat的jmx配置,多了個參數-Djava.rmi.server.hostname=ip_or_hostname。而後我就加上了服務器的IP。而後再鏈接就能夠了。對這樣的狀況有點不解,再官方又沒有找任何這個參數的說明。回來後,再試用一下。在虛擬機的開一個linux,而後配上jmx參數(沒有java.rmi.server.hostname的)。結果能夠鏈接。... 公司的爲何不能鏈接呢?爲何加了IP就行?懷疑多網卡。而後在虛擬機上再加一個網上,而後啓動 tomcat ,恩,不能鏈接(沒有server.hostname),而後再加上java.rmi.server.hostname啓動 tomcat ,結果或以鏈接。原來java.rmi.server.hostname是這個做用。

相關文章
相關標籤/搜索