为了优化jboss的性能,对jboss服务器做如下改动:
- 设置jvm 参数
- 安装jboss-native
- 降低jboss输出日志的等级
- 起用了jboss内的tomcat对传输数据的压缩功能
- 使用ehcache做hibernate的二级缓存
下面就以上的各改动做详细说明,为了表述方便<jboss>代表jboss的安装目录:
- 设置 jvm 参数
编辑<jboss>/bin/run.conf, 在文件的底部找到对参数JAVA_OPTS进行设置的地方。这个参数会最后传到jvm里。其中-Xms512m 代表jvm最少用 512m内存
-Xmx1024m 代表jvm最多使用 1024m内存
为 JAVA_OPTS = “-Xms4096m -Xmx8192m -XX:+UseParallelGC -XX:+UseParallelOldGC -Dsum…….
修改这个两参数,给jvm分配适当的内存,一般为服务器的3/4内存量,推荐至少使用4G内存。
另外添加两个参数 -XX:+UseParallelGC -XX:+UseParallelOldGC 这两个让服务并行回收内存空间。修改完成后,大致 - 安装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, 依据服务器环境选择合适的版本。
解压下载后的压缩包到某个目录,比如 jbossNative目录
将jbossNative/bin/META-INF/bin/linux2/x86/openssl 复制到<jboss>/bin
在<jboss>/bin目录里建一个文件夹,名为 native
把jbossNative/bin/META-INF/lib/linux2/x86/ 目录下所有内容复制到上一步建好的<jboss>/bin/native目录下 - 降低jboss输出日志的等级
打开 <jboss>/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的日志输入到不同的文件里。详细方法参看上面的网站里的说明。 - 起用了jboss内的tomcat对传输数据的压缩功能
当使用大量的javascript、css等静态文件时,为了减少传输时间,可以起用压缩功能。方法是:
打开<jboss>/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”
添加完后类似于:<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”/>
- 使用ehcache做hibernate的二级缓存
起用二级缓存,可以大大提高hibernate的运行效率。
到http://ehcache.sourceforge.net/ 网站下载 ehcache-1.4.1.tgz
解压到某个目录,例如ehcache目录
复 制 ehcache/ehcache-1.4.1/ehcache-1.4.1.jar, ehcache/ehcache-1.4.1/lib/backport-util-concurrent-3.0.jar和 ehcache/ehcache-1.4.1/lib/jsr107cache-1.0.jar到 <jboss>/server/default/lib目录
文章来源自:http://jameswxx.iteye.com/blog/250753