性能问题诊断基础_第1页
性能问题诊断基础_第2页
性能问题诊断基础_第3页
性能问题诊断基础_第4页
性能问题诊断基础_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EAS系统管理员

—EAS性能问题诊断基础讲师:黄云志金蝶顾问学院名词解释EAS部署模型EAS性能问题分类EAS性能问题诊断与分析总目录了解性能问题主要分类掌握性能问题处理流程掌握性能问题基本诊断方法课程收益全国金蝶认证唯一指定丛书金蝶顾问学院认证产品部组编《金蝶认证教材—EAS系统管理员》《金蝶认证课件—EAS系统管理员》《金蝶认证考纲和考题—EAS系统管理员》课程介绍学习EAS性能问题的主要分类及排除手段;学习EAS性能问题的日志收集及诊断;时间:40%专业知识+20%产品演示+40%操作练习;课程介绍JVM

java虚拟机,java程序运行在java虚拟机中,它能模拟实际处理器的结构,解释字节码,并且拥有自己的内存空间。因为有jvm,所以java可以跨平台

GC

java的内存是通过垃圾回收机制来回收的,一次gc操作,就是一次回收内存RPC

该课件提及的rpc,是指金蝶自主开发的ORM-RPC协议,用于eas的远程调用,rpc日志则是记录从eas客户端调用到应用服务器,应用服务器到数据库这一过程的性能数据,用于性能分析线程堆栈

指程序运行时的方法调用过程,分客户端和服务端堆栈,通过对其的分析,可判断目前eas在运行什么方法调用,在做什么操作名词解释统计分析(统计信息收集)收集数据库中对象的详细信息,并存储在相应的数据字典。因为目前数据库优化器采用的是基于成本的规则,需要这些信息生成最优的执行计划来运行sql语句。换页空间

用作虚拟内存的空间,unix、linux等操作系统会将物理内存做为文件缓存使用,通过对

换页空间使用率的高低观察,可判断操作系统内存是否吃紧磁盘IO

对磁盘的读写操作,尤其数据库文件,会涉及到大量的磁盘IO内存溢出程序运行要用到的内存大于虚拟机能提供的最大内存内存泄露对象有被引用,但程序以后不会再使用这些对象,这些对象不能被GC回收,然而它却占用内存。名词解释EAS部署模型-网络图客户端性能网络性能应用服务器性能数据库性能EAS部署模型-部署图(6.0)支持本机和多机集群一台机器可以部署多个EAS组成本机集群。可以将多个服务器上EAS组成多机集群。两种模式可以混合使用。异构的应用服务器之间可以组成集群。自动负载均衡和高可用特性:大并发时减少单点内存占用,降低故障几率;根据预设权重以及运行期的实例负荷情况进行自动负载均衡;当实例健康状态恶化,无法自行恢复时,系统会主动重启相应的实例。实例因故障失效后,客户端能重新连接到正常实例,且当前工作内容不会丢失。在运行期可以动态地装载或者卸载EAS运行实例。自主集群技术:不依赖操作系统或者应用服务器的集群技术。EAS部署模型-EAS集群模型特点EAS性能问题分类—症状性能问题症状系统已经瘫痪,不可用系统整体非常缓慢部分功能点缓慢功能点卡住,“假死”状态应用服务器或数据库服务不能启动EAS性能问题分类—排查手段序号问题描述分类排查手段1系统大面积报错,提示与服务器失去联系,系统已经瘫痪

应用服务器宕机1、通过管理控制台查看实例的状态

2、通过客户端修改服务器rpc端口号以测试各个实例是否能登陆数据库宕机数据库连接工具或命令(sqlplus)数据库连接泄露服务器未宕机,所有客户端登陆报错,搜索apusic日志中是否有"Resourceunavailable"的错误信息

2系统整体非常缓慢;大面积出现白屏;难以登录;响应时间衰减严重服务器资源消耗严重查看cpu及内存使用情况数据库资源消耗严重查看cpu及内存,io使用情况数据库阻塞1、Oracle可通过em查看顶级会话是否出现一片“红色”及实例锁

2、sqlserver可查看活动监视器网络问题ping-l1000服务器ip,响应时间在50ms以下,丢包率2%以下下载更新导致服务器端网络阻塞大量客户端做更新操作,同时网络阻塞,排查方法同上3某些功能点长时间等待或导致客户端“死机”数据库阻塞同上述数据库阻塞功能点性能问题最终能操作完成4部分功能点慢功能点性能问题其他功能点正常5部分客户端缓慢网络问题或客户端自身配置问题其他客户正常6EAS服务器或集群不能启动N/AN/A7数据库不能启动N/AN/A结合案例来对如下问题进行分析诊断功能点缓慢功能点“卡死”部分客户端存在性能问题整体性能缓慢系统瘫痪EAS性能问题诊断与分析概述

属于单点功能的性能问题,现场反馈只是特定功能点慢相关日志收集rpc日志客户端线程堆栈

涉及到的知识点RPC日志分析使用jconsole工具收集客户端线程堆栈

诊断与分析—功能点缓慢

功能点缓慢—处理流程收集rpc日志客户端(eas\client\logs):rpcD.V60SP1.log服务器(server\profiles\server(N)\logs):RpcSqlD.V60SP1.log,SqlPlanD.V60SP1.log收集方法参考《EAS性能问题判断定位与日志收集》分析rpc日志记录操作过程中客户端与应用服务器,应用服务器与数据库服务器之间的交互过程交互执行的动作、消耗的时间、数据流量等定位问题客户端计算耗时网络问题应用服务器计算耗时Sql语句耗时

功能点缓慢—rpc日志分析

功能点缓慢—rpc日志分析

场景

如下图,两个结束时间之间存在近30秒的调用,而rpc的调用时间却为0,说明时间消耗在客户端的计算,需要知道程序具体在执行什么操作耗时(虽然知道是refresh方法,但还不能准确定位)

收集工具利用jdk自带的工具jconsole来收集。每个eas客户端的安装目录下都有安装jdk,进入jdk安装目录(如eas\clientjdk\bin),

运行jconsole.exe

功能点缓慢—客户端线程堆栈收集

功能点缓慢—客户端线程堆栈收集概述

客户端操作某个功能点长时间没反应,表现为假死状态相关日志收集服务端线程堆栈客户端线程堆栈数据库锁信息

涉及到的知识点如何打开并分析服务端线程堆栈如何使用em工具查看阻塞如何查看sqlserver的锁等待

诊断与分析—功能点“卡死”

功能点“卡死”—处理流程是否有相关功能堆栈信息查看服务器线程堆栈根据堆栈信息判断是否在等待数据库返回查看客户端线程堆栈否是查看数据库锁或阻塞是分析服务端代码逻辑否分析客户端代码逻辑确定功能点运行在哪个实例上用户监控客户端直接配置指定的server(实例)通过管理控制台获取该实例的http端口在浏览器中输入如下URL

端口号/easportal/tools/threaddump.jsp

功能点“卡死”—查看服务器线程堆栈

功能点“卡死”—查看服务器线程堆栈Oem的操作详见《OracleEnterpriseManager(OEM)基础管理》

功能点“卡死”—查看oracle的阻塞

功能点“卡死”—查看oracle的阻塞ManagementStudio->对象资源管理器->数据库实例->管理->活动监视器

根据上图,进程51的阻塞者为56,而56无阻塞者,并且阻塞一栏为1,说明56为阻塞源头。查看该56号进程的sql并定位问题功能点“卡死”—查看sqlserver的锁等待概述

部分客户端存在性能问题,或者不同网段的客户端存在性能问题相关日志收集客户端eassupport涉及到的知识点网络诊断客户端配置

诊断与分析—部分客户端存在性能问题子公司一般都是通过外网来访问总部eas系统的,网络质量不稳定对EAS的运行性能可能产生较大的影响,网络质量的评价指标主要包括带宽、延迟、丢包率等。

要保障EAS正常运行,对于网络质量有如下要求:每客户端128kbit的带宽保障;

多人共用出口时,带宽要求:客户端数量×128/2(客户端数超过5人),客户端数量×128/3(客户端数超过10人);网络延迟低于50ms(为理想值)小于100ms为可接受值;如果超过100ms,响应性能会出现明显衰减不稳定现象。丢包率小于2%。(附:电信服务规范,因特网数据传送业务的服务标准第项IP包丢失率<2%)部分客户端存在性能问题—网络问题连通性测试ping<ip>-l1000–n100

,响应时间少于50ms,丢包率少于2次。文件下载测试从应用服务器进行http文件下载,速度应大于16KB/S。下载文件可正常打开,没有错误。eassupport工具收集最新版本会自动进行ping、rpcping、tracert、下载测试等。流量监测DUMeter,Cacti。发现流量异常,判断是否有病毒等问题。部分客户端存在性能问题—网络问题

某些输入法导致JVM异常退出查看client/bin或者桌面,通常能看到hs_err*.log文件,打开可看到如下字样:

这里的最后一行UNISPIM6.IME是导致异常退出的模块名字,google一下,通常就会知道是什么输入法,甚至其版本号。JDK的Bug

同上,通常能看到hs_err*.log文件

部分客户端存在性能问题—窗口消失查看客户端日志文件(client.log)java.lang.OutOfMemory:Javaheapspacejava.lang.OutOfMemory:PermGenspace

修改set-client-env.bat中JVM_MAX_PERMSIZE变量的值为128或者更大,若无,请增加一行并设置java.lang.StackOverflow出现这样的异常信息,通常是产品Bug引起,需要需求反馈系统提单处理

部分客户端存在性能问题—内存溢出异常概述

现场反馈整体性能衰减,所有功能点运行缓慢相关日志收集Rpc日志客户端eassupport、服务端eassupport数据库配置信息、Awr报告

涉及到的知识点操作系统性能数据收集Cpu,内存,io等性能指标应用服务器与数据库服务器参数调优OEM查看顶级活动gc日志分析

诊断与分析—整体性能缓慢

整体性能缓慢—处理流程参数检查应用服务器参数设置数据库服务器参数设置查看应用服务器使用资源cpu消耗内存消耗查看数据库服务器使用资源cpu消耗内存消耗IO等待sql顶级活动Oracle数据库整体性能缓慢—数据库参数检查参数说明sga_max_size(物理内存*80%)*80%sga_target等于sga_max_sizepga_aggregate_target(物理内存*80%)*20%processesmax(500,EAS并发用户数)open_cursors建议改为500optimizer_index_caching调整基于成本的优化程序的假定值,建议值90optimizer_index_cost_adj索引方式与全表扫描成本折算比例,建议值50_b_tree_bitmap_plans在可以使用两叉树索引时,不考虑使用位图索引,建议值FLASE(视情况修改)_no_or_expansion避免绑定变量复杂的语句解析执行计划时消耗过多内存,建议值TRUE(视情况修改)plex_view_merging避免使用内部复杂视图合并,建议值FALSE(视情况修改)服务器JDK参数优化整体性能缓慢—应用服务器参数检查#参数配置文件:eas\profiles\server(N)\bin\set-server-env.bat(sh)1JVM_INITIAL_HEAP_SIZE最小堆内存,设置Xms、Xmx相等以避免在每次GC后调整堆的大小,默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制,大于70%时,JVM会减少堆直到-Xms的最小限制2SETJVM_MAX_HEAP_SIZE最大堆内存,非window系统设置为1536m,windows系统设置为1024m3JVM_VERBOSE_GC生成gc日志,默认为true4JVM_CUSTOM_PARAMSibmjdk-Xgcpolicy:gencon-Xmn200m(分代垃圾回收)Sun(hp)jdk-XX:NewSize=200m-XX:NewRatio=6-XX:MaxTenuringThreshold=1-XX:+UseParallelOldGC-XX:+DisableExplicitGCAIX:topasHpunix、linux:topWin:任务管理器,性能监视器整体性能缓慢—应用服务器性能数据收集这是最常见的引起系统缓慢的因素,主要由如下两个原因引起程序问题(复杂计算或死循环等)

通过收集服务器线程堆栈信息来分析jvm内存紧张通常jvm内存参数设置过低、GC参数设置不当或者应用存在内存泄漏,可引发频繁FUllGC,会出现整体CPU利用率偏高的情况

注:如果出现内存溢出(也就是最终导致无可用内存分配),通常系统会宕机,但在某些jdk下(hpjdk),jvm会尝试不断回收内存(fullgc),造成系统大量消耗cpu,系统近乎瘫痪,这种情况的出现后,要手工收集内存文件(heapdump文件),用于事后分析,并果断重启eas服务。整体性能缓慢—应用服务器CPU持续高消耗案例(症状:应用服务器cpu占用高,系统运行缓慢)

AIX系统,用topas查看资源使用情况整体性能缓慢—应用服务器CPU持续高消耗判断是否为内存紧张导致

整体性能缓慢—应用服务器CPU持续高消耗判断是否为内存紧张导致

整体性能缓慢—应用服务器CPU持续高消耗手工生产heapdump文件和线程堆栈用于分析,同时重启有异常的eas实例HpJDK 1、$EAS_HOME\eas\profiles\server*\bin\set-server-env.sh里加上参数: JVM_CUSTOM_PARAMS="-XX:+HeapDump“2、运行kill-3进程号

IBMJDK

http://应用服务器IP:http端口号/easportal/tools/dump.jsp?type=heapdumpSun

JDK

用JDK自带的jmap程序直接收集Windows系统:jmap-dump:format=b,file=<filename><pid> Linux系统:jmap–heap:format=b<pid>

整体性能缓慢—应用服务器CPU持续高消耗原因存在大量的全表扫描存储设备的IO吞吐能力有限解决办法优化sql语句,查看索引是否建立正确,消除全表扫描检查存储设备是否存在瓶颈或者故障并排除。检查操作系统、数据库参数配置是否不当并调整整体性能缓慢—IO等待率高整体性能缓慢—IO等待率高整体性能缓慢—OEM查看顶级活动概述

现场反馈客户端大面积报错,无法登陆,系统不可用相关日志收集服务端eassupportoracle数据库alert信息·Heapdump文件收集、打开、分析连接泄露

诊断与分析—系统瘫痪

系统瘫痪—处理流程应用服务器宕机数据库服务器宕机数据库连接不可用Servertrace查看服务器是否有异常停机$EAS_HOME\eas\profiles\server*\logs\server.trace

说明:[killserver]是人工手动执行killserver.sh[Autokillserver]是管理控制台自动杀掉(CC通知控制台重启实例时的记录)[Stop]人工手动停止[Start]启动JDKbug宕机$EAS_HOME\eas\profiles\server*\bin\hs_err_pid*内存溢出(OOM)宕机IBMJDK出现内存溢出宕机时会自动在如下目录生成内存镜像文件。其他JDK默认情况下则不会。$EAS_HOME\eas\profiles\ser

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论