JBOSS4 性能优化设置
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
待续。。。。
注:后面好像有错。。。。小心使用。