1 Jboss內存優化
修改這個兩參數,給jvm分配適當的內存,一般爲服務器的3/4內存量,推薦至少使用4G內存。
另外添加兩個參數 -XX:+UseParallelGC -XX:+UseParallelOldGC 這兩個讓服務並行回收內存空間。
-server:一定要作爲第一個參數,在多個CPU時性能佳
-Xms:初始Heap大小,使用的最小內存,cpu性能高時此值應設的大一些
-Xmx:java heap最大值,使用的最大內存
上面兩個值是分配JVM的最小和最大內存,取決於硬件物理內存的大小,建議均設爲物理內存的一半。
-XX:PermSize:設定內存的永久保存區域
-XX:MaxPermSize:設定最大內存的永久保存區域
-XX:MaxNewSize:
-Xss 15120 這使得JBoss每增加一個線程(thread)就會立即消耗15M內存,而最佳值應該是128K,默認值好像是512k.
+XX:AggressiveHeap 會使得 Xms沒有意義。這個參數讓jvm忽略Xmx參數,瘋狂地吃完一個G物理內存,再吃盡一個G的swap。
-Xss:每個線程的Stack大小
-verbose:gc 現實垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日誌文件
-Xmn:young generation的heap大小,一般設置爲Xmx的3、4分之一-XX:+UseParNewGC :縮短minor收集的時間
-XX:+UseConcMarkSweepGC :縮短major收集的時間
修改完成後,大致爲
JAVA_OPTS="="-server -Xms128m –Xmx2048m –Xss512k -XX:PermSize=128m -XX:MaxPermSize=512m -XX:MaxNewSize=256m -XX:+UseParallelGC -XX:+UseParallelOldGC -Dfile.encoding=GBK"
2 Jboss部署目錄優化
去掉和應用無關的部署,加快jboss運行速度
bsh-deployer.xml
client-deployer-service.xml
ear-deployer.xml
ejb-deployer.xml
http-invoker.sar
jboss-bean.deployer
jboss-ws4ee.sar
jms
jsr88-service.xml
schedule-manager-service.xml
scheduler-service.xml
sqlexception-service.xml
uuid-key-generator.sar
3 Jboss應用安全加固
去掉:
Tomcat status (full) (XML)
JMX Console
JBoss Web Console
刪除deploy下的jmx-console.war/ management/
[root@190MEM deploy]# pwd
/usr/local/jboss/server/default/deploy
[root@190MEM deploy]# ls jmx-console.war/ management/
jmx-console.war/:
checkJNDI.jsp displayMBeans.jsp images inspectMBean.jsp META-INF WEB-INF
cluster displayOpResult.jsp index.jsp jboss.css style_master.css
management/:
console-mgr.sar
[root@190MEM deploy]#
4 降低jboss輸出日誌的等級
打開 <jboss>/server/default/conf/jboss-log4j.xml ,這是一個log4j的配置文件。
日誌輸出的太多,會導致服務器性能降低,所以減少不必要的日誌輸出。方法大體如下:
5 起用了jboss內的tomcat對傳輸數據的壓縮功能
合同管理裏用了大量的javascript css等,爲了減少傳輸時間,可以起用壓縮功能。方法是:
1. 打開<jboss>/server/default/deploy/jboss-web.deployer/server.xml
2. 找到 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”/>