当前位置: 首页 > news >正文

网站友链三端互通传奇手游开服列表

网站友链,三端互通传奇手游开服列表,手机之家中关村在线,常熟市住房和城乡建设局网站1. AWR 概述 Automatic Workload Repository(AWR) 是10g引入的一个重要组件。在里面存贮着近期一段时间内#xff08;默认是7天#xff09;数据库活动状态的详细信息。 AWR 报告是对 AWR 视图进行查询而得到的一份自动生成的报告。可以通过下面的脚本手工得到一份 AWR 报告。…1. AWR 概述 Automatic Workload Repository(AWR) 是10g引入的一个重要组件。在里面存贮着近期一段时间内默认是7天数据库活动状态的详细信息。 AWR 报告是对 AWR 视图进行查询而得到的一份自动生成的报告。可以通过下面的脚本手工得到一份 AWR 报告。 通过 AWR 和 AWR 报告DBA 可以容易地获知最近数据库的活动状态数据库的各种性能指标的变化趋势曲线最近数据库可能存在的异常分析数据库可能存在的性能瓶颈从而对数据库进行优化。 AWR 报告所有的数据来源于 AWR 视图即以 DBA_HIST_开头的所有系统表Database Reference 有对所有这些系统表的描述这应该是 Oracle 官方对 AWR 报告的官方注释了。而对于如何有效地去分析 AWR 报告这可能更需要 DBA 经验的日积月累。 AWR的前身是StatspackStatspack在10g和11g中也有提供同时和AWR一起做了同步更新而且Statspack是公开源代码的因此关于Statspack的资料还有Statspack的源代码都是理解AWR的一个有用的辅助。 本文着重对AWR中的一些要点进行剖析欢迎一起讨论AWR相关的问题。 2.  DB CPU - CPU负载分析 如果关注数据库的性能那么当拿到一份 AWR 报告的时候最想知道的第一件事情可能就是系统资源的利用情况了而首当其冲的就是 CPU。 而细分起来CPU 可能指的是 1、OS 级的 User%Sys% Idle% 2、DB 所占 OS CPU 资源的 Busy% 3、DB CPU 又可以分为前台所消耗的 CPU 和后台所消耗的 CPU 如果数据库的版本是11g那么很幸运的这些信息在AWR报告中一目了然 分析上面的图片我们可以得出下面的结论 · OS 级的 User%Sys%Idle% OS 级的 %User 为75.4%Sys 为2.8%Idle 为21.2所以 %Busy 应该是 100-21.178.8。 · DB所占OSCPU资源的Busy% DB占了OS CPU资源的69.1%Busy CPU则可以通过上面的数据得到%Busy CPU %Total CPU/(%Busy) * 100 69.1/78.8 * 100 87.69和报告的87.7相吻合。 如果是10g呢则需要手工对 Report 里的一些数据进行计算了。 Host CPU 的结果来源于 DBA_HIST_OSSTATAWR 报告里已经帮忙整出了这段时间内的绝对数据(这里的时间单位是centi second,也就是1/100秒) 根据上面的数据稍加计算分析便可得出下面的结果。 · OS级的User%Sys% Idle% %User USER_TIME/ (BUSY_TIMEIDLE_TIME)*100 146355/ (15294641230)*100 75.37 %Sys SYS_TIME/ (BUSY_TIMEIDLE_TIME)*1005462/(15294641230)*1002.81 %Idle IDLE_TIME/ (BUSY_TIMEIDLE_TIME)*10021230/(15294641230)*10010.93 值得注意的这里已经隐含着这个AWR报告所捕捉的两个Snapshot之间的时间长短了。有下面的公式BUSY_TIME IDLE_TIME ELAPSED_TIME * CPU_COUNT 注意正确的理解这个公式可以对系统CPU资源的使用及其度量的方式有更深一步的理解。 因此ELAPSED_TIME (15294641230)/8/100   242.72 seconds 至于DB对CPU的利用情况这就涉及到10g新引入的一个关于时间统计的视图V$SYS_TIME_MODEL简单而言Oracle采用了一个统一的时间模型对一些重要的时间指标进行了记录具体而言这些指标包括 1) Background elapsed time    2) Background CPU time           3) RMAN CPU time (backup/restore) 1) DB time    2) DB CPU    2) Connection management call elapsed time    2) Sequence load elapsed time    2) SQL execute elapsed time    2) Parse time elapsed           3) Hard parse elapsed time                 4) Hard parse (sharingcriteria) elapsed time                     5) Hard parse (bindmismatch) elapsed time           3) Failed parse elapsed time                 4) Failed parse (out of sharedmemory) elapsed time    2) PL/SQL execution elapsed time    2) Inbound PL/SQL RPC elapsed time    2) PL/SQL compilation elapsed time    2) Java execution elapsed time    2) Repeated bind elapsed time 这里我们关注的只有和 CPU 相关的两个 Background CPU time 和 DB CPU。 这两个值在 AWR 里面也有记录 Total DB CPU DB CPU Background CPU time 1305.89 35.91 1341.8 seconds Total DB CPU除以总的 BUSY_TIME IDLE_TIME可得出% Total CPU。 % Total CPU 1341.8/1941.76 69.1%这刚好与上面Report的值相吻合。 其实在 Load Profile 部分我们也可以看出DB对系统CPU的资源利用情况。 用 DBC PU per Second 除以 CPU Count 就可以得到 DB 在前台所消耗的 CPU% 了。这里 5.3/8 66.25 %比69.1%稍小说明DB在后台也消耗了大约3%的 CPU这是不是一个最简单的方法了呢 3. DB Time – 进程消耗时间分析 DB CPU 是一个用于衡量 CPU 的使用率的重要指标。假设系统有N个 CPU那么如果 CPU全部处于繁忙状态的话一秒钟内的 DB CPU 就是N秒。 如何去表征一个系统的繁忙程度呢除了利用 CPU 进行计算外数据库还会利用其它计算资源如网络、硬盘、内存等等这些对资源的利用同样可以利用时间进行度量。假设系统有M个 Session 在运行同一时刻有的 Session 可能在利用 CPU有的 Session 可能在访问硬盘那么在一秒钟内所有 Session 的时间加起来就可以表征系统在这一秒内的繁忙程度一般的这个和的最大值应该为 M。这其实就是 Oracle 提供的另一个重要指标DB Time它用以衡量前端进程所消耗的总时间。 对除 CPU 以外的计算资源的访问Oracle 用等待事件进行描述。同样地和 CPU 可分为前台消耗 CPU 和后台消耗 CPU一样等待事件也可以分为前台等待事件和后台等待事件。 DB Time 一般的应该等于DB CPU 前台等待事件所消耗时间的总和。等待时间通过 V$SYSTEM_EVENT 视图进行统计DB Time 和 DB CPU 则是通过同一个视图即V$SYS_TIME_MODEL 进行统计。 Load Profile 一节就有了对 DB Time 的描述 这个系统的 CPU 个数是8因此我们可以知道前台进程用了系统 CPU 的7.1/888.75%。 DB Time/s 为11.7可以看出这个系统是 CPU 非常繁忙的。里面 CPU 占了7.1则其它前台等待事件占了11.7 –7.1 4.6 Wait Time/s。DB CPU 占 DB Time 的比重呢 7.1/11.7 60.68% Top 5 Timed Events或许很多人都对它有所耳闻按照 CPU/等待事件占 DB Time 的比例大小这里列出了 Top 5。如果一个工作负载是 CPU 繁忙型的话那么在这里应该可以看到 DB CPU 的影子。 注意到我们刚刚已经算出了 DB CPU 的 %DB time 为60%左右。 其它的 external table readdirect path write PX Deq: read credit PXDeq: Slave Session Stats 这些就是占比重40%的等待事件里的 Top 4了。 回过头再研究下这个 Top 5 Timed Foreground Events如果先不看 Load Profile你能说出这个一个 CPU-Bound 的工作负载吗 答案是否定的要知道系统 CPU 的繁忙程序还要知道这个 AWR 所基于两个 Snapshot 的时间间隔还要知道系统 CPU 的个数。否则系统可以是一个很 IDLE 的系统呢。记住 CPU 利用率 DB CPU/(CPU_COUNT*Elapsed TIME)。 这个 Top5 给我们的信息只是这个工作负载应该是并行查询从外部表读取数据并用 insert append 的方式写入磁盘同时主要时间耗费在 CPU 的运算上。 上面提到DB Time 一般的应该等于 DB CPU 前台等待事件所消耗时间的总和。在下面有对这三个值的统计 · DB CPU 6474.65 · DB TIME 10711.2 · FG Wait Time 1182.63 明显的DB CPU FG Wait Time DB Time只占了71.5% 其它的28.5%被消耗到哪里去了呢这里其实又隐含着一个 Oracle 如何计算 DB CPU 和  DB Time 的问题。当 CPU 很忙时如果系统里存在着很多进程就会发生进程排队等待 CPU 的现象。在这样DB TIME 是把进程排队等待 CPU 的时间算在内的而 DB CPU 是不包括这一部分时间。这是造成 DB CPU FG Wait Time DB Time 的一个重要原因。如果一个系统 CPU 不忙这两者应该就比较接近了。 不要忘了在这个例子中这是一个 CPU 非常繁忙的系统而71.5%就是一个信号它提示着这个系统可能是一个 CPU-Bound 的系统。 4.  IO数据分析 除了 DB CPU、DB Time或许另一个比较常用的指标应该是 IO 的利用情况。关于 IO 的指标就比较多了单单在 Load Profile 里面就有5个在 DB Time 和 DB CPU 的下面 这5个指标的值都来自 V$SYSTAT 视图分别是 · Redo Size: ‘redo size’ · Logical reads ’session logical reads’or (’db block gets’ ‘consistent gets’) · Blocks Changes ‘db block changes’ · Physical reads ‘physical reads’ · Physical writes ‘physical writes’ 具体指标的解释可以参考Database Reference (http://docs.oracle.com/cd/B28359_01/server.111/b28320/stats002.htm) 如何得到系统大致的 MBPS(Megabits Per Second) 呢 MBPS (Physical reads Physical writes) *Block_Size (196,271.42.0)*8*1024/1024/1024 1533 MB/s 更准确的 MBPS 可以从 Instance Activity Stats 部分获得。 Physical IO disk bytes physical read total bytes physical write total bytes 值得注意的是这里 physical write total bytes 大致是 physical write bytes 的两倍。这应该是 physical write total bytes 统计的是磁盘的 IO而这里我们做了 ASMnormal redundancy一份数据写了两遍的原因。 Load Profile 剩下的部分主要是关于各种执行情况的统计除了 W/A MB processed 来自 V$PGASTAT单位其实也是 Byte不是 MB其它数据都是来自于 V$SYSSTAT。 · Blocks Changes: ‘db block changes’ · User calls: ‘user calls’ · Parses: ‘parse count (total)’ · Hard parses: ‘parse count (hard)’ · Logons: ‘logons cumulative’ · Executes: ‘execute count’ · Rollbacks: ‘user rollbacks’ · Tranasactions: ‘user rollbacks’ ‘usercommits’ · W/A MB processed: ‘bytes processed’ 一般而言Hard parses Parses Executes User Calls。 AWR 的一般性介绍我想差不多就这些了其它部分的介绍借助于一些更具体的 AWR 报告进行分析可能会更加方便和清晰。 5. AWR 报告分析 – 实战1 构建 DSS 系统的第一步离不开数据加载通过文本文件加载是最常见的方式Oracle 提供了外部表加载的方法即把一个文本文件当成一个正常的表来进行操作通过类似 insert /* append */ into table select from external_table 的方式进行加载。 数据加载是一个 CPU-Bound 的过程不过是通过什么工具external table 也好sqlldr 也好imp 也好impdp 也好。换句话说如果连数据加载都出现 IO 瓶颈这个系统的配置就说不过去了。 这个过程的 AWR 报告会是什么样子的呢 先做个一般的假定从外部表加载数据到一个本地分区表。 Top 5 Timed Events 类似下面 如果去抓取这段时间 DBA_HIST_ACTIVE_SESS_HISTORY 的数据并转换为图表的话我们会得到更形象的 Top 10 Wait Events。如何实现这一步可以参考用 Oracle 实现 ASH 的数据透视图http://www.cnblogs.com/rootq/archive/2009/09/24/1573200.html enq: HV –contention 是什么东西呢 在11.2以前对于分区表的 parallel direct-path loadOracle 采用的是 brokered load 的方式即所有的 PX Slaves 共享对每个分区的 high water mark 的访问通过轮流持有 high water mark 实现对每个 segment 添加新的 blocks。这种方法对于充分利用 extent 的空间是有帮助的不过带来的问题就是对 high water mark 的竞争也就是这里的 enq: HV – contention。在执行计划中这以 RANDOM LOCAL 标记。下面是一个例子 一个好消息是11.2引入了一种新的方式叫做 PKEY distribution。在这种方式下一个特定的分区只交给一个或多个特定的 PX slave 负责这种方式不仅减少了对 high water mark 的争用而且可以实现 Partition 内更好的压缩率。 6.  AWR报告分析 – 实战2 有一次跟一个 QQ 上的朋友一起探讨了另一个对系统 CPU 进行度量的指标 CPU used by this session。 他刚好有一份 AWR 报告在这份报告里出现了严重的 CPU used by this session 和 DB CPU 不一致的现象。 下面是这份报告的一些片断 再做进一步的归纳 OS Busy% 1821080/(18210805384293) 25% Inst CPU% (using DB CPU) 8934.22*100/ (18210805384293)12% Inst CPU% (using CPU used by this session) 418035/ (18210805384293) 6% 用 CPU used by this session 计算出的 CPU 利用率竟然只是用 DB CPU 计算出来的利用通率的一半 我的第一个反应是在 Jonathan Lewis 网站看到的一篇相关文章里面提到了 DB CPU 和 CPU used by this session 计算时的不同之处 (https://jonathanlewis.wordpress.com/2009/05/26/cpu-used/) “Prior to10g Oracle usually updated time figures at the end of each database call; butfrom 10g there are some views where time is updated more regularly. The “DB CPU” from v$sess_time_model increases every six seconds, while the “CPU used by this session” from v$sesstat changes only at the end of the test.” 如何验证这一点呢 在浏览这份报告的 TOP SQL 时我们发现了下面的现象 这是从 SQL ordered by Elapsed Time 截取出来的 Top 3 SQL。TOP 1 的 SQL 用了 DB Time 的30.10%用了2517s 的 CPU Time。但请注意它的 Executions 的值却为0。也就是说这里的 CPU Time 是还没有被计算入 CPU used by this session 这个指标里面的。 我们再把2517s加回来看出误差缩小多少(251700418035)/(18210805384293) 9% 这时和用 DB CPU 计算出来的12%还是有1/4的差距。 从这个例子可以看出用 DB CPU 度量还是比用 CPU usedby this session 来得准确的。特别在有大查询在跑的过程中抓的 AWR这个误差很有可能会被放大。这是一个有趣的实际例子。 7. 总结 AWR 是分析数据库运行状况的利器将其运用好可帮助 DBA 提早发现数据库中存在的问题并加以解决。文中主要对 DB CPU、DB Time、IO 等 AWR 报告中的数据进行了分析说明当然分析AWR报告不能仅限于此更需要DBA日积月累的经验。希望本文对想了解 AWR 的朋友有一定帮助。
http://www.zqtcl.cn/news/386054/

相关文章:

  • 网站建设小程序开发情侣头像制作素材图片
  • spoc课程网站建设专业彩票网站建设
  • 创建网站需要注意什么忻州市城乡建设管理局网站
  • 万江做网站wordpress 动静
  • 北京自助模板建站遂宁企业网络推广方案
  • 湖南建设科技节能协会网站武夷山景区网站建设特点
  • 那些网站建设的好百度搜索风云排行榜
  • 网站开发 模板 c沈阳市建设工程质量检测中心网站
  • 企业网站设计专业好吗做钓鱼网站要具备什么
  • 广西备案工信部网站用asp.net做后台网站
  • 静态网站漏洞wordpress 外卖
  • 暗网做网站温州做网络推广的公司
  • 网站描述 修改上海火迎网络推广运营优化
  • 黄石网站建设哪家专业做个网站费用
  • 免费做的网站怎么设置域名解析宁夏百度seo
  • 化妆品产品的自建网站有哪些阿里云cdn wordpress错位
  • 增加网站流量网站新闻字体
  • 做外贸建网站需要推广吗服装如何做微商城网站
  • 上海市建设安全协会网站查询考试伪静态 wordpress
  • 网站免费建站o网站编程多少钱
  • 建设网站开发海外推广服务
  • 网站建设需要提供的资料文档营销平台建设
  • 做个响应式网站多少钱河南网络推广系统
  • wordpress的后台文章图文发布清远市seo广告优化
  • 长沙的互联网网站公司招标文件免费下载网站
  • icp备案系统网站品网站建设公司排名
  • 什么网站可以做音乐相册可信的品牌网站建设
  • 洛阳网站建设优惠公司网站查询ip地址
  • 学校网站模版电影网站要怎样做才有出路
  • 无锡网站建设 微信企业网站建设与管理期末考试