JBoss性能調優

從如下幾方面進行JBOSS的性能調優: 
(1)首先解決以前遇到的jboss無反(假死)應問題。該內容須要下次遇到時着手解決,如今的日誌已經能夠每日備份,計劃用thread dump分析jboss假死問題. 
(2)JBOSS-JVM優化,內存參數設置. 
(3)分析JBOSS數據壓縮功能,根據須要選用. 
(4)選用合適的日誌輸出等級和標準輸出數據量大小. 
(5)考慮使用jboss-native,提升處理靜態文件的處理速度. 
(6)數據庫鏈接池優化. 
(7)關閉不須要的jboss服務. 

[1] jboss無反應或者CPU/mem usage very high 
we can use thread dump and jvm arguments to test the code. 
參見: 
http://binma85.iteye.com/blog/786349 
http://binma85.iteye.com/blog/819150 

[2]JBOSS-JVM 優化 
主要是對Jboss依賴的JVM參數進行優化設置 
javascript

引用css

典型服務器配置有如下幾種: 
-Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 
-XX:+UseParallelGC:選擇垃圾收集器爲並行收集器。此配置僅對年輕代有效。即上述配置下,年輕代使用併發收集,而年老代仍舊使用串行收集。 
-XX:ParallelGCThreads=20:配置並行收集器的線程數,即:同時多少個線程一塊兒進行垃圾回收。此值最好配置與處理器數目相同 
-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC 
-XX:+UseParallelOldGC:配置年老代垃圾收集方式爲並行收集。JDK6.0支持對年老代並行收集。 
-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection 
XX:CMSFullGCsBeforeCompaction:因爲併發收集器不對內存空間進行壓縮、整理,因此運行一段時間之後會產生「碎片」,使得運行效率下降。此值設置運行多少次GC之後對內存空間進行壓縮、整理。 
-XX:+UseCMSCompactAtFullCollection:打開對年老代的壓縮。可能會影響性能,可是能夠消除碎 
摘自:http://wangtong40.iteye.com/blog/737235 
html



[3]分析JBOSS數據壓縮功能,根據須要選用. 
當web容器須要大量的數據傳輸時,爲減小數據傳輸時間,能夠考慮啓用數據壓縮功能。相似css、js等數據是重點考慮對象。主要作法以下所示: 
打開server/default/deploy/jboss-web.deployer/server.xml 
找 到 protocol=」HTTP/1.1″的 Connector元素,添加屬性 URIEncoding=」utf-8″ compression=」on」 compressionMinSize=」2048″ noCompressionUserAgents=」gozilla, traviata」 compressableMimeType=」text/html,text/xml,text/javascript, text/css, text/plain,application/xhtml+xml,application/x-javascript,application/javascript,text/xhtml」 

添加完後相似於: 
java

Xml代碼  收藏代碼linux

  1. <Connector port=」8080″ address=」${jboss.bind.address}」     web

  2. maxThreads=」250″ maxHttpHeaderSize=」8192″  數據庫

  3. emptySessionPath=」true」 protocol=」HTTP/1.1″  apache

  4. enableLookups=」false」 redirectPort=」8443″ acceptCount=」100″  windows

  5. connectionTimeout=」20000″ disableUploadTimeout=」true」 URIEncoding=」utf-8″ compression=」on」 compressionMinSize=」2048″ noCompressionUserAgents=」gozilla, traviata」 compressableMimeType=」text/html,text/xml,text/javascript, text/css, text/plain,application/xhtml+xml,application/x-javascript,application/javascript,text/xhtml」/>  tomcat



[4]選用合適的日誌輸出等級和標準輸出數據量大小. 
打開server/default/conf/jboss-log4j.xml ,這是一個log4j的配置文件。log4j的詳細配置說明請參看  http://logging.apache.org/log4j/1.2/index.html  。日誌輸出的太多,會致使服務器性能下降,因此減小沒必要要的日誌輸出。方法大致以下: 

找到 name=」org.jboss」 的category 元素,設置裏面的priority元素爲 <priority value=」INFO」 /> 
建一個新的category,內容爲 <category name=」javax.faces」><priority value=」INFO」 /></category> 

log4j 還可以將不一樣的日誌輸入到不一樣的地方,爲了之後維護方便,應該將不一樣 category的日誌輸入到不一樣的文件裏。詳細方法參看上面的網站裏的說明。 

[5]考慮使用jboss-native,提升處理靜態文件的處理速度. 
安裝jbossNative 
    jboss的web container使用的 apache tomcat (http://www.apache.org)。 apache tomcat 有一個擴展包,使tomcat能夠經過 java native interface 使用 apache portable runtime (APR),而APR則是大名頂頂的apache httpd 網絡服務器的運行時環境。用了這個擴展以後,就使得tomcat能夠藉助於apache httpd的力量,性能得以提高,尤爲是處理靜態文件時效率更高。Jboss native,實際上就是tomcat的這個native的擴展,只不過被jboss又添進了一些爲了和jboss更好協做而加進去的東西。 
要安裝jboss native, 按如下步驟進行 

請到jboss的網站上下載,地址是 http://www.jboss.org/jbossweb/downloads/jboss-native/?action=a&windowstate=maximized, 依據服務器環境選擇合適的版本。 目前咱們用的版本是JBoss Native 2.0.4 Linux x86 。 
解壓下載後的壓縮包到某個目錄,好比 jbossNative目錄 
將jbossNative/bin/META-INF/bin/linux2/x86/openssl 複製到<jboss>/bin 
在<jboss>/bin目錄裏建一個文件夾,名爲 native 
把jbossNative/bin/META-INF/lib/linux2/x86/ 目錄下全部內容複製到上一步建好的<jboss>/bin/native目錄下 

[6]數據庫鏈接池優化. 
摘自http://wangtong40.iteye.com/blog/737235 
在JBOSS_HOME\Server\default\deploy目錄下存在**-xa-ds.xml文件,用於JBOSS同數據庫鏈接等配置,默認狀況下**-xa-ds.xml文件中不包含關於數據庫鏈接池等方面的配置信息,能夠添加一下內容進行數據庫鏈接池方面的設置: 

Xml代碼  收藏代碼

  1. <min-pool-size>100</min-pool-size>     

  2. <max-pool-size>500</max-pool-size>   



[7]關閉不須要的jboss服務. 
摘自http://wangtong40.iteye.com/blog/737235 
在JBOSS中提供許多一般不須要的服務和Jar包,好比JMX、Mail、AOP、Hibernate等,能夠根據具體項目所涉及的技術,刪減JBOSS內置應用,從而提升JBOSS中間件啓動速度,減小佔用系統資源。 

刪減服務  
   在%JBOSS_HOME%/server/default/deploy中含有一些好比jboss-aop.deployer等目錄和mail-service.xml等應用配置文件,若是不須要使用這些應用的話,能夠將其一一刪除,不過刪除時要分外當心,避免應用系統沒法啓動。
下圖爲只包含數據庫應用的一個已刪減不須要服務後的deploy文件夾目錄: 

刪減Jar包 
   在%JBOSS_HOME%/server/default/lib中包含一些應用系統不須要的Jar包,這些包一樣能夠進行刪除。

相關文章
相關標籤/搜索