JBOSS之性能优化

为了优化jboss的性能,对jboss服务器做如下改动:

  • 设置jvm 参数
  • 安装jboss-native
  • 降低jboss输出日志的等级
  • 起用了jboss内的tomcat对传输数据的压缩功能
  • 使用ehcache做hibernate的二级缓存

    下面就以上的各改动做详细说明,为了表述方便<jboss>代表jboss的安装目录:

  1. 设置 jvm 参数
    编辑<jboss>/bin/run.conf,  在文件的底部找到对参数JAVA_OPTS进行设置的地方。这个参数会最后传到jvm里。其中

    -Xms512m 代表jvm最少用 512m内存
    -Xmx1024m 代表jvm最多使用 1024m内存


          修改这个两参数,给jvm分配适当的内存,一般为服务器的3/4内存量,推荐至少使用4G内存。
    另外添加两个参数 -XX:+UseParallelGC -XX:+UseParallelOldGC 这两个让服务并行回收内存空间。修改完成后,大致

    为  JAVA_OPTS = “-Xms4096m -Xmx8192m -XX:+UseParallelGC -XX:+UseParallelOldGC -Dsum…….
  2. 安装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目录下
  3. 降低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的日志输入到不同的文件里。详细方法参看上面的网站里的说明。
  4. 起用了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”/>
     
  5. 使用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

猜你喜欢

转载自swengineer.iteye.com/blog/1103423