Jboss瘦身和调优
更新时间:2024-03-12 03:42:01 阅读量: 综合文库 文档下载
- jboss配置推荐度:
- 相关推荐
JBoss AS的调优与瘦身
JBossAS的调优
基于JBoss 3.2.6 。
FOR 4.0.4+修订版 JBoss4瘦身 前言
这个建议主要是如果对JBossAS进行调优和瘦身的. 这个概念在多数情况是交叉的。当通过瘦身减少闲置服务线程并不能带来大的性能影响的时候,允许你使用较少的内存和资源对其他性能方便进行调整。当然它可以缩短启动时间。而且,作为一般的安全观念――移除你不使用的服务。我们将分开两个种类: 瘦身和调优. 首先我们使用默认的配置并从那里开始瘦身(对于clustering的话题,将在以后的wiki页面进行讨论 ;-) ). 这个建议不牵扯开发者和管理角色交叉调优的区域开发者和管理角色 (应用程序调优象cache大小一样). 这主要是对于管理调优的建议.
这建议将做技术上非J2EE平台兼容(3.2.6无论如何不顺从)的JBoss实例的有关的那些注意,象除去J2EE关键 服务的那样将导致JBoss 失败TCK。多数性能调优/管理任务工作,在现实世界结构里,在技术上属于这个类别。
假设你已经复制server/default 文件夹并将它重新命名为server/slim. 调优
Java Virtual Machine Java虚拟机
???对于你的机器和内存大小来调整
VM垃圾收集或者调整 JDK 5 的垃圾收集???使用64位的机
器和64位的VM,以便你能使用大的heap(堆)大小,通常比2-4GB的大。64位支持在所有最新的SPARC/Solaris 寄存器运行Solaris 9 或者以后的版本是有效的, Itanium 使用 JDK 1.4, 或者在Linux x64 上使用JDK 5.
???如果你不使用上面的最大
32位heap空间(2-4 GB 的heap),不要使用 –d64. 使用64位地
址需要更多的内存来做同样的工作量,并且对于应用程序不需要如此多的内存来说并不能提供更大优势。
???除了避免额外小的
heaps外还要避免额外大的heaps. (我们不能告诉你具备什么资格,因为
它取决于你正做什么). 这影响generational 垃圾收集和扫描heap的总的时间. 有效的调整一个小heap是困难的 (即使你的应用程序仅仅需要使用200MB,如果你使用并行垃圾收集+CMS,然后你将需要远高于512MB). 特大号的heaps为垃圾收集花费不必要的时间扫描内存。
???避开 Sun 1.4 VM. JDK 5 主要是在垃圾收集方面非常的好.
???使用 -server 参数除了使用其他-XX:ThreadStackSize=128k (Solaris) 或者 -Xss128k (其
他任何平台). 在Solaris 上 -Xss128k 什么也没有做 (你只可以设置较大的线程栈大小). 这允许你每个线程通过使用较少的内存达到创建更多线程的目的。but might result in blown stacks with extremely recursive code. 然而, 128k 栈 is still nothing to shake a stick at.
???你真的需要明白恰当的
generational 垃圾收集调整和你真的已经进行了负载测试
(OpenSTA?, JMeter, 等等) 确认是有把握的.
???你确实将使用一个超过2个处理器的多核心机器,及使用不同的平行和并行垃圾收集选择 (我
们谈及这先进的JBoss训练暗示伏笔) 对于最大性能和高拉机回收吞吐量. 不过,你确实需要理
解怎么调整才能使得垃圾收集很好的工作。JDK 5大部分是自我调整.
???JDK 1.4
的默认 NewSize? 不是好的猜想. 坏的经验法则: < 20% 是一个好的 NewSize?. 20%
以上的消费是危险的,这是JDK令人讨厌的一个,能导致它psychotically运行所有满垃圾回收和从未 unsuspend 或者释放出 足够多的内存. JDK 5 似乎没有展示出这个bug,并且似
乎已回升更理智的默认值。
JBoss/Java on Linux
如果你正在运行JBoss AS在Linux服务器上,你应该看看这篇文章的作者: Andrew Oliver, Jboss事业部, Red Hat公司, 顾问 ,在 在Linux服务器上怎么优化Jboss/Java Tomcat
???编辑你的
server/slim/jbossweb-tomcat5?.sar/server.xml 文件
XML文档. 例如, HTTP 连接器:
???检查你正在使用的连接器的
maxThreads=\ minSpareThreads=\ maxSpareThreads=\ enableLookups=\ redirectPort=\ acceptCount=\ connectionTimeout=\ disableUploadTimeout=\ ???你应该有多于你最大预期 25%(经验法则)的线程(maxThreads)来处理负载(将来一次性的并 发访问) ???你应该有???你应该有 minSpareThreads 等于恰好比你正常负载多一点 maxSpareThreads等于恰好比你峰值负载多一点 ???minSpareThreads 意思是 \启动准备就绪, 总是保持至少这些线程来等待处理\???maxSpareThreads means \如果我们总是超过 minSpareThreads那么总是保持 maxSpareThreads 来等待处理\ ???移除任何不需要的值和日志。如果你不用 JBoss的安全,移除这个安全值 (见下面). ???Precompile(预编译) JSPs. (这个内置的编译器非常的会,它可能对于小型站点不值得做.) ???在你的 sever/slim/jbossweb-tomcat50.sar/conf/web.xml 里关闭开发(\)模 式 RMI的远程调用 默认情况下, JBoss为进来的每个RMI请求创建一个新线程. 在一个大系统中这一般不是高效率的. 其次,它允许无限制的连接在性能或者通信峰值或者run-away 连接方面创建客户端可能是危险的。为了补救这个你应该考虑转向被集中的池请求. ??????? 编辑 server/slim/conf/standardjboss.xml 通过改变每个XML分段读数把所有代理绑定改变成被集中的池请求: ??????? 到 JBoss也有大部分无文件证明的PooledInvokerHA你可以试试。 Log4j 日志在性能方面也有重要的影响. 改变日志级别跟踪能给JBossAS 带来蠕虫一样的速度。改变级别为 ERROR (或者WARN) 能引人注目的提升速度。 ???默认情况下, JBoss 的日志被打印到控制台和server.log文件里并且它默认使用的日志级别 是 \ ???考虑不记录到 System.out (你也能仍旧想改变方向以抓取JVM 错误) ERROR. 观察JBoss的log4j配置文件的变化,你可以在其运行的时候 ???考虑改变日志的级别为 改变这个配置。 ???给你的 java class层次增加一个类别过滤器. 关掉打印到控制台的日志(console logging): ???编辑 server/slim/conf/log4j.xml ???改变下面的 XML 片段: 修改成 ???然后你可以删除此片段: 改变日志的级别: ???编辑 server/slim/conf/log4j.xml ???移除/注释 这些 XML 片段: ???改变这个 XML片段以改变root类别: 看上去像这样 另外,如果你使用了hibernate的话: ???编辑 server/slim/conf/log4j.xml ???增加如下 XML 片段 最后, 在log4j中也许是最重要的事情,在你拥有的 class 结构上确保你的极限的日志级别. 假设你正在使用的log4j打算不向System.out打印任何东西. 这将大大的降低log4j的额外开销,并且允许你完全享受益处,像如果调用(log.isDebugEnabled())....如果你那么做,那么你的代码中的所有日志都将通过appender进行格式化, 这个threshold 在appender将被从日志消息中去除出去. 它能产生大量的垃圾信息。假设你的java package 以“a.b”开始的话, 在log4j.xml增加一些像这样的信息: 这个可以增加到你在org.apache 和 org.jboss (见上文)中找到过滤类别的同一区域. 部署扫描器(Deployment Scanner ) ???部署扫描器每隔???见下面的瘦身 5秒扫描一次,在比较慢的文件系统上尤其吃周期 (*cough* NTFS *cough*). stuff on ,怎么调整秒数以至于它发生的不那么频繁或者不全部发生。 无状态会话Beans(Stateless Session Beans ) ???EJB 1.x-2.x 无状态会话 beans operate with an ill-advised pooling model (required by the specification). 如果你find你需要考虑设置比默认(10)实例要多的最小线程池的大小: 编辑 server/slim/conf/standardjboss.xml, 向下滚动: 并找到: 改变它为: 在很大程度上一种服务器环境中不希望这些池增长和缩减(因为它导致内存碎片,不如潜在的堆使用). 从性能上来说, nuber要足够的大以提供保证你的所有请求不阻塞的服务。 CMP 调整 ???读这个链接: [url]http://www.artima.com/forums/flat.jsp?forum=141&thread=24532[/url] ???和这个链接: [url]http://www.onjava.com/pub/a/onjava/2003/05/28/jboss_optimization.html[/url] ???现在 ditch CMP 和使用JBossHibernate 代替 连接池(Connection Pools) ???不要使用 XA版本,除非你真的知道你需要使用它. XA连接的性能不好. ???与其在可用的地方利用数据库特定的\支持\检查连接),或者利用数据库特定驱 动的fail-over支持倒不 瘦身 当不使用mail-service服务的时候 (J2EE 标准的 JavaMail 客户端) ???移除???移除 server/slim/deploy/mail-service.xml server/slim/lib/mail* (mail-plugin.jar, mail.jar - JavaMail stuff) ???移除server/slim/lib/activation.jar (JavaMail使用的Java 活动框架【Java Activation Framework】) 当不使用缓存失效服务的时候 (一般在集群配置里作为CMP选择一个beans用与失效缓存) ???移除 server/slim/deloy/cache-invalidation-service.xml 当不使用J2EE客户端部署服务的时候(这不是一个很有益的J2EE规格必须服务,对于EAR application-client.xml描述符) ???移除 server/slim/deploy/client-deployer-service.xml 当不使用集成HAR部署和Hibernate会话管理服务的时候 ???移除???移除???移除???移除 server/slim/deploy/hibernate-deployer-service.xml (HAR support) server/slim/lib/jboss-hibernate.jar (HAR support) server/slim/lib/hibernate2.jar (Hibernate itself) server/slim/lib/cglib-full-2.0.1.jar (used by Hibernate to create proxies of POJOs) ???移除server/slim/lib/odmg-3.0.jar (由hibernate使用的一些傻瓜试的对象-关系映射 行为是从一些傻瓜式的委员会来的[goofy committee][url]http://www.service-architecture.com/database/articles/odmg_3_0.html[/url]) 不使用 Hypersonic的时候 (在生产环境里你可能不使用这个) 注意在默认配置里 JBossMQ使用 DefaultDS名字同样被部署,用于为Hypersonic映射. 在配置上对于其他选择的更多信息,见 JBoss MQ Persistence Wiki pages . ???移除???移除???移除 server/slim/deploy/hsqldb-ds.xml server/slim/lib/hsqldb-plugin.jar server/slim/lib/hsqldb.jar 不使用 JBossMQ 的时候(我们的 JMS 服务器) ???移除???移除 the entire server/slim/deploy/jms directory server/slim/lib/jbossmq.jar 不使用 HTTPInvoker的时候 (从RMI到HTTP的隧道) ???移除 the entire server/slim/deploy/http-invoker.sar 文件夹 不使用 XA 数据源的使用 (分布式 and/or 可恢复的事务) ???移除 server/slim/deploy/jboss-xa-jdbc.rar 如果你不需要JMX-Console 然后删除它 ???移除 server/slim/deploy/jmx-console.war ???使用别的方法 使它安全 如果你不需要制造JMX调用RMI (警告the shutdown.sh 是否这样做) ???移除???移除 server/slim/deploy/jmx-invoker-adaptor-server.sar server/slim/deploy/jmx-adaptor-plugin.jar 顶替 ???或者你可能想正好想用安全的 the JMX invoker-adaptor 如果你不需要web-console ???移除 server/slim/deploy/management/web-console.war 如果你不需要JMX的JSR-77扩充 ???移除 server/slim/deploy/management/console-mgr.sar 如果你需要web-console 或者 jsr-77 扩充的其中之一 ???移除 server/slim/deploy/management directory entirely 如果你不使用控制台/email监控警报 ???移除???移除 server/slim/deploy/monitoring-service.xml server/slim/lib/jboss-monitoring.jar ???你现在能删除从来没有引用的 server/slim/conf/xmdesc/ClientUserTransaction-xmbean.xml 文件 如果你不需要持久化MBean(persistent MBean )特性 (默认情况下,没有JBoss MBeans使用它...yet) ???编辑 server/slim/conf/jboss-service.xml???移除/注释这个 文件 XML片段 xmbean-dd=\ data/xmbean-attrs ???既然server/slim/conf/xmdec/xmdesc/AttributePersistenceService-xmbean.xml已经不在 被引用,你也可以删除它。 如果你不使用RMI类装载器 (在服务器上利用classes从客户端装载代码) ???vi 编辑 server/slim/conf/jboss-service.xml文件 XML片段 ???移除/注释这个 和 ???修改 XML片段 (注意: 在JBoss 4.0里,是在server/slim/deploy/ejb-deployer.xml文件里 的一点设置): 或者选择性的移除WebServiceName? depends/attribute. 如果你只想使用 JBoss Naming locally (没有 RMI 客户端) ???用 vi打开 server/slim/conf/jboss-service.xml文件 XML片段 ???更改下面的 xmbean-dd=\ ... ... ... 改写 xmbean-dd=\ ... ... ... 该RmiPort 大多是可选的,但是它意味着我们将不绑定到1098端口,以便这是有益的. 你也可以从相同的XML区域删除此行,来删除相关联的线程池: proxy-type=\jboss.system:service=ThreadPool 和它自己的线程池块: 如果你使用它,从JMX控制台(显示JNDI命名树) 此JNDIView MBean 是非常有用的, 除非你不使用它。 ???使用 vi打开 server/slim/conf/jboss-service.xml ???删除 xmbean-dd=\ ???你可以也删掉 server/slim/conf/xmdesc/JNDIView-xmbean.xml 文件 如果你不使用JBossSX, 我们为EJBs或者Web层组件继承的基于JAAS的安全 (then you deserve to be flogged and I hope you get hacked but thats another story): ???使用 vi打开 server/slim/conf/jboss-service.xml ???删除 ???也移除/注释: ???如果你使用 JBossMQ,你将需要从 server/slim/deploy/jms/jbossmq-destinations-service.xml文件的所有测试 queues/topics中删掉任何一个 (优先的)或者注释掉他们的安全性信息. 如果你选择保持示例topics/queues增加如下注释: name=\ name=\ ger name=\ name=\ ???如果使用 JBossMQ ,你也需要编辑server/slim/deploy/jms/jbossmq-service.xml 和变更 InterceptorLoader? XML 片段,像下面这样: ???你也需要注释或者删除(从 server/slim/deploy/jms/jbossmq-service.xml文件): ???修改死亡信队列项(server/slim/deploy/jms/jbossmq-service.xml) 注释掉安全源: name=\ ???在 server/slim/deploy/jms/jms-ds.xml 文件中修改JmsXA 项如下: ???如果使用 JBoss 4, also do this 2 things: 文件中, 注释下面的: ???在 conf/login-config.xml ???和在 deploy/hsqldb-ds.xml文件中注释: 如果你不使用池请求(Pooled Invoker)If you are not using the (见调优章节,也也许想使用池请求) 然后: ???使用 vi打开 server/slim/conf/jboss-service.xml 文件 ???删掉: 如果你不希望使用 BeanShell deployer ???使用 vi打开 server/slim/conf/jboss-service.xml 文件 ???删除或者注释 ???删除 server/slim/bsh* (bsh-deployer.jar, bsh-1.3.0.jar) 如果你不使用热部署文件到server/slim/deploy 文件夹,而从外部重启JBoss: ???使用 vi打开 server/slim/conf/jboss-service.xml 文件 的片段: ???改变这个 XML ... 改为(加入): ... ???就这个性能透视而言,看其他建议的调整章节 如果你不使用集群 ???最好的方法就是从\配置启动,而不是使用\配置启动. 然后从\配置里带来 的一些各种服务,你在\配置里没有使用. ???如果你必须从“all”配置启动: o 移除 server/slim/farm o 移除o 移除o 移除 server/slim/deploy-hasingleton server/slim/deploy/cluster-service.xml server/slim/deploy/tc5-cluster-service.xml (或者 在4.0.4或者以前的版本上的 server/slim/deploy/tc5-cluster.sar) o 移除o 移除 server/slim/deploy/deploy.last/farm-service.xml server/slim/deploy/deploy-hasingleton-service.xml o 进入到 server/slim/deploy/jms 文件夹, 删除它的内容,并从 server/default/deploy/jms文件夹复制他们到这里. o 编辑 server/slim/deploy/jbossweb-tomcat55.sar/META-INF /jboss-service.xml 移除下面的片段: 如果你不使用分布式(集群)web会话(sessions) ???移除 server/slim/deploy/tc5-cluster-service.xml (或者 在 4.0.4或者以前的版本上的 server/slim/deploy/tc5-cluster.sar) ???编辑 server/slim/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml 移除这 个片段: 如果你不使用Farm服务 (复制部署) ???移除 server/slim/farm ????移除server/slim/deploy/deploy.last/farm-service.xml JBoss AS的调优与瘦身就翻译完了,翻译的不好,请谅解。还有就是这也只是看看,到底用途和状况怎么样,还需要具体的实践工作
正在阅读:
Jboss瘦身和调优03-12
向日葵的花语,,向日葵的花语寓意02-15
用友U8存货核算流程01-24
8 常见故障处理流程与操作 - 图文11-05
浙江省文物保护科技项目申请书04-01
优秀少先队员主要事迹材料07-31
EKL型水文测流缆道系统中水深测验误差原因分析(精)12-13
中考化学知识点复习大全 - 图文03-25
生僻成语大全(3000字)05-25
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 瘦身
- Jboss
- 2104年度第一学期四年级语文教学计划
- 优品课件之第四课《了解基本国策与发展战略》活动教学建议
- 通信工程费用编审人员申报操作指南更新版 - 图文
- 软件工程导论-期末题库(完整版)
- 第一学期教学计划 2019学年度第一学期德育工作计划 精品
- 小学预防和处置校园突发事件的应急预案
- 吉林省长春市九年级语文上册第三单元10曹刿论战教案1长春版
- 浅谈湛江近几年植物应用的观感
- 江西萍乡报告 - 图文
- 北京建委租房合同范本-合同范本模板
- 材料成形基础-复习题2013
- 外贸企业出口退税100问
- 人生要避开的26个心灵陷阱
- 部编本人教版小学四年级语文上册第八单元第27课《故事二则--扁鹊
- LCD2004 STC IAP154K61S4驱动程序及例程
- 2019-2025年中国猪伪狂犬疫苗行业市场竞争态势研究报告(目录)
- 岳麓版高中历史必修二复习提纲特别全 细致
- 浅析中国海外代购的兴起与发展
- XX三年级品德与社会下册期中试卷(含答案)
- 财政学大学期末考试总结