爲了優化jboss的性能,對jboss服務器做如下改動:
- 設置jvm 參數
- 安裝jboss-native
- 降低jboss輸出日誌的等級
- 起用了jboss內的tomcat對傳輸數據的壓縮功能
- 使用ehcache做hibernate的二級緩存
下面就以上的各改動做詳細說明,爲了表述方便<jboss>代表jboss的安裝目錄:
- 設置 jvm 參數
編輯<jboss>/bin/run.conf, 在文件的底部找到對參數JAVA_OPTS進行設置的地方。這個參數會最後傳到jvm裏。其中-Xms512m 代表jvm最少用 512m內存
-Xmx1024m 代表jvm最多使用 1024m內存
爲 JAVA_OPTS = “-Xms4096m -Xmx8192m -XX:+UseParallelGC -XX:+UseParallelOldGC -Dsum…….
修改這個兩參數,給jvm分配適當的內存,一般爲服務器的3/4內存量,推薦至少使用4G內存。
另外添加兩個參數 -XX:+UseParallelGC -XX:+UseParallelOldGC 這兩個讓服務並行回收內存空間。修改完成後,大致 - 安裝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, 依據服務器環境選擇合適的版本。
解壓下載後的壓縮包到某個目錄,比如 jbossNative目錄
將jbossNative/bin/META-INF/bin/linux2/x86/openssl 複製到<jboss>/bin
在<jboss>/bin目錄裏建一個文件夾,名爲 native
把jbossNative/bin/META-INF/lib/linux2/x86/ 目錄下所有內容複製到上一步建好的<jboss>/bin/native目錄下 - 降低jboss輸出日誌的等級
打開 <jboss>/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的日誌輸入到不同的文件裏。詳細方法參看上面的網站裏的說明。 - 起用了jboss內的tomcat對傳輸數據的壓縮功能
當使用大量的javascript、css等靜態文件時,爲了減少傳輸時間,可以起用壓縮功能。方法是:
打開<jboss>/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”
添加完後類似於:
<Connector port=”8080″ address=”${jboss.bind.address}”
maxThreads=”250″ maxHttpHeaderSize=”8192″
emptySessionPath=”true” protocol=”HTTP/1.1″
enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
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”/> - 使用ehcache做hibernate的二級緩存
起用二級緩存,可以大大提高hibernate的運行效率。
到http://ehcache.sourceforge.net/ 網站下載 ehcache-1.4.1.tgz
解壓到某個目錄,例如ehcache目錄
復 制 ehcache/ehcache-1.4.1/ehcache-1.4.1.jar, ehcache/ehcache-1.4.1/lib/backport-util-concurrent-3.0.jar和 ehcache/ehcache-1.4.1/lib/jsr107cache-1.0.jar到 <jboss>/server/default/lib目錄
文章來源自:http://jameswxx.iteye.com/blog/250753