最新《BS系统疑难问题分析与调优常见方法介绍》_第1页
最新《BS系统疑难问题分析与调优常见方法介绍》_第2页
最新《BS系统疑难问题分析与调优常见方法介绍》_第3页
最新《BS系统疑难问题分析与调优常见方法介绍》_第4页
最新《BS系统疑难问题分析与调优常见方法介绍》_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、BS系统疑难问题分析与调优 常见方法介绍应用系统部署实施之后可能会出现一些部分功能模块不可用、系统运行缓慢、系统崩溃等莫名奇妙的问题,这些问题现象多种多样,导致问题的原因也并不相同,解决起来更是千差万别。分析与调优的方法并不能一概而论,但也并不是毫无规律可言,掌握一些要领、思路、常用的排查手段及常见的问题解决办法有助于缩短问题解决的周期。本文将以专题介绍及案例分析的方式对这些思路和方法做一些总结,希望能够帮助各个项目有效的排查并解决这些问题。疑难问题分析与系统调优是件十分复杂的事情,生产环境的复杂多样决定了不可能有人能够有百分之百的把握解决所有的问题,无论是从经验、技术还是逻辑的角度来说都是这

2、样。因此这项工作对人员的要求就较高,为了能够帮助不太熟悉这项工作的人员尽快进入角色,以往的经验总结就显得非常重要。因此本文永远都不会完结,仅做一个抛砖引玉,希望在以后的工作中,能够得到不断的完善。1. 要领敏锐的头脑,缜密的思维,细致的工作,广泛的联想能够帮助更好的适应这项工作。敏锐的头脑:强调能够快速的到记忆或文档中找到匹配或近似匹配当前问题的问题。这一点尤为重要,如果在记忆中或文档中找不到痕迹,则此问题就是 个全新的问题,而一个全新的问题对于任何人来说都是一件棘手的事情。缜密的思维:在当前人类认知的世界中,任何事情都是有因才有果,也就是所谓的符合逻辑。任何奇怪的现象,包括违背常识的事情,都

3、有着其内在的原因。因此即便是遇到严重违背常理的事情也不要慌乱,此时就需要用以往的一些经验及其他渠道,如网络、他人等查找可能的原因,然后逐一的按照逻辑进行排查。细致的工作:这能帮助你搜集到用以定位问题的关键点,用以支持判断逻辑的证据,用以触发联想的触点,也能保证已有的环境不会被破坏或改变。广泛的联想:基于已有的事情广泛的联想、寻找相关的事情,常常非常有助于事情的解决,也有助于将单个的、破碎的事情片段联系在一起形成一系列环环相扣的链条。2. 总体思路处理问题的总体思路如下:根据问题汇报、粗略的问题描述或一些已有的手段清晰、明确的定义问题;基于问题定义进行分析,寻找可能引发问题的原因;在某种环境下模

4、拟、重现问题进一步确定问题原因;对于分析出的问题进行修改;对问题修改的结果进行验证。问题定义:这个步骤十分关键,因为问题的汇报和粗略的问题描述往往并不准确,有时甚至是错误的。因此不能过分的相信这些汇报和描述,因为不准确的问题描述会将你引上歧路,大大延缓问题的解决时间。所以除了了解已有的问题描述外,还需要做一些相关的试验用以确定已有描述的准确性。问题分析:基于问题定义进行分析,寻找可能引发问题的原因。这个步骤找到的有可能不是根本原因,而且由于事情的复杂性,有可能会造成误判。这种情况不可能避免,因此下最终的结论时要慎重。在一些复杂的问题中可能需要与其他几个步骤一起进行迭代,才能判定问题的成因。问题

5、重现:重现问题有助于进一步确定问题的成因,也有助于将来问题解决后的回归测试。是在生产环境还是测试环境下重现问题,有很多因素,但其中最重要的一个因素是这个过程是否会不可逆的改变现有的生产环境。问题修改:对分析出的问题进行修改。问题验证:基于修改的结果进行回归测试,验证问题是否解决。一般来讲在条件允许的情况下,尽可能的先在测试环境下进行验证,确认无误后再在生产环境下进行验证。切忌过分的相信自己的能力。3. 专题3.1. 客户端技术在B/S系统中,传统web客户端组件及其各种变种,主要承担了界面展现及请求发送与接收的工作。传统的web客户端组件包括:HTML各种Script , XML CSS。变种

6、主要指随着 Web2.0而新兴起的一些技术:Flash ,基于脚本的RIA,各种 类型的自定义控件。这些组件或技术负责前台页面的展现,而与后台的通信一般通过HTTPW议来进行。3.1.1. 常见问题. 脚本性能问题描述:脚本性能问题主要在基于脚本的RIA 解决方案中体现比较明显,这种解决方案为了达到良好的交互效果,大量的使用了脚本语言对页面进行渲染,由于脚本的复杂性,及浏览器的对脚本优化还不到位,经常会有一些性能问题。解决方案:1. 在满足兼容性的前提条件下,尽量升级客户端到较新版本的浏览器。新版本的浏览器一般内部会做优化,加快HTMU口脚本的解析速度。2. 换用较新版本的RIA

7、解决方案或较快的其他RIA解决方案。新版本的同类型RIA解决方案一般在性能方面都会有所提升。如果最新版本的依然无法满足渲染速度的要求,只能考虑更换其他RIA解决方案。3. 更换客户机硬件配置。RIA 技术的理念是充分的利用客户机的资源进行渲染,在维持服务器压力不变、甚至降低服务器压力的情况下,给用户带来更好的交互体验。这里的一个前提是客户机的硬件配置不错,因此如果客户机硬件配置较低,则需要考虑升级客户机硬件或者放弃使用RIA技术。. 同步调用问题描述:在浏览器进行同步调用时,直到所有的同步调用都完成,页面才会展现出来。如果其中的某个请求的响应速度较慢,则会拖累整个页面进入一种 空

8、白、假死的状态,用户体验十分不好。解决方案:1. 请求的响应较慢一般是由于中间件或数据库处理的慢而造成的,所以根本的解决办法是调整中间件、数据库或者算法,后台处理的速度上来了,前台的页面出来的也自然就快了。2. 在某些情况下,调整中间件、数据库或者算法实施成本都太高,为了快速的改善用户体验,一个重要的方案就是异步请求,将较慢的请求改成异步形式的,就可以避免一条臭鱼坏了一锅汤的结果了。. 带宽占用问题描述:有些应用,特别是采用了RIA 技术的应用,经常会向中间件请求大量的资源,严重的占用了网络带宽资源,无形中同时对网络和中间件资源都造成了巨大的浪费,加重了他们的负担。解决方案:1.

9、 在客户端缓存基本不变的静态文件,减少文件的下载次数。2. 对脚本文件进行语法压缩,减小脚本文件的大小。3. 对HTTR向应开启GZIP压缩,对于文本型的资源能够有效的缩减传输的流 量。3.1.2. 常用工具. HttpWatchPro此工具可以将客户端发出的Http 请求细节捕获出来,并记录每个请求的时间,使用这个工具可以清楚的定位究竟客户机请求了些什么资源,以及哪些资源的请3.2. 中间件技术中间件即BS系统中的应用服务器,我们生产环境下最常用的就是WebLogic系列。中间件是 Web应用程序的容器,负责接收客户端请求,进行业务逻辑处理, 并最终与数据库交互完成整个过程。因

10、此其地位十分重要,有很多种类型的问题 发生在这个层面。3.2.1. 常见问题. 内存配置问题描述:中问件的控制台经常出现OutOfMemory错误,则很有可能是因为部署实施时没有修改JVM的默认内存配置参数,造成可用内存过少所致。解决方案:1 .通过简单的修改JVM内存参数即可,但要注意,修改完后要进行验证,确认参数是否起作用,不要想当然. 内存溢出问题描述:如果内存参数已经修改成功,而中间件的控制台还是经常出现OutOfMemory昔误,则很有可能是由于代码编写的不好,消耗内存过大所致。解决方案:1 .通过使用合适的JVM内存监控、分析工具,捕获到发生内存溢出的程

11、序,进而修改代码解决问题。. 内存泄露问题描述:如果中间件重启后的一段时间没有问题,但运行几天或更长的时问后却出现OutOfMemory错误,则很有可能是出现了内存泄露。内存泄露和内存溢出是有很大区别的。内存溢出通常是由于代码写的不好,程序运行消耗大量的内存,很有可能程序还没有执行完成就发生了错误,即OutOfMemory错误。而内存泄露一般是程序执行已经完成,但是使用到的内存资源却无法释放,随着程序的不断运行,这部分不能释放的内存资源越来越多,直至最后发生内存溢出错误。解决方案:1. 内存泄露程度和排查的难易的程度成反比,即内存泄露越严重排查起来越简单,内存泄露越轻微排查起来越

12、困难。通过使用合适的JVM内存监控、分析工具,可以逐渐找到发生内存泄露的程序,进而修改代码解决问题。. 线程配置问题描述:中间件是以线程的方式处理客户端请求的,因此线程是否够用并能有效的工作就决定了客户端的每个请求能否顺利完成。如果线程数配置过少,客户端的请求就不能得到及时的响应,如果配置过大,又造成资源的浪费。解决方案:1 .通过修改中间件的线程相关配置可以逐渐找到适合生产系统的线程数量. 连接池配置问题描述:在业务应用程序中,不可避免的要进行数据库相关的操作,为了保证数据库连接的高效和稳定,在生产环境中一般都使用中间件自带的连接池。数据库连接消耗数据库主机的资源

13、,所以连接池配置过大,造成资源的浪费,配解决方案:1 .通过修改中间件的连接池相关配置可以逐渐找到适合生产系统的连接池数量。. 问题程序问题描述:这里所谓的问题程序指在 JAVA程序代码中使用循环次数很多,且循环体中又带有大量操作的循环程序,这种程序是最常见的一种问题程序。这种程序大量占用中间件的资源,可能也会大量的占用数据库资源,而且通常来讲执解决方案:行速度较慢,一般都会造成比较坏的影响。一 一1 .通过监控工具找到这些问题程序,修改代码解决问题。3.2.2. 常用工具. WebLogic 控制台性能监控此工具可以方便的监控 WebLogic内存及线程资源的使用

14、情况。内存监控包括总量及当前已用量两个值及当前已用量变化的曲线。通过内存总量可以验证内存参数配置是否起作用。通过总量及当前已用量可以得出剩余的内存量,对这个参数进行一段时间的采集即可判断出是否存在内存泄露。通过当前已用量的变化曲线可以用以预估系统是否存在消耗内存资源过大的程序,通常表现为一条很陡的曲线。通过这条曲线还可以发现所谓的问题程序,问题程序一般会表现为一条剧烈起伏的折线。线程监控包括空闲线程数和队列长度值。如果空闲线程数经常很小,且队列长度经常有较大的值,可能的一个原因就是线程配置的不太合适了。日志记录翁规性能I安全鞋监视配置 协议控制JMS | JTA在此页中,您可以监视有关此服.务

15、器的性能信息口空闲转程数:15空闲的线程数量分配给此队列的空闲绘程数。最早的特定请求TueAp1312 04 52CST201。等待时间最长的请求放入队列的日期和时间O吞吐量队列已经处理的请求教。没管徜处理的需求队列_3222 WebLogic执行线程监控此工具配合上面的工具一起使用,可以详细的了解当前中间件上运行着哪些 线程。配合上面的工具可以对内存溢出、问题程序进行排查。. WebLogic 连接池监控此工具可以方便的监控 WebLogic连接池的使用情况。通过对连接池运行情况的监控,可以检查连接池的最大最小连接数量配置的 是否合适。由于中间件集群的存在,连接到数据库的总连接

16、数等于每个集群节点 的连接总数*集群节点的数量。而且由于生产环境下数据库服务器的性能有高有 低,各个业务系统也不完全相同。因此不可能将所有连接池的最小连接数都配置 为一个非常大的值。一般的做法是将最小连接数配置为一个相对保守的值,而最 大连接数配置为一个能接受的较大的值。然后通过连接池监控中的总连接数来判 断最小值配置的是否合适。总连接数是说从某个连接池建立起来总共建立的连接 数量,如果这个值很大,说明此连接池经常的扩大、收缩,一般来讲这就是最小 连接配置的较小所导致的。这时可以增大最小值的设置,重新监控使用情况. Jprofiler此工具实时的跟踪中间件的运行情况,将内存使用情

17、况,CPUS用情况等详细信息显示出来,可以用于排查内存溢出、内存泄露、问题程序等问题。但需要注 意的是这个工具对中间件的性能有一定的影响,所以如果在生产环境下使用,会 拖慢中间件运行的速度,有一定风险。一般推荐用在测试环境、或压力较小的生 产环境下。f i i A 口 1aL Ihi4iihQ. MemoryAnalyzer专门用来分析JVM内存转储文件的分析工具。内存转储的意思是将JVM内存中 的东西存储成为一个专门的文件,然后通过特定的工具就可以对这个文件进行分 析。所以首先要将JVM的内存转储出来才行,这需要用到JVM本身的一个功能,这 个功能受JVM版本的影响,只有较高的

18、版本的 JVM才能提供这个功能。具体要求 的最低版本号可以查阅MemoryAnalyzer工具的帮助文档。在满足要求的JVM版本配置上启动参数:-XX:+HeapDumpOnOutOfMemoryErrqr 即激活了内存转储功能。这个参数的含义是当JVM发生内存溢出即OutOfMemory时,JVM会把内存中的东西存成一个文件,名为 java_pid 1464.hprof ,其中红色 的部分为Java进程的进程标识符PID。文件存放的位置一般是中间件启动命令所在的目录。进行内存转储时后台会有所提示。这个工具对生产环境基本没有什么 影响,推荐生产环境下调试问题采用rm b.tart incyL

19、DKH NOTICE 1 ' No man i£ e s-1 info because DKM is not run as a jar -DRM NOTICE J : canfZOP. prapeipt les uas Foundl in file :ZD «ZbeaZusep_pi*c JectzsZdtiinainQZinidan .K>rosleptles when Find. In OP_SVSJfilHIIS_DEBUG-falseL DRM NOT1 CE 1 " conf/support DBles wma found in File

20、2 ZD Zbea/ueerjivo jecteZdoinaincanfZsuppcii*trDE_ppopei*tles when Find In OP£¥£_PfllIH*CDRM DRM IDNM DRM DRH DRMIDNM DimCHECKING CHECKING CH1CKIHG CHECKING CHECKING CHECK1MG CHECKING CHECKINGNOTICE 1 HOT ICE J NOT I CE NOTICE 1 NOT ICE NOT ICE J NOTICE J NOTICE 1MM MiMKXMWXKIHXJitM M

21、X X !M X XDrmPoo1 : £JDA docsDmPoo L : TDLY doesDrnPoo1 : GVBft docsSJBH CUDOLINKl mot confIgi 旗ny TDL¥ UDOLINKJ nplt config! any GYBA CUDOLINKl not configi 视ny DLSVS UDOLtNKJDPoolf* 耗,同,* *,*,* *耗,同,*DnPo o1*DrnPo O IfDBM NOTICE ) : DRM: DpmPao1 : DLSYS does not config 已ny DrmPaol* Start

22、OK ?DniEftP License expired Date. 2010-6-10 23 :59 :592010-4-13 14:31:Ufe UniEflP V?orEf Low initialising. . ,Buent send In lit 一2810X0413-14e31 :09 >> DEBUG >> inoin >> CConso Le >> con.neusof t - businiesscDnso le rf irnincwor: 例模块资源解析出属性正片白心die母上的值为s tcstrcsourcc . pvopert

23、 "总的to®七key Jtestualiic C/UEB EjnuMCie1 = pi*opept iesl testkey J jJte-Efci/alue2010ZH413-14:31>> DEBUGsoujf-c&ConF igHandler r jav<a"59 ><2610-4-12下午02时3士分"秒elopnent Node>t >> il>>CST>nln >> Coiiisq Le* 1 >> canineusoif t .bus: Ir

24、iiefisrcorjiso le rf aineu4i*在逻辑子应用busInc.ssconiso 1c 1中加聿臭块资源口七EjccniplttHR甘0<Notice>UcbLof icS c rv ei*<BEft-800331><Startcid WchLogilc<2610-4-13java - lang. Ou 10£ Me no r y Ei*i*o r -CST>CST>Java.<Nfatice><Hotice><yebL&g icS e fm er><WcbLogii

25、cScrver ><REA-»RH3a><BEA 000355>q3您me# started L <Threftd '"LisstcnTh:heap spaceF和文件夹任招创建一个新文件夹将这个文件夹发布到 冒eb共享此文件夹appli cations_j rnystrysr_)rmfiltii«rt国 boot, propwti «=Con£i g. xml文件夹文件夹文件夹TEOFERTIES 文件JIML交档泄置公domains我的交档 共享文档 我的电脑 网上邻居回园酉国国m囹一config

26、. scsil. booted config Tcul. original6 KB BOOTED 文件C KB UEIG工NAL 文件D«f&ultAuthenticfctorlnit. IdiftD«ifauItAuth&ri ztrlrti t. Idi ftfileRealni. pr operti es installServi ce« sd j ava Di dl464, hprof1KB加文档3KBLDIFT文件4KBLDIFT文件2KBID1FT文件IKBFtiOFEirriES 文件6KBWind班5 NT 命令.64M 581KB

27、WRDF即富hotfDLinpincy heap to Jaiija_piidl464ahpvofHeap dun)> file created 65SRW2H6R htes ln> 13-R36 secsl一)D: L « ut «r _pr 4 j « c 11X dem a i eis n7d4m «i n名称,I大小类型jiimi "minim imiviimm m imu-im iiF-iimim t这样通过中间件运行时自动的内存溢出,当然也可以手工制造一个内存溢出,就可以获得内存的转储文件。然后就可以通过MemoryAn

28、alyzer工具对其进行分析, 找到内存溢出或泄漏的原因了«3Ml M . Problem Suspect 13.2.3. 常用配置. WebLogic 启动内存分配Windows修改 startWebLogic.cmd 添加如下文字:set MEM_ARGS=-Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSize=256M其他操作系统修改 startWebLogic.sh 添加如下文字:MEM_ARGS="-Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSi

29、ze=256M "其中:-Xms为堆内存最小大小-Xmx为堆内存最大大小-XX:PermSize 为永久保存区最小大小-XX:MaxPermSize为永久保存区最大大小. WebLogic 参数配置1 . 域JTA超时秒数:600(默认值30,为可选调节项,在使用 WebLogic连接池时,如果应用中存在执行过于缓慢的事务操作,可以更改这个值,以便功能可以完成。但并没有根本的解决问题,修改程序,加快业务操作的执行速度才是根本 )2 . 域日志最小文件大小:1024限制保留的日志文件数:勾选要保留的日志文件:303 .服务器日志Stdout严重程度阈值:Error最小文件

30、大小:1024限制保留的日志文件数:勾选要保留的日志文件:30关闭Http日志4 .线程池配置线程计数:100 (为CPl量*25, 一般不用超过100). WebLogic 连接池配置1 .拷贝工程lib下面的包ojdbc14.jar 或者合适的ojdbc14.jar至U WebLogic 的 Serve门ib 下面,类似于 D:beaweblogic81serverlib 下,覆盖同 名文件(原始文件记得备份)。2 .启动WebLogic进入控制台,点击【连接缓冲池】,点击【配置新的JDBC连 接缓冲池】。选择驱动程序,一般为 Oracle Thin XA 或Oracle T

31、hin 。他 们的区别是Thin XA驱动支持分布式事务,而 Thin驱动不支持。具体选 择什么根据需求确定。+0racle,s Driver (Thin XA) Versions; E. L 9. 0. L 9. 2. Oj 10*0racleT s Driver (Thin) Versions: 0» lj 9. 2,Q3 10配置JDBC连接缓冲池选择数据库下别步箱将有助干创建和部茶连楼绫冲池。如果埋意,可以稍后更改配置信息和部翦选项。为新的连接绿冲池选择效据库突型和斐动程序。数据库类型 Oraclev数据厚嬖动程序*BEA's Oracle Driver (Type

32、4 XA) Versions:8.1. 7,9.0.1,9.2.0BEA* s Oracle Driver (Type 4) Versions: 8. 1. 7, 9.1. 1, 9. 2 0rOracle. s Driver (Thin XA) Versions:8. 1. 7, 9, 0. 1,9. 2. 0,10IOracle's Driver (Thin) Versions:8. 1.7Oracle's Driver (Thin) Versions:9. 0.1, 9.2. 0,10WebLogic, s Oracle Driver (Type 2 XA) Versio

33、ns: f. 1. 7, 9. 0. 1, 9. 2. 0注意并非要安装列表中所有的驱动程序。使用之前,忽可能需要安装选定的驱动程序。如果未列出您的驱动程序,请选择其他'。Weblogic Server JDDC 己认证定义在接属性玷 口;1521救据中服务器上用于连接到效据后的端口O数据库JI1户名 elarp物理敕据库选接中使用的数据库帐户用户名。密码:确认定科:|物理效据库连接中使用的皴据库帐户后码。“»ec<iuer.tr<ur»MA1K4£I«I«mydomain> JDBC 连接缓冲池ELARP连接到:my

34、domain ) 登录名:weblogic | 退出常规配置在此页中,您可以定义此JD日C连接缓冲池的连接配置。初始容量二1创建此JDBC连接辗冲池时要创建的物理数据库连接俞至咻嘤喊).根据需要配置 这三个参数最大容量:叵2:此DBC连接绕冲池可以包含晌最大物理数据库连接数前予控正感;容量增长:1此JDBC连接缓冲池容量扩展的增量0 - 32位正整数:。A Swtement 塞存类型:LRU v用千堆护存储在翅存中的prepared statement的筑法总使用新statement时.LRU将替换最近另Stsitement舞存大小10存储在缓存中的prepared statem&nt

35、和callable弓emenl数目这可能会提高服努器性能* :0词试保明的连长指定'.'eULogic号前用卜是否在将连接提供给客户端之前测试该连侯电池颜在下面指定测试表看称。:',在高轨选项中,根据需要勾选这三项*选中后会对数据库性能造成一定的影咱,主要用 回泅次创建峋隹接,在数据库和中间件之间网络连接不稳定的环境中匕不选则可靠性就降低了.指定置SLogic Stiver餐否在创建连播后且耨该连接潴加到箜冲池中用用连接列表之前时诗连接进行测试“(必须指定测试表名称。:0湖试泽放的旌桂指定同曲Logic Seci是否在将隹接返回到读JDBC隹楼缓冲?蚊前测试停建接。遨须

36、指定测祓表名称。面;支持本地事务若使用Oracle Thin XA驱动需要勾选这项,使用 Oracle Thin驱动无此选项.指定如果没有全局事务,用于创建物理数据库连接的XA驱动程序是否支持SQL口3 .点击【数据源】,点击【配置新的JDBC数据源】定义新的JDBC数据源。可以随意起,但最好有意义名称ELARP此JDBC数据源的名称。需要对应dr m_sys_dat as our c e表中记 录的dbux 1字段JNDI 名称 ELARP将此JDBC数据源绑定到的JHDI路径。E允许全局事务指定此数据源是否将参与狈有全局(XA;4纤。一般在创建数据源时应选中1 为非XA变动程序仿真的阶段提

37、交指定JDBC次源是否将仿真全局事务中的参与。当关联的连接缓冲池使用关联新建JDBC数据源和连接缓冲池。缓冲池名称ELARP m关联缓冲池与此数据源相关联的JDBC连接缓冲池。选定的连接缓冲池用于向客户端应用程序提移选择要部署此JDBC数据源的服务器和群集。大多数情况下,应该将数据力 接缓冲池的部署目标。独立服务器H mvserver部署数据源4 .确认UNIEAP用户中drm_sys_datasource表中是否有 WebLogic数据源配置及配置是否正确DSIDPOOLFROV1DER -1 DS NAMEIDSDtSCRiBEDRIVERNAMEDBT'TlPEDBJRLNEUD

38、OCUDOLINKNEUDOC皿址_奴势口津匚匚orade ibc diiw OnxIeDiim Orach-jdbc giacte ijhin 132.166132.216:1521:博日的DL5WLIDOUNKDLSVS-PL5YS-aade jdbc: dii*%f QrcleDiiv«f Oracle-由亡 aiadte.lhH 132.1 GB 132.21 G1521 :出泊的SYS_WFUDOUNKuriH口时unihw datasource fade jdbc diiver OracleCiii*/er Oraclejdb<raiade:lhn:19G.1 BE

39、Ll 3221 E:1521 :惚g pfrtyELARPUDOUNKELARP淖 daflasDurceoracle jdbc.diiver OracleCiliver - »OracleMbc:oiacla:thn:132.1 EBJ 32.21 G1521:tslapptSJBlAUDOUNK占%3,忏字犯金汨Eu口hr-由新理若& "f-OracleCr Oracle:痴心:0 码也如n:l 92.1 GBJi32.216:1521:3i君 prty >>TOLVUDOUNKTD这1r受要灯t/gbL昨工二中薮据说明 工口由1coig . .Or

40、acle jdbc oiadte:lhn 192.1681322161521 EgprtPREPORTUDOUNK.RE J服工&冏ver OrSWOluf Orachidbc oiactetfin 192.166132.2161521:阑廿的GYBADDaLIHKGYuh-u olie ii- uiif 口wcIeD曲亡口旧山小n 132.1 GB 132.21 G 1521 :惚旧印卯UNIEAPUDOUNKUNIEAPplaFarni dasource orade jdbc.diiver OracleCHi'/er Dracie-'心里口后心小打:厕92.1眼13

41、2216:1521:惆启*ySY5JMUDOUNKSY5=FMarndatasauicBoracle jcbcdiver OraclBCiii1 Oracle品?Mm迪邺尔132.16艮 132.21 G:1521:tslappt占尼WFWEBLOGIC| GYS_V/F nun/low dasourm cciKle pbc.diivw Or&clBOiivw Oracle营0邓"SYSJMWEBLOGIC|SYS_FMafoim datftsauice Bofade idbc diiver 0 11adeOiimr SOracleofSYS_FMs_ UNIEAPWEBIL

42、QGI 匚uniNpapl&lQirn dM或bhf IHorade:jdbudii忆口rodeOiimr ,| OraclesUNIEAPaREFORrWEBLQGIC_ |fsIporFBreport_dalatsoJce B aaele jdbc diiyer OracItCHiv«r nOracle-sREPORTD_ NEUDOCWEBLaGlE:NEUDOC B«ud(M_dat3saulGe IBprade jdbc.diiveT OracleCi liver SOraclesME UDE-_ elSrpWEBLOGIC|ELtftPIBB* deAa

43、swrceSoracJe jctic dii'/er OraclECiii1 SlracieEUdRP二5 .修改OP.properties文件如下配置XTM_PROVIDER=UDOLINK XTM_PROVIDEWEBLOGICMANAGED_ENVIRONMENT=falSe MANAGED_ENVIRONMENT=true6 .重启WebLogic,并在连接池监控界面中确认,是否连接池已经成功启用. Web应用配置会话超时秒):3600会话在失效之前保持非活勖状态的时间量秒年Servlet重新阑我检查1秒):-1根据实际需要调整,但不要太 长,且此参数的优先皴低于

44、 veb. xml中的配置:sees ion-config)<sessiorL-timeout>30</ses si on-timeout ></session-config> 上述配置的单位为分WebLcgic&等待检查SeMet是否已被修改并需要重新加载的时间单线程Servlet簸冲池大小:50用于单线程模式Servlet的缓冲池大小。已启用索弓I目录指定当未找到合适的索引文件时目标是否应自动生成HTML目录列表“已自用会话监视指定是否为会话监视创建运行时M日日日小生产环境下一般这两个参数 都是-1,即不检查。如果确 实需要不重启服务的情况下 替

45、换可以修改第二个参数,比如300J5P编译命令:用于编译生成的JSP Ser.他t的J3.a编译器的完整路径JSP页检查(秒):WebLogic导日向检查JSP文件是否已更改并需要重新编译的时间间隔i秒"3.3. 数据库技术数据库是业务数据最终存储的位置,最为重要,也最为复杂。我们目前主要使用的是Oracle10g, 因此下面的所有讲解都遵循这个前提进行。数据库的相关问题不是简单的一些文字能够描述清楚的,这里只简要的介绍一下最常遇到的一些问题。重点强调的是,由于数据库中存储着业务数据,因此对它的操作要格外的小心,不熟悉的操作不要随便执行,一些重要的调整尽量申请专业的系统工程师或DBA

46、fe执行,注意多备份。3.3.3. 常见问题. 内存配置问题描述:此问题常见于一些初期业务压力不大的系统中,这些系统由于初期业务压力不大或缺少规划,通常在 32位windows上运行着32位的oracle ,而且数据文件多直接放在本机硬盘上,好一点的有可能本机做个了RAID5。 这种数据库通常不是专业的系统工程师或 DB砥装的,因此很可能什么参数都没有调整过,且硬件配置往往也较差,随着数据量的增加,不可避免的越来越慢。解决方案:1. 重新规划数据库部署方案,并全面进行调整。2. 调整数据库内存参数,看是否有所改观。. 连接数配置问题描述:此问题常见于一些初期业务压力

47、不大的系统中,这些系统由于初期业务压力不大或缺少规划,通常在 32位windows上运行着32位的oracle ,而且数据文件多直接放在本机硬盘上,好一点的有可能本机做个了RAID5。 这种数据库通常不是专业的系统工程师或 DB砥装的,因此很可能什么参数都没有调整过, 由于默认的连接数较少,因此可能会有不够用的情况。解决方案:1. 重新规划数据库部署方案,并全面进行调整。2. 调整连接数配置。. SQL语句问题问题描述:数据库操作执行的缓慢,除了和系统软硬件配置有关外,还和SQL语句本身有着重大的关系,且绝大多数的情况都是后一种。解决方案:SQL语句的优化本身也是一门学问,涉及方

48、方面面,这里不可能进行全面的讲解,只进行基本的介绍,起到入门的作用即可。一般的,SQL语句的执行过程可以分为分析阶段和执行阶段,在分析阶段数据库对SQL语句进行语法分析、语义分析等操作并最终获取SQL语句的执行计划,在执行阶段数据库按照选定的执行计划执行SQL语句并最终获得数据。在这个过程中对性能影响较大的有两块:SQL语句的分析过程及根据分析获得的执行计划。1. SQL语句的分析过程Oracle对SQL语句进行分析的过程中区分大小写,即不同的SQL语句,即使仅仅是大小写不同,Oracle都会认为这是完全不同的SQL语句。对于新的SQL 语句, Oracle 会进行一系列的复杂分析,这个分析过

49、程比较消耗资源,而分 析完成后,Oracle 会对这条语句进行散列,然后将语句放置到高速缓存中。如果之后申请执行的 SQL语句能够在高速缓存中查找到,则上述的分析过程不被执行,Oracle 直接选用已经分析过的版本直接执行操作,反之, 则 Oracle需要重新执行上述过程。这里面最常遇到的问题就是变量的绑定,Oracle 会认为下面的语句是完全不同的SQL语句。Select * from table1 where name = aaaSelect * from table1 where name = bbb这是十分糟糕的情况,正确的做法是使用变量绑定,由 Oracle在SQL®句的

50、执行阶段进行变量的绑定来完成。Select * from table1 where name = ?2执行计划Oracle最终执行SQL语句是按照执行计划来进行的,因此执行计划的好坏就 十分关键。那么优化 SQL语句的根本其实就是改变语句的执行计划。执行计 划受很多方面影响,下面列举一些,并找几个最常见的进行说明。数据库的版本越高的数据库版本在相同的情况下做出的执行计划就越好,所以在可能的 条件下,升级数据库的版本是个好的主意。初始化参数如最重要的优化器模式参数,optimizer_mode ,此参数决定了Oracle 将使用何种优化器进行执行计划编排。Oracle的优化器分为两种:基于规则的

51、优化器(RBO和基于成本的优化器(CBO) 。基于规则的优化器严格按照优先级的次序制定执行计划,而基于成本的优化器则根据收集到的相关统计信息制定执行计划。Oracle10g中默认的optimizer_mode值为ALL_ROWS®用基于成本的优化器。需要注意的是优化器评估出的成本cost 是一个相对的值,即只有在环境完全相同的情况下,这个值才能够相互比较,一般情况下,此值越小,代表SQL语句执行的越快。在不同的环境下这个值完全不能互相比较。在有些极特殊的情况下,在相同的环境中有可能cost 小的执行计划反而比cost 大的执行计划更慢。因此改变SQL语句的执行计划后一定要进行实际的执

52、行测试,不要想当然。数据库的统计信息数据库的统计信息是使用基于成本的优化器的基础,统计信息不准确,则优化器得出的执行计划就会不准。增加或减少索引这个应该很好理解,不做过多说明。改变索引的类型和顺序这个应该很好理解,不做过多说明。改写 SQL这个应该很好理解,不做过多说明。使用 HintsHints 就是提示,作用是告诉Oracle 使用什么样的方式制定执行计划,Hints 有很多总类,这里不做过多说明,仅举个例子说明作用。使用规则优化器制定执行计划Select /*+ rule */ * from table1 where name = aaa使用成本优化器制定执行计划Select /*+ a

53、ll_rows */ * from table1 where name = aaa3.3.4. 常用工具. Oracle Enterprise ManagerOracle 的企业管理器,自然是最权威,最全面的工具了。与性能有关的工具主要在其性能选项卡中。这其中包括了很多具体的工具,常用的如:ADDMASH艮告,顶级活动,顶级使用者,快照(AWR SQL优化指导。. Oracle Enterprise Manager Consol eOracle的企业管理器客户端,可以脱离 Web形式的企业管理器单独使用,这个工具需要单独的安装。常用的是会话查看功能,可以看到当前有多

54、少会话,会话的状态,会话的操作系统进程标识符,会话正在执行的SQL及其执行计划等等的功能. PLSQL Developer 的 Sessions 功能此工具能方便的找到当前连接的会话,并查看会话执行的SQL语句iQl T Mrd i 1'UMnlM v p mJHMn 1£T» kvhcBn *r. 动态性能试图 v$process , v$sessionv$process视图反映了当前系统 Oracle的进程信息,v$session视图反映了数据库的会话信息,二者常被用来联合起来做一些信息的查询。连接方法为:select * from v$process p,v$session s where p.ADDR=s.PADDR;. 动态性能试图v$sqlarea此视图持续跟踪所有shared pool中的SQL语句的信息,通过这些信息可以 帮助我们寻找问题SQL如:下面的语句是寻找基于成本优化方式中成本最高的 SQL语句及执行次数等相关信息,其中 OPTIMIZER_COST即为优化

温馨提示

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

评论

0/150

提交评论