JBoss系统健康检查文档v11.docx
《JBoss系统健康检查文档v11.docx》由会员分享,可在线阅读,更多相关《JBoss系统健康检查文档v11.docx(12页珍藏版)》请在冰豆网上搜索。
JBoss系统健康检查文档v11
XXXX客户系统健康检查报告
一、综述
应XXXX客户要求,倚博公司中间件技术专家针对客户的核心业务系统做了一次完整的系统健康检查。
整体上讲,公司的核心系统运行比较稳定,故障率和客户业务系统的MTBF(MeanTimeBetweenFailure)都比较小。
但从系统维护的管理工作的规范和完善角度讲,还未建立完善中间件的维护,监控的方案。
现阶段,主要是利用维护人员的现场应急处理经验保证系统的运行正常,未合理的规划维护流程,未确认中间件的监控指标,未建立完善的监控,预警和应急处理方案。
本文档总结了这次现场工作的各项情况,并根据现场维护人员的要求,增加了系统维护方法的扼要说明。
二、系统环境
核心业务系统
客户系统名称:
核心业务系统
OSCPU:
8
OSMemory:
16GB
OS:
RedHatAS4
KENERL:
2.6.9-42.ELsmp
JBOSSApplicationServer4.2.3
JDK:
Java(TM)2RuntimeEnvironment,StandardEdition(build1.5.0_17-b04)
JavaHotSpot(TM)ServerVM(build1.5.0_17-b04,mixedmode)
三、工作日志
2008年6月5日上午9:
30系统健康检查
四、系统健康检查详细列表
1.核心业务系统
操作系统配置检查
系统配置:
名称
建议值
实际值
是否符合要求
操作系统版本
Linux/Hp
RedHatAS4
Y
主机名
N/A
App1
Y
CPU
>1GHZ
8*1.9G,
Y
内存
>2G
16G
Y
磁盘空间
>20G
360G
Y
系统内核参数:
名称
建议值
实际值
是否符合要求
说明
文件句柄数
4096或更大
8192
Y
进程的最大文件句柄数
JAVA虚拟机配置检查
虚拟机安装路径:
/opt/jdk1.5.0_17/
名称
建议值
实际值
是否符合要求
说明
JVM版本
1.5
JDK1.5.0_17
Y
JVMHEAP初始值-Xms
514M
1024M
Y
JVMHEAP最大值-Xmx
512M-1536M
1536M
Y
Permsize
64M
256M
JBOSS配置检查
安装路径:
/opt/jboss/jboss-4.2.3.GA
参数
值
建议值
说明
线程数
400
一个CPU对应50个线程左右
线程的个数应与CPU的处理能力匹配。
JSP编译的调试信息标志
false
false
生产环境中建议将JSP编译调试功能关闭,减少因编译占用系统资源对系统的影响。
开发模式的设置
false
false
应用使用的连接池数量
400
400
生产环境中建议将连接的数量与线程总数保持统一。
应用使用的连接池初始值
100
400
最小值和最大值保持一致,避免运行状态在创建连接时消耗系统资源。
连接池PreparedStatementCache
无
10
缺省JBOSS服务器是不会CachePreparedStatement对象的,为了提高性能我们可以设定每个连接Cache的PreparedStatement对象的个数
运行期系统状态检查
名称
平均值
峰值
是否异常
CPU
35%以下
60%
未出现长时间CPU使用率超过100%
内存使用
3.5G以下
无页交换的情况
磁盘空间
20%
满足应用日志或者JBOSS日志所用磁盘空间要求
网络流量
200K/S
800K/S
无网络阻塞和网络风暴
运行期虚拟机状态检查
名称
实际情况
是否符合要求
说明
JVMHEAP最小值
280M
Y
JVMHEAP最大值
1100M
Y
为今天的观察结果
运行期JBOSS组件状态检查
名称
正常值
实际值
是否符合要求
说明
线程使用情况
使用率<50%
<70%
Y
启动目录core文件的检查
在JBOSS启动目录中发现“core”文件和“hs_err_pid*.log”的错误日志文件,说明系统出现过JVMcoredump和异常退出故障,故障出现在一个虚拟机的解压缩操作,希望能通过进一步与开发商,维护人员沟通找出具体的故障原因,并提出解决方案。
日志检查
名称
建议值
实际值
是否符合要求
说明
日志中Error信息检查
ReviewAllLogs
ReviewAllLogs
N
对日志中Error消息进行检查,参考下面例子。
日志文件中发现错误信息如下:
1)启动JBoss时报如下错误:
出现过一次
22:
53:
52,907ERROR[MainDeployer]Couldnotcreatedeployment:
file:
/D:
/新建文件夹/jboss-4.2.2.GA/server/default/conf/jboss-service.xml
org.jboss.deployment.DeploymentException:
-nestedthrowable:
(java.lang.reflect.UndeclaredThrowableException)
atorg.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:
196)
atorg.jboss.system.ServiceController.install(ServiceController.java:
226)
atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(UnknownSource)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(UnknownSource)
atjava.lang.reflect.Method.invoke(UnknownSource)
atorg.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:
155)
atorg.jboss.mx.server.Invocation.dispatch(Invocation.java:
94)
atorg.jboss.mx.server.Invocation.invoke(Invocation.java:
86)
atorg.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:
264)
atorg.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:
659)
atorg.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:
210)
at$Proxy4.install(UnknownSource)
atorg.jboss.deployment.SARDeployer.create(SARDeployer.java:
249)
atorg.jboss.deployment.MainDeployer.create(MainDeployer.java:
969)
atorg.jboss.deployment.MainDeployer.deploy(MainDeployer.java:
818)
atorg.jboss.deployment.MainDeployer.deploy(MainDeployer.java:
782)
atorg.jboss.deployment.MainDeployer.deploy(MainDeployer.java:
766)
atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(UnknownSource)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(UnknownSource)
atjava.lang.reflect.Method.invoke(UnknownSource)
atorg.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:
155)
atorg.jboss.mx.server.Invocation.dispatch(Invocation.java:
94)
atorg.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:
133)
atorg.jboss.mx.server.Invocation.invoke(Invocation.java:
88)
atorg.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:
142)
atorg.jboss.mx.server.Invocation.invoke(Invocation.java:
88)
atorg.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:
264)
atorg.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:
659)
atorg.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:
210)
at$Proxy5.deploy(UnknownSource)
atorg.jboss.system.server.ServerImpl.doStart(ServerImpl.java:
482)
atorg.jboss.system.server.ServerImpl.start(ServerImpl.java:
362)
atorg.jboss.Main.boot(Main.java:
200)
atorg.jboss.Main$1.run(Main.java:
508)
atjava.lang.Thread.run(UnknownSource)
Causedby:
java.lang.reflect.UndeclaredThrowableException
atorg.jboss.system.ServiceCreator.install(ServiceCreator.java:
236)
atorg.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigurator.java:
451)
atorg.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:
171)
...36more
Causedby:
java.lang.Error:
ERROR:
itturnsouttherootcauseisnotalwaysaruntimeexception!
atorg.jboss.mx.server.MBeanServerImpl.handleInstantiateExceptions(MBeanServerImpl.java:
1295)
atorg.jboss.mx.server.MBeanServerImpl.instantiate(MBeanServerImpl.java:
1237)
atorg.jboss.mx.server.MBeanServerImpl.instantiate(MBeanServerImpl.java:
286)
atorg.jboss.mx.server.MBeanServerImpl.createMBean(MBeanServerImpl.java:
344)
atorg.jboss.system.ServiceCreator.install(ServiceCreator.java:
157)
...38more
jboss-service.x配置错误,通过修改具体错误配置,并解决了这个问题。
2)NoClassDefFoundError错误,当前的类装载器不能找到这个类文件,频率:
出现一次
java.lang.NoClassDefFoundError:
Couldnotinitializeclassorg.jboss.aspects.security.SecurityActions$ContextInfoActions
atorg.jboss.aspects.security.SecurityActions.getContextException(SecurityActions.java:
467)
atorg.jboss.aspects.security.AuthenticationInterceptor.authenticate(AuthenticationInterceptor.java:
131)
atorg.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:
66)
atorg.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:
110)
atorg.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:
101)
atorg.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:
46)
atorg.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:
101)
atorg.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:
106)
atorg.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:
101)
atorg.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:
240)
atorg.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:
210)
atorg.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:
84)
at$Proxy147.getInitConfigAsInteger(UnknownSource)
atcom.police.alarm.AlarmAction.execute(AlarmAction.java:
28)
atorg.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:
431)
atorg.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
236)
atorg.apache.struts.action.ActionServlet.process(ActionServlet.java:
1196)
atorg.apache.struts.action.ActionServlet.doGet(ActionServlet.java:
414)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:
690)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:
803)
atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
290)
atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
atcom.police.filter.SystemUserFilter.doFilter(SystemUserFilter.java:
61)
atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
atcom.police.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:
37)
atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
atorg.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:
96)
atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
230)
atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
175)
atorg.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:
182)
atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
524)
atorg.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:
84)
atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
atorg.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:
157)
atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
262)
atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
atorg.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:
583)
at.JIoEndpoint$Worker.run(JIoEndpoint.java:
446)
atjava.lang.Thread.run(Thread.java:
619)
NoClassDefFoundError错误,通过找到类所在的文件,并通过正确配置或使其在正确的类路径中来解决此问题。
故障汇总
1)在JBOSS启动目录中发现“