1/7用友股份-LE支持服务业务本部技术方案--《NC56系统突然变慢分析案例》建立日期:2014-01-20修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2014-00042/7文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围发布人姓名所属部门发布时间内部员工伙伴客户日期作者所属部门邮件地址版本2014-01-20李楠技术支持部V1.0版本领域模块备注3/7目录NC56系统突然变慢分析案例..................................................................................4一、系统环境............................................................................................................4二、问题描述............................................................................................................4三、检查分析............................................................................................................5四、解决方法............................................................................................................6五、总结....................................................................................................................74/7NC56系统突然变慢分析案例注:此解决方案涉及数据库操作或代码操作,请由计算机专业人士操作,并且操作前请做好备份工作!一、系统环境NC56数据库p550中间件x3850二、问题描述前日刚做过系统巡检,NC系统运行正常,但是发现数据库服务器报”battereypackfailure”错误,可能和某阵列卡的供电模块故障有关,建议用户联系硬件厂商对服务器进行硬件检查.第二日,系统缓慢紧急现场支持,从现场发现的现象来看,大量线程运行缓慢,且都是在thread=http-10.1.16.5-9090-Processor49status=RUNNABLEelapsetime=18578operator=0001AA100000000018FZremoteAddr=10.20.2.27.1496remoteCallMethod=nc.itf.gl.voucher.IVoucher.getCorrectVoucherNosqlcosttime=16;readresulttime=0;readrownum=1;writetoclienttime=0;writetoclientbytes=0;readfromclientbytes=2431;notclosedconnectioncount=0#threadstackjava.net.SocketInputStream.socketRead0(NativeMethod)或者thread=http-10.1.16.5-9090-Processor59status=RUNNABLEelapsetime=164687operator=1034AA100000000001KTremoteAddr=10.27.120.240.49719remoteCallMethod=nc.itf.uap.pf.IplatFormEntry.getFilteredReceivedMsgssqlcosttime=0;readresulttime=15;readrownum=51;writetoclienttime=0;writetoclientbytes=0;readfromclientbytes=1107;notclosedconnectioncount=05/7#threadstackjava.net.SocketOutputStream.socketWrite0(NativeMethod)处停留三、检查分析由于是卡在socketRead和socketWrite,所以首先想到是网络问题,但是通过ping,tnsping测试没有发现网络有问题,从数据库服务器上下载应用服务器的文件(wget)速度不慢(10M/s左右的速度)。查看AWR:6/7对比下图(其他项目更大型数据库业务非常繁忙时的iostatistics数据)发现数据库IO的时间非常慢四、解决方法联想到“batterypackfailure”警告和IO性能低下的特征。咨询IBM后确认是阵列卡电源故障,该故障会导致阵列卡高速缓存无法使用,严重影响IO性能。用户更换硬件后恢复。7/7五、总结1.socket不意味这一定是网络,数据库读写数据在jdbc的角度看也是socket调用(NMC的时间占用统计也有一定的迷惑性,其中readresulttime时间为0,注意到此时这个查询为running状态,故这个时间没有可参考性)2.阵列卡设备损坏可能带来的是“间歇”性的故障表现。3.如果是linux系统可以通过dd命令测试分区的读写速度timeddif=/dev/zeroof=/分区/test.tmpbs=8kcount=300000测试写速度为8*recordsin/1024/时间s=M/stimeddif=/分区of=/dev/nullbs=8k测试读速度为8*recordsout/1024/时间s=M/s