电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

NC技术培训资料-NC性能优化.pptx

NC技术培训资料-NC性能优化.pptx_第1页
1/62
YonyouSoftwareCorporationNC性能优化用友软件股份有限公司蔡平昕2013年7月23日北京交通图性能图客户端Application基于安装的客户端基于浏览器的客户端Firewall负载均衡WebServerHTTPServerPlug-inWebServerPlugPlug-in防火墙NodeBNodeAApplicationServerWebContainerEJBContainerApplicationServerWebContainerEJBContainerApplicationServerWebContainerEJBContainerDatabaseServerDatabaseServerBusinessDataWebServer集群应用服务器集群数据库服务器集群NC系统架构介绍InternetHTTP/HTTPSClientHTTPServer轻量级web应用目前主流的业务系统都是基于三层架构的,从客户端到web服务器(如apache,ihs等),然后由web服务器做分发到应用服务器(websphere,weblogic,tomcat等),之后再通过应用服务器的连接池访问数据库,NC系统大致也是如此,只是客户端不是常见的IE,而是javaapplet。YonyouSoftwareCorporation性能是什么?吞吐量?相应时间?YonyouSoftwareCorporation如何分析性能?查看哪些内容?有哪些日志可以查看?有哪些工具可以查看?如何分析这些问题?YonyouSoftwareCorporation操作系统数据库中间件AIX-topas有哪些工具可以查看?HP-glance有哪些工具可以查看?Linux-top有哪些工具可以查看?cpu:tprof,truss,vmstat,topas,sar,nmonIOiostat,sar,topas,nmonRAMsvmon,ipcs,topas,nmon有哪些工具可以查看?Cpuusercpu高:这种情况下如果发现是个别几个进程占了大量cpu,处理起来简单,抓sqltuning,如果是进程反复变,最好结合数据库来看(awr或者statspack)syscpu高:比较难搞,需要借助os的trace工具来看,什么进程占大量cpu高,以及相关系统调用(tprof,truss)wait高:这个多半是io问题,如何分析?IOswap磁盘的io高:和内存设置有关(大多数客户的发生此类问题都是因为vmo相关的文件系统缓存控制参数(maxperm,maxclient)没改小,一般20%足以数据库的io高:看io的吞吐率和tps,要结合数据库的情况分析,可能是io配置问题,或者是数据库的操作引起的io问题,或者是数据库内存设置太小离散度、顺序读如何分析?memoryos上的内存问题,主要表现为内存pi,po比较严重在sga,pga设置合理的情况下很少出现,大部分出现此问题和vmo相关的文件系统缓存控制参数(maxperm,maxclient)有关,这2个参数不能设置太大。数据库的内存设置过大如何分析?问题现象:Nc集群启动后无法访问,经常报错,无法登陆nc,偶尔出现能够登录nc的现象。问题分析:1.根据偶发现象的特点,我们决定在集群中端口测试,来判断问题的原因。根据端口测试后发现,主serer有部分server能用部分不能用,从server能够发现也部分server不能访问。2.查看nc的日志发现有报错如下,感觉有可能部署没有成功。$$callid=$$thread=[RepCalcMngThrd]$$host=:$$userid=$$ts=2013-04-0911:33:35$$remotecall=[iufoRepCalc]$$debuglevel=ERROR$$msg=nc.bs.framework.exception.ComponentNotFoundException:Component:nc.itf.iufo.repcalc.IRepCalcQueueService,DetailMessage:Cannotfindcomponent(bothinjndiandESA)3.部署重启后发现,主server只有两个server能用,从server所有的server均可以使用。4.查看nc日志发现错误相同。5.查看WAS日志发现,EJB被停止了,没有正常启动,可见不是部署的问题。6.清理日志重新启动发现,如下错误,可见操作系统限制导致无法打开过多的文件。[13-4-913:33:08:331CST]00000023WebGroupASRVE0169I:正在装入Web模块:hrss.war。java.io.FileNotFoundException:/IBM/WebSphere/AppServer/properties/version/websphere.dtd(打开的文件过多)[13-4-913:33:08:335CST]00000023SystemOutOatjava.io.FileInputStream.open(NativeMethod)[13-4-913:33:08:335CST]00000023SystemOutOatjava.io.FileInputStream.(FileInputStream.java:135)[13-4-913:33:08:335CST]00000023SystemOutOatjava.io.FileInputStream.(FileInputStream.java:95)[13-4-913:33:08:335CST]00000023SystemOutOatsun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:85)Cpu:进程数Aixnprocmaxuproc500chdev–lsys0maxuproc=500HPmaxuprc512max_thread_proc2048kctune-hmaxuprc=512Solarismax_nprocs10+16*maxusers32768maxuprcmax_nproc–reserved_proces(5-266)操作系统限制ulimit–n6144(调整打开文件数)ulimit–u65536(调整最大用户进程数)ulimit–c(调整core文件大小)广州末项目分析内存中的文件缓存AIXvmtune-p5-P20vmo-p-omaxperm%=10vmo-p-ominperm%=5vmo-p-omaxclient%=10vmo-p-olru_file_repage=0vmo-p-omaxpin%=90Hpunixfilecache_max=10%filecache_min=5%SolarisIn/etc/system:setbufhwm=10240AIXerrpt系统异常信息日志。很多磁盘异常。Last/var/adm/wtmp登陆、注销日志/etc/security/failedlogin记录用户失败的登录信息,是二进制文件,用who命令来阅读其内容可根据需要保留60天中有用的内容,其余删除/var/adm/sulog用户使用su命令的日志可根据需要保留60天中有用的内容,其余删除/var/adm/cron/logcron的日志/var/adm/messages用于记录syslog进程的日志可适当保留最后1000行,或删除/etc/shutdown.log系统关机过程日志,用shutdown-l命令产生可适当保留最后1000行,或删除有哪些日志?Hpunix/var/adm/syslog/syslog.log一般系统日志/var/adm/sw/*.log软件安装日志日期,分析发生的相关问题/var/adm/wtmp用户登录信息用last命令查看/var/adm/btmp用户登录失败信息用lastb命令查看/var/sam/log/samlogSAM日志/etc/shutdownlog关机(shutdown)信息有哪些日志?Solaris/var/adm/messages系统错误信息/var/adm/wtmp用户登录信息用last命令查看/var/adm/syslog记录mail事件/var/adm/sulog普通用户尝试su成为其他用户的纪录YonyouSoftwareCorporation操作系统数据库中间件YonyouSoftwareCorporation有哪些工具可以查看?Awroracleem第三方工具questAlert.log实例详细日志Trace(10046等)trace日志crsd.logcrs日志Lisener.log监听日志有哪些日志?10046YonyouSoftwareCorporation如何分析?等待事件AWR参数执行计划业务数据(数据库表、实施导致)YonyouSoftwareCorporationBufferbusywaits从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个Buffer(数据块),但是导致这个现象的原因却有很多种。常见的两种是:当一个会话视图修改一个数据块,但这个数据块正在被另一个会话修改时。当一个会话需要读取一个数据块,但这个数据块正在被另一个会话读取到内存中时。Dbfilescatteredread当用户发出每次I/O需要读取多个数据块这样的SQL操作时,会产生这个等待事件,最常见的两种情况是全表扫描(FTS:FullTableScan)和索引快速扫描(IFFS:indexfastfullscan)。SQL*Netmoredatatoclient服务器端有太多的数据需要发给客户端时,也可能由于网络问题导致服务器无法及时地将信息或者处理结果发送给客户端,同样会产生这个等待。Librarycachelock这个等待时间发生在不同用户在共享中由于并发操作同一个数据库对象导致的资源争用的时候热块,内存不足这个问题引起IO忙、主要是sql效率问题网络存在问题或读取结果集太大内存争用,统计信息相关从两个awr开始Highwaitsfor'Cursor:PinSWaitOnX'&'LibraryCacheLoadLocks'withautomemorymgmt[ID731233.1]ChangesYouarealsorunningtheAutoMemoryManagementfeature(ieSGA_TARGETissettoanon-zerovalue).Youmayhavealsosetminimumvaluesforsomeoftheauto-tunedareas,buthavenotsetavalueforSharedPool(ortheminimumvalueislowcomparedtothevalueseeninAWRreports...)CauseTheissuemaybecausedorexacerbatedbyfrequentresizingoperationsfortheSharedPool.SolutionSetaminimumvalueforSHARED_POOL_SIZE,perhapsthevalueshowninAWR/Statspackreportstakenfromapeakperiod.Thiswillavoidunnecessary/frequentdynamicmemoryresizingoperationsandconsequentpossiblemutex/latch/lockcontention.再看个awrCURSOR_SHARINGexact默认值similarforce数据库参数要求oracle10g版本(64bit)8G内存db_cache_size=3500M(3.5G)--根据内存调整shared_pool_size=400M(400M)--根据内存调整large_pool_size=614400--如果用rman需要调整java_pool_size=20971520processes=200(根据具体情况调大此值,比如测试环境可以调制500)sessions=200(根据具体情况调大此值,比如测试环境可以调制500)log_buffer=5242880db_writer_processes=5open_cursors=2000workarea_size_policy=autopga_aggregate_target=2250Mpre_page_sga=true(win2000下参数)lock_sga=true(unix下参数,不包含solaris)optimizer_index_cost_adj=40optimizer_dynamic_sampling=4altersystemset"_optimizer_cartesian_enabled"=false;altersystemset"_b_tree_bitmap_plans"=false;altersystemset"_optimizer_skip_scan_enabled"=false;针对oracle11.2或更高版本,还需要执行以下命令:altersystemsetdeferred_segment_creation=false;另外统计分析一定要执行Sqlturning执行计划执行计划的重要概念什么是执行计划统计信息常见的单表访问路径常见的单表访问路径常见的单表访问路径常见的单表访问路径常见的单表访问路径常见的单表访问路径常见单表的访问路径常见的单表访问路径常见的多表访问路径常见的多表访问路径常见的多表访问路径常见的多表访问路径查看执行计划的方法ExplainplanAutotrace0recursivecalls(归调用次数)8dbblockgets(从磁盘上读取的块数,即通过update/delete/selectforupdate读的次数)6consistentgets(从内存里读取的块数,即通过不带forupdate的select读的次数)0physicalreads(物理读—从磁盘读到数据块数量,一般来说是'consistentgets'+'dbblockgets')0redosize(重做数——执行SQL的过程中,产生的重做日志的大小)551bytessentviaSQL*Nettoclient430bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient2sorts(memory)(在内存中发生的排序)0sorts(disk)(在硬盘中发生的排序)6rowsprocessedv$sql_planv$sql_plan是oracle9i中开始提供的.V$sql_plan是描述了librarycache中sharedcursor的相关信息,包含了语句具体的执行信息,通过这种方式得到执行计划输出类似explanplan,但是这种方式得到的执行计划是语句执行中实际使用的执行计划,这种方式得到的执行计划是真实的.Dbms_xplan.display_cursorDbms_xplan.display_cursor,display_cursor是oracle10g中提供的新的函数,这个的功能类似v$sql_plan,可以看成oracle对v$sql_plan做的封装,但是这个函数提供的功能非常强大.业务数据gl_voucher,gl_detail,ia_bill_b垃圾数据存货月结情况查询-----月结表没有生成arap_djzb,arap_djfb,ic_general_h,ic_general_b的异常日期问题数据权限设置不当导致效率低下。基础档案分配不当导致效率低下。审批流设置不当导致效率低下。外部交换平台没有汇总导致数据库数据量大。全月平均单价计算没有合并生成凭证,导致数据量大。总帐未记帐过多导致效率低下。预警设置过于频繁,导致效率低下。YonyouSoftwareCorporation操作系统数据库中间件中间件概述NC性能调优的基本步骤请求的转发流程:客户端->网络->Web服务器->Web容器->Ejb容器->数据库,每一次转发,都有可能成为瓶颈NodeBNodeAApplicationServer1WebContainerEJBContainerApplicationServer2WebContainerEJBContainerApplicationServer3WebContainerEJBContainerInternetLoadBalancerFirewallFirewallClientClientWebBrowserApplicationRichClientThinClientWebServer2WebServer1HTTPServerPlug-inHTTPServerPlug-inDatabaseServerDatabaseServerBusinessDataWebServerClusterApplicationServerClusterDatabaseServerCluster原则:待处理资源队列基本原则:队列中等待的请求最小化实践中,最有效的配置是使队列成为一个漏斗Nmc-----快照、NPR、jvm、线程信息、进程信息。IBMthreadandmonitordumpanalyzerforjava(jca36.jar)HeapAnalyze(ha436.jar)Jconsolejprofiler有哪些工具可以查看?nclogsnc的详细日志SystemOut和SystemErrwas标准输出和标准错误日志JVM大小默认是1MBStartServer和stopServer.logwas启停日志http_pluginapache插件native_stdout和native_stderr.logGC日志文件有哪些日志?山东某项目:NC502问题表现:nc每天宕机2次,nc无法使用,只能重启中间件解决。处理过程:3月13日还未到现场,发现一些问题moudules里面套用modules导致类加载器过多。3月14日到了现场,发现问题依旧存在,具体现象是13点系统僵死、17点系统僵死。测试过程后台没有插入任何数据。分析代码,发现一个客户端请求会调用两个web请求。3月15日决定调整webcontioner参数调整到200,来提高接入。3月15日下午决定调整数据库连接池也调整到最大200,来提高接入。3月16日监控数据库性能,修改数据库参数。分析过程首先是客户端并发上传数量太多,已经达到900多人,导致webcontioner不足。调整webcontioner后发现数据库连接池不足(怀疑连接泄漏)。继续增加java进程让webcontioner达到1200个。数据库参数调整问题最终解决.但是数据库压力很大。建议业务拆分,不要统一上传。如何分析?1、WAS性能差的几种表现(1):CPU使用不高,相关应用操作缓慢应是系统某一部分存在瓶颈,造成请求都在等待排队;可使用NMC工具查请求在哪一部分排队等待(2):CPU使用很高,相关应用操作缓慢原因一是程序算法存在问题原因二是系统中存在大对象或内存泄漏,内存达到峰值无法回收原因三是硬件资源不够问题表现:顾问你反馈客户今天出现节点宕机。处理过程:分析heapdump有人查询明细账竟然查询92万的记录出来,占用3.5G的内存,导致内存溢出。客户要求详细查询问题原因。Nmc快照查看select/*+0.31173991273355106*/distinct………costtime=670138readnum=9284742、如何解决WAS宕机问题(1):大部分情况下是内存溢出导致的down机:分析产生的javacore文件及heapdump文件,能有效分析找出down机原因(2):JNI调用导致down机如果是调用外部的c/c++程序,需要从外部程序寻找原因如果是调用jdk本地方法,此时与操作系统本身相关,需要考虑升级操作系统或jdk版本(如windows32位下曾经遇到过的failedforkthread)有哪些日志?3、如何解决内存泄漏问题系统用了一段时间后,就会变得很慢,直至down机;可以参考down机处理模式;有时比down机更麻烦及难以处理;内存泄漏可能来自应用、也可能来自was本身的相关服务;可通过启用was的gc选项,将gc日志记录到Systemerror中,通过工具分析此日志;可使用NMCJVM收集日志、新版缓存分析。可不同时间段生成heapdump来做对照Jprofiler查看内存使用有哪些日志?qq群YonyouSoftwareCorporation

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

NC技术培训资料-NC性能优化.pptx

您可能关注的文档

管理软件+ 关注
实名认证
内容提供者

管理软件资料分享

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信