Jboss 4.2.3配置与优化

时间:2021-11-21 20:13:51

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”/>