签到成功

知道了

CNDBA社区CNDBA社区

Oracle 性能优化之 资源管理

2021-01-23 23:38 369 0 原创 Oracle 19c
作者: Dave

在之前的博客我们提到Oracle 正在转变成一个多模型数据库,如下:

Oracle 19c 多模型(Multi-model)数据库 说明
https://www.cndba.cn/dave/article/4359

其中主要有3个理念(3M):多模型、多工作负载、多租户

本片我们重点了解一下多工作负载及其资源管理与数据库性能的关系。https://www.cndba.cn/dave/article/4362

Oracle 数据库的工作负载分3种类型:

https://www.cndba.cn/dave/article/4362
https://www.cndba.cn/dave/article/4362

1) OLTP: 并发多,SQL 语句一次处理少量数据。
2) OLAP: 并发少,一般多用在报表查询,属于数据密集型查询处理。
3) ETL: 并发少,一般多用在数据加载和处理,DML 处理数据量大。

了解DB工作负载类型后,我们在看数据库系统主机层面的三个资源争用情况:

https://www.cndba.cn/dave/article/4362

1.内存:从性能角度来说,应当避免争抢内存。
2.网络和存储: Oracle 在执行网络和存储操作时需要使用CPU,如果CPU 资源受限,那么网络和存储也会受限。
3.CPU 资源: 随着CPU 使用率的提高,一个进程马上被CPU调度的概率会减少。 尤其是CPU 使用率达到60-70%时,对OLTP的性能会影响较大。

CPU 使用率 马上被调度的概率
50% 1/2
66% 1/3
80% 1/5
90% 1/10

不同工作负载的目标和CPU 策略如下表:

工作负载 目标 CPU 策略
OLTP 快速的响应时间 最小化
OLAP 吞吐量和响应时间 最大化
ETL 吞吐量 最大化

基于Oracle 现在是一个多工作负载数据库的背景,为了保证最佳的性能,我们需要注意以下几点:

1.不要限制关键的OLTP 的工作负载。
2.在只跑OLTP工作负载的情况,确定峰值OLTP 工作负载的CPU 使用率。

根据之前的说明,在有OLTP 业务的情况下,为了保证数据库系统的性能,CPU 使用率的建议不要超过60-70%。

如果是多工作负载的情况,尤其是12c 以后的CDB 架构,我们可以首先确定的总的CPU 使用率目标:60-70%, 然后减去OLTP 的负载,剩下的就是可用于其他工作负载的CPU。

简单的公式就是:https://www.cndba.cn/dave/article/4362

其他工作负载可使用的CPU = [60~70] - ((OLTP CPU %) * 1.3)

假设只跑OLTP 时,峰值CPU 使用率是 30%,那么:

https://www.cndba.cn/dave/article/4362

下限: 60 - (30 * 1.3) = 20%

上限: 70 - (30 * 1.3) = 30%

在这个范围内都可以保证系统的性能,避免其他工作负载引起的CPU 争用。

具体我们可以采用如下的方法来控制每个实例所占用的资源。

对于单实例,我们可以使用如下2种方式:

1.RAC Services:

通过service 的配置,让不同的业务工作负载连接不同节点,避免某个节点CPU 使用率过高。

2.Database Resource Manager:

关于Resource Manager 的说明可以参考我之前的博客,如下:

Oracle Resource Manager 概述
https://www.cndba.cn/Dave/article/1104

对于多数据库:

1.虚拟机:

将物理主机变成多个虚拟机,运行不同的工作负载。

2.Instance Caging:

在Oracle 11g 中可以配置instance caging 来控制CPU 上的进程数,主要通过CPU_COUNT参数来进行。 同时也要启动资源管理计划。 https://www.cndba.cn/dave/article/4362

https://www.cndba.cn/dave/article/4362

3.多租户:

对于12c 以后的版本,可以直接使用多租户(CDB)资源管理计划,使用Shares 或Limits 来管理CDB和 PDB的资源。 当然11g 中引入的instance caging 仍然可以用来限制单个PDB 的CPU。

关于CDB 架构的资源管理,在我之前出版的18c 书籍的3.9 小结中有详细说明,可以参考:https://www.cndba.cn/dave/article/4362

《Oracle 18c 必须掌握的新特性》 发售了
https://www.cndba.cn/dave/article/3453

https://www.cndba.cn/dave/article/4362

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Dave

Dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 1835
    原创
  • 2
    翻译
  • 423
    转载
  • 123
    评论
  • 访问:3272617次
  • 积分:2903
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by ZhiXinTech · 皖ICP备19020168号·

        QQ交流群