JBOSS之性能優化

 

    爲了優化jboss的性能,對jboss服務器做如下改動:

  • 設置jvm 參數
  • 安裝jboss-native
  • 降低jboss輸出日誌的等級
  • 起用了jboss內的tomcat對傳輸數據的壓縮功能
  • 使用ehcache做hibernate的二級緩存

    下面就以上的各改動做詳細說明,爲了表述方便<jboss>代表jboss的安裝目錄:

  1. 設置 jvm 參數
    編輯<jboss>/bin/run.conf,  在文件的底部找到對參數JAVA_OPTS進行設置的地方。這個參數會最後傳到jvm裏。其中

    -Xms512m 代表jvm最少用 512m內存
    -Xmx1024m 代表jvm最多使用 1024m內存


          修改這個兩參數,給jvm分配適當的內存,一般爲服務器的3/4內存量,推薦至少使用4G內存。
    另外添加兩個參數 -XX:+UseParallelGC -XX:+UseParallelOldGC 這兩個讓服務並行回收內存空間。修改完成後,大致

    爲  JAVA_OPTS = “-Xms4096m -Xmx8192m -XX:+UseParallelGC -XX:+UseParallelOldGC -Dsum…….
  2. 安裝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目錄下
  3. 降低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的日誌輸入到不同的文件裏。詳細方法參看上面的網站裏的說明。
  4. 起用了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”/>
  5. 使用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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章