JVM優化
vi /usr/jboss/bin/run.conf
原文
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms128m -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
fi
修改為
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms1600m -Xmx1600m -XX:PermSize=128m -XX:MaxPermSize=1024m -XX:+UseParallelGC -XX:+UseParallelOldGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
fi
-Xms1600m -Xmx1600m 使用1600M內存 最大最小相同 避免每次垃圾回收完成后重新分配內存
-XX:+UseParallelGC 并行垃圾回收 避免長時間的服務中斷
-XX:+UseParallelOldGC 并行回收年老代(從JDK6.0開始支持)
-XX:PermSize=128m -XX:MaxPermSize=1024m 持久代大小 需要根據實際情況配置 hibernate,seam,spring等項目需要設置大些
-Dclient.encoding.override=GBK 設置字符集
-Djava.awt.headless=true 好像和處理頁面顯示圖片等有關
-XX:SurvivorRatio=16 將 Java 堆劃分為舊對象(長生命周期對象)區域和新對象區域。新對象區域進一步細分為兩部分,第一部分用于分配給新對象(初始區域),第二部分存放那些經過其前幾次垃圾回收之后、但在被提升為舊對象之前仍在使用中的新對象(幸存者空間)。幸存者比率是堆的新對象區域中初始區域與幸存者空間的比率。增大此設置將針對 需要創建大量對象但僅保留少量對象的應用程序優化 JVM。
-Xnoclassgc 禁用類垃圾收集
修改server.xml文件
<Connector port="8080" address="0.0.0.0"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
/>
修改后
<Connector port="8080" address="0.0.0.0"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
compression="on" compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/xhtml+xml,application/x-javascript,application/javascript,text/xhtml" />
compression="on" compressableMimeType=""用來啟用GZIP壓縮
日志修改
server/default/conf/jboss-log4j.xml
查找
<param name="Append" value="false"/>
改為
<param name="Append" value="true"/>
<param name="Threshold" value="ERROR"/> //此行為自己添加
<root>
<appender-ref ref="CONSOLE"/> <---刪除此行--->
<appender-ref ref="FILE"/>
</root>
Append設置為true 重啟服務不覆蓋日志
添加<param name="Threshold" value="ERROR"/> 只有ERROR級別以上才記錄日志
刪除<appender-ref ref="CONSOLE"/> 不在控制臺輸出日志
連接池修改
<min-pool-size>30</min-pool-size><!-- 30 --> 連接池保持最小連接數
<max-pool-size>500</max-pool-size><!-- 100 --> 連接池保持最大連接數
<idle-timeout-minutes>3</idle-timeout-minutes> <!-- 數據庫連接空閑時間,單位為分鐘,如果負載較大,可以設為5,如果一般,可以設為3 -->
關閉系統不需要的服務
#setup 選擇系統服務
anacron (系統)與循環型的工作排程 cron 有關,可在排程過期後還可以喚醒來繼續執行, 設定檔在 /etc/anacrontab。
apmd (系統)設定檔在 /etc/sysconfig/apmd ,也是電源管理模組啦! 可偵測電池電量,當電池電力不足時,可以自動關機以保護電腦主機。
autofs (系統)可用來自動掛載來自網路上的其他伺服器所提供的網路磁碟機 (一般是 NFS)。 不過我們是單機系統,所以目前還沒必要這個服務。
avahi-daemon (系統)也是一個用戶端的服務,可以透過 Zeroconf 自動的分析與管理網路。 Zeroconf 較常用在筆記型電腦與行動裝置上,所以我們可以先關閉他啦!
bluetooth (系統)用在藍芽裝置的搜尋上,如果 Linux 是當作伺服器使用時, 這個服務可以暫時關閉也沒關係!
cups (網路)用來管理印表機的服務,可以提供網路連線的功能,有點類似列印伺服器的功能哩! 你可以在 Linux 本機上面以瀏覽器的 http://localhost:631 來管理印表機喔!由於我們目前沒有印表機,所以可以暫時關閉他。
firstboot (系統)還記得系統第一次進入圖形介面還需要進行一些額外的設定嗎? 就是這個服務的幫忙啦!既然已經安裝妥當,現在你可以將這個服務關閉囉。
hidd (系統)也是藍芽服務的功能啦!可以提供鍵盤、滑鼠等藍芽裝置的偵測哩! 須搭配 bluetooth。伺服器環境倒是不需要此項服務
hplip (系統)主要是針對 HP 的印表機功能所開發的腳本服務,如果你的環境中並沒有 HP 相關設備,這個服務就給他關閉吧!
ip6tables (網路)是針對本機的防火牆功能!這個防火牆主要是針對 IPv6 的版本, 如果你的網路環境並沒有 IPv6 的設備,那麼這個服務是可以關閉的。
isdn (網路)ISDN 是一種寬頻設備 (數據機的一種) ,但是在臺灣我們比較常使用 ADSL 及光纖設備, 所以這個服務是可以關閉啦。
lm_sensors (系統)這個服務可以幫你偵測主機板的相關偵測晶片,舉例來說, 某些主機板會主動的偵測 CPU 溫度、頻率、電壓等,這個 lm_sensors 能夠將這些溫度、頻率等數據顯示出來喔!不過你得要先設定過就是了。
pcscd (系統)智慧卡偵測的服務,可以關閉他啦。
%%%%%%%%%%%%%未修改部分%%%%%%%%%%%%
安全
1、關閉jmx-console
刪除server/default/deploy/jmx-console.war和server/default/deploy/management
2、關閉web-console和status統計
刪除server/default/deploy/jboss-web.deployer/ROOT.war
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
待續。。。。
注:后面好像有錯。。。。小心使用。