JBoss性能调优

从如下几方面进行JBOSS的性能调优: 
(1)首先解决以前遇到的jboss无反(假死)应问题。该内容须要下次遇到时着手解决,如今的日志已经能够每日备份,计划用thread dump分析jboss假死问题. 
(2)JBOSS-JVM优化,内存参数设置. 
(3)分析JBOSS数据压缩功能,根据须要选用. 
(4)选用合适的日志输出等级和标准输出数据量大小. 
(5)考虑使用jboss-native,提升处理静态文件的处理速度. 
(6)数据库链接池优化. 
(7)关闭不须要的jboss服务. 

[1] jboss无反应或者CPU/mem usage very high 
we can use thread dump and jvm arguments to test the code. 
参见: 
http://binma85.iteye.com/blog/786349 
http://binma85.iteye.com/blog/819150 

[2]JBOSS-JVM 优化 
主要是对Jboss依赖的JVM参数进行优化设置 
javascript

引用css

典型服务器配置有如下几种: 
-Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 
-XX:+UseParallelGC:选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集。 
-XX:ParallelGCThreads=20:配置并行收集器的线程数,即:同时多少个线程一块儿进行垃圾回收。此值最好配置与处理器数目相同 
-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC 
-XX:+UseParallelOldGC:配置年老代垃圾收集方式为并行收集。JDK6.0支持对年老代并行收集。 
-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection 
XX:CMSFullGCsBeforeCompaction:因为并发收集器不对内存空间进行压缩、整理,因此运行一段时间之后会产生“碎片”,使得运行效率下降。此值设置运行多少次GC之后对内存空间进行压缩、整理。 
-XX:+UseCMSCompactAtFullCollection:打开对年老代的压缩。可能会影响性能,可是能够消除碎 
摘自:http://wangtong40.iteye.com/blog/737235 
html



[3]分析JBOSS数据压缩功能,根据须要选用. 
当web容器须要大量的数据传输时,为减小数据传输时间,能够考虑启用数据压缩功能。相似css、js等数据是重点考虑对象。主要作法以下所示: 
打开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” 

添加完后相似于: 
java

Xml代码  收藏代码linux

  1. <Connector port=”8080″ address=”${jboss.bind.address}”     web

  2. maxThreads=”250″ maxHttpHeaderSize=”8192″  数据库

  3. emptySessionPath=”true” protocol=”HTTP/1.1″  apache

  4. enableLookups=”false” redirectPort=”8443″ acceptCount=”100″  windows

  5. 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”/>  tomcat



[4]选用合适的日志输出等级和标准输出数据量大小. 
打开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的日志输入到不一样的文件里。详细方法参看上面的网站里的说明。 

[5]考虑使用jboss-native,提升处理静态文件的处理速度. 
安装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, 依据服务器环境选择合适的版本。 目前咱们用的版本是JBoss Native 2.0.4 Linux x86 。 
解压下载后的压缩包到某个目录,好比 jbossNative目录 
将jbossNative/bin/META-INF/bin/linux2/x86/openssl 复制到<jboss>/bin 
在<jboss>/bin目录里建一个文件夹,名为 native 
把jbossNative/bin/META-INF/lib/linux2/x86/ 目录下全部内容复制到上一步建好的<jboss>/bin/native目录下 

[6]数据库链接池优化. 
摘自http://wangtong40.iteye.com/blog/737235 
在JBOSS_HOME\Server\default\deploy目录下存在**-xa-ds.xml文件,用于JBOSS同数据库链接等配置,默认状况下**-xa-ds.xml文件中不包含关于数据库链接池等方面的配置信息,能够添加一下内容进行数据库链接池方面的设置: 

Xml代码  收藏代码

  1. <min-pool-size>100</min-pool-size>     

  2. <max-pool-size>500</max-pool-size>   



[7]关闭不须要的jboss服务. 
摘自http://wangtong40.iteye.com/blog/737235 
在JBOSS中提供许多一般不须要的服务和Jar包,好比JMX、Mail、AOP、Hibernate等,能够根据具体项目所涉及的技术,删减JBOSS内置应用,从而提升JBOSS中间件启动速度,减小占用系统资源。 

删减服务  
   在%JBOSS_HOME%/server/default/deploy中含有一些好比jboss-aop.deployer等目录和mail-service.xml等应用配置文件,若是不须要使用这些应用的话,能够将其一一删除,不过删除时要分外当心,避免应用系统没法启动。
下图为只包含数据库应用的一个已删减不须要服务后的deploy文件夹目录: 

删减Jar包 
   在%JBOSS_HOME%/server/default/lib中包含一些应用系统不须要的Jar包,这些包一样能够进行删除。

相关文章
相关标签/搜索