NMC最佳实践用友软件股份有限公司支持服务事业部郜耿志2014年5月20日支持服务官方微信常见问题客户反映某个业务一直存在效率问题,如果准确定位慢在何处?客户反映正在执行的业务很久都没有执行完,如何获知这个操作现在正在进行到哪一步?哪个环节出了问题?如何查看当前NC应用压力如何?客户服务器宕机,如何分析宕机原因如何知道客户服务器打了多少补丁?如何对补丁进行回滚NMC实践日志录制与日志分析单线程查看查看NC应用压力内存溢出后信息查看补丁工具使用问题1客户反映某个业务一直存在效率问题,例如需要10分钟,如果准确定位慢在何处?NC应用的拓扑结构•NC的访问路径:客户端->网络->应用服务器->数据库客户端网络应用服务器数据库界面显示远程调用执行远程方法执行SQLSQL调用Was参数Nclogsjavacore后台日志参数执行语句tracert下载流量ping客户端日志cpu客户端参数日志数据库分析日志录制日志抽取日志分析日志录制简单高效的工作流用户用户AA数据库Step1遇到问题Step3将打包的日志发给服务中心Step4借助NMC日志分析找到问题优化step5反馈step2借助NMC录制日志研发人员录制日志RemotelogLevel设置当前用户在服务器端的日志输出级别。选择【DEBUG】ClientlogLevel设置当前用户客户端的日志输出级别。选择【DEBUG】RemoteCall选项设置客户端日志是否输出远程调用堆栈,如果需要将服务器的日志和客户端的调用堆栈关联起来,则需要将remotecall选中。勾选【RemoteCall】点击此处停止录制点击此处导入日志导入或者抽取nclogs查询远程调用(统计信息)联查sql联查客户端日志查询报错联查详细日志日志分析-对NC日志分析思路分析日志日志分析基于SQL的分析图形分析分析日志日志抽取功能概述将NC的日志和监控服务产生的日志(比如:CPU、JVM、内存、onlineuser、客户端性能日志)抽取到本地日志数据库,用于后续的分析。适用场景查询历史操作查询不定期出现的错误日志抽取日志分析-主要的表SummaryNCLOG性能统计表LogdetailNCLOG明细表Jvmlogjvm日志表Cpulogcpu日志表Memorylog内存日志表Operator操作员信息表Onlineuser在线用户表Client客户端性能表Message消息表Snapshot快照表日志分析-日志数据库./logdb/logdb.mdf日志数据库,默认为ACCESS,可以选择oracle作为分析库。可直接删除./conf/resource/logdb.xml定义表结构./conf/resource/logdb.mdf原始日志库单线程查看对单个线程穿透到数据库。•sql执行时间•sql执行数量•sql执行记录数对单个线程进行独立跟踪。联查业务辅助余额表查询单线程查看联查业务查看NC系统压力进程监控•JVMMax•JVMTotal•JVMFree线程监控•当前正在执行的任务数•等待事件进程监控进程监控常用功能中间件-管理-重启对选择的中间件进行重启,支持右键。中间件-管理-定时设置定时重启,支持右键。中间件-管理-DUMPHEAP对所选择的中间件生成HEAPDUMP,支持右键。中间件-管理-DUMPTHREAD对所选择的中间件生成THREADDUMP,支持右键。中间件-GC对所选择的中间件做FULLGC,右键功能。中间件-监控-线程监控对选择的中间件穿透到线程监控节点,支持右键。线程监控等待事件等待事件获取数据库连接SQL翻译translatesql执行SQLexecsql读数据库结果集readresultset调用EJBexecnc.itf.******序列化SerializeObject往客户端写数据writetoclient调用masterbegincallmaster线程到数据库的映射mapthreadtodb回滚rollback提交commit内存溢出后信息查看Javacore、Heapdump生成•Javacore日志分析•Heapdump日志分析快照分析•宕机前日志Javacore日志分析HeapDump日志分析快照分析补丁工具使用补丁管理支持补丁上传,应用,回滚对服务器代码版本检查补丁管理NMCNC集群MasterncMem01ncMem02补丁.jar上传补丁档案库代码备份库回滚和备份补丁.jar补丁.jar应用补丁管理架构