LAB – Multitenant Resource Management

LAB – Multitenant Resource Management

Introduction

Oracle 12c Release 2 New Features:

Controlling Memory allocation and Disk I/O on individual PDB.

In the previous release (12.1) oracle introduced Multitenant Database, allowing better management of resources and cost reduction.

On oracle 12c release 1 there was no easy way to control the amount of disk I/O and memory usage on individual PDB. As a result a “Noise Neighbor” could use lots of Memory and I/O impacting the performance of other PDB in the same instance.

In oracle 12c release 2 we can restrict the amount of memory and disk I/O on PDB Level, as well as creating resource plans based on performance profiles, which defines the resource management for groups of PDBs.

Requirements

Oracle 12c release 2 onward.

Container Database (Multitenant).

PDB Memory Parameters

The following parameters can be set at the PDB level.

DB_CACHE_SIZE: The minimum buffer cache size for the PDB.
SHARED_POOL_SIZE: The minimum shared pool size for the PDB.
PGA_AGGREGATE_LIMIT: The maximum PGA size for the PDB.
PGA_AGGREGATE_TARGET: The target PGA size for the PDB.
SGA_MIN_SIZE: The minimum SGA size for the PDB.
SGA_TARGET: The maximum SGA size for the PDB.

These initialization parameters control the memory usage of PDBs only if the following conditions are met:

  • The NONCDB_COMPATIBLE initialization parameter is set to false in the CDB root.
  • The MEMORY_TARGET initialization parameter is not set or is set to 0 (zero) in the CDB root.
SQL> show parameter target

PARAMETER_NAME                                    TYPE         VALUE
------------------------------------------------------------ ----------- ------------------------------------------
memory_max_target                                 big integer 0
memory_target                                     big integer 0
pga_aggregate_target                              big integer 200M
sga_target                                        big integer 800M
SQL> show parameter NONCDB_COMPATIBLE

PARAMETER_NAME                                    TYPE          VALUE
------------------------------------------------------------ ----------- ------------------------------------------
noncdb_compatible                                 boolean       FALSE

Set PDB as current Container

SQL> alter session set container = WINTPDB;

Set SGA_TARGET for the current PDB

SQL> alter system set sga_target=300M scope=both;

Sistema alterado.

SQL> show parameter sga_target

PARAMETER_NAME                                   TYPE           VALUE
------------------------------------------------------------ ----------- -----------------------------
sga_target                                       big integer 300M

I/O Parameters

The following parameters can be set at the PDB level.

MAX_IOPS : The maximum I/O operations per second for the PDB.
MAX_MBPS : The maximum megabytes of I/O per second for the PDB.

View parameter on CDB level. (If set at the CDB level they become default values used on all PDBs)

SQL> show parameter max_iops

PARAMETER_NAME                                  TYPE           VALUE
------------------------------------------------------------ ----------- -------------------------------
max_iops                                        integer 0

Set PDB as current Container

SQL> alter session set container = WINTPDB;

Set MAX_IOPS for the current PDB

SQL> alter system set max_iops=100 scope=both;

Sistema alterado.

SQL> show parameter max_iops

PARAMETER_NAME                                  TYPE            VALUE
------------------------------------------------------------ ----------- -----------------------------
max_iops                                        integer 100

Monitoring Resources

The following views can be used to monitor PDB Resources (CPU, I/O, Parallel Execution, Memory).

V$RSRCPDBMETRIC : A single row per PDB, holding the last of the 1 minute samples.
V$RSRCPDBMETRIC_HISTORY : 61 rows per PDB, holding the last 60 minutes worth of samples from the V$RSRCPDBMETRIC view.
V$RSRC_PDB : Cumulative statistics since the CDB resource plan ws set.
DBA_HIST_RSRC_PDB_METRIC : AWR snaphots, retained based on the AWR retention period.

Monitor I/O and Memory Usage for PDBs (Last 1 minute samples)

COLUMN pdb_name FORMAT A10
COLUMN begin_time FORMAT A21
COLUMN end_time FORMAT A21
SELECT r.con_id,
       p.pdb_name,
       r.begin_time,
       r.end_time,
       round(r.iops ,3) iops,
       round(r.iombps ,3) iombps,
       round(r.iops_throttle_exempt ,3) iops_throttle_exempt,
       round(r.iombps_throttle_exempt ,3) iombps_throttle_exempt,
       r.avg_io_throttle,
       r.sga_bytes,
       r.pga_bytes,
       r.buffer_cache_bytes,
       r.shared_pool_bytes
FROM  v$rsrcpdbmetric r,
      cdb_pdbs p
WHERE r.con_id = p.con_id
ORDER BY p.pdb_name;

DB Performance Profiles

In Oracle 12c Release 2 is possible to create a resource plan based on performance profiles which defines the resource management for groups of PDBs.

Each profile directive is made up of the following elements:

profile : The profile the directive relates to.
shares : The proportion of the CDB resources available to the PDB.
utilization_limit : The percentage of the CDBs available CPU that is available to the PDB.
parallel_server_limit : The percentage of the CDBs available parallel servers (PARALLEL_SERVERS_TARGET initialization parameter) that are available to the PDB.

Creating CDB Resource Plan:

DECLARE
l_plan VARCHAR2(30) := 'CDB_PLAN_TESTE';
BEGIN
DBMS_RESOURCE_MANAGER.clear_pending_area;
DBMS_RESOURCE_MANAGER.create_pending_area;

DBMS_RESOURCE_MANAGER.create_cdb_plan(
plan => l_plan,
comment => 'Profile Plan para Testes');

DBMS_RESOURCE_MANAGER.create_cdb_profile_directive(
plan     => l_plan,
profile => 'gold',
shares => 3,
memory_min => 50);

DBMS_RESOURCE_MANAGER.create_cdb_profile_directive(
plan                    => l_plan,
profile                 => 'silver',
shares                  => 2,
utilization_limit       => 40,
memory_limit            => 25);

DBMS_RESOURCE_MANAGER.validate_pending_area;
DBMS_RESOURCE_MANAGER.submit_pending_area;
END;
/

Information about the available CDB resource plans can be queried using the DBA_CDB_RSRC_PLANS view.

col comments format a30
col plan format a30
col profile format a30
SELECT PLAN, PROFILE, SHARES, UTILIZATION_LIMIT, PARALLEL_SERVER_LIMIT, MEMORY_MIN, MEMORY_LIMIT, COMMENTS
FROM DBA_CDB_RSRC_PLAN_DIRECTIVES
WHERE PLAN = 'CDB_PLAN_TESTE';

View parameter on CDB level. (If set at the CDB level they become default values used on all PDBs)

SHOW PARAMETER RESOURCE_MANAGER_PLAN

ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'CDB_PLAN_TESTE';

Setting performance profile on PDB

ALTER SESSION SET CONTAINER=WINTPDB;

ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'CDB_PLAN_TESTE';
ALTER SYSTEM SET DB_PERFORMANCE_PROFILE=gold SCOPE=SPFILE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN;

SHOW PARAMETER DB_PERFORMANCE_PROFILE;

References:

https://oracle-base.com/articles/12c/multitenant-disk-iops-mdps-resource-management-for-pdbs-12cr2
https://oracle-base.com/articles/12c/multitenant-memory-resource-management-for-pdbs-12cr2
https://oracle-base.com/articles/12c/multitenant-resource-manager-pdb-performance-profiles-12cr2
https://www.linkedin.com/pulse/oracle-12c-release-2-new-feature-controlling-memory-gavin-soorma/

COMENTÁRIOS

Política de Privacidade e Termos de Uso de Dados - Dataunique Tecnologia da Informação LTDA

A Dataunique Tecnologia da Informação LTDA, empresa devidamente registrada sob o CNPJ 15.179.495/0001-35, compromete-se a proteger a privacidade e segurança dos dados pessoais de seus usuários. Esta política descreve como coletamos, usamos, compartilhamos e protegemos as informações pessoais fornecidas por você.

1. Informações Coletadas

1.1. A Dataunique coleta informações fornecidas voluntariamente por você, como nome, endereço, e-mail, número de telefone, entre outras, durante o cadastro ou utilização de nossos serviços.

1.2. Dados de acesso e utilização de nossos serviços, como endereço IP, tipo de navegador, páginas visitadas e tempo de permanência, podem ser automaticamente registrados para melhorar a qualidade dos serviços oferecidos.

2. Uso de Informações

2.1. As informações coletadas são utilizadas para fornecer, manter, proteger e melhorar nossos serviços, bem como para desenvolver novos serviços.

2.2. Podemos utilizar seus dados para personalizar conteúdos, oferecer suporte ao cliente, enviar atualizações, newsletters e informações sobre novos produtos ou serviços.

3. Compartilhamento de Informações

3.1. A Dataunique não compartilha informações pessoais com terceiros, exceto quando necessário para cumprir obrigações legais, proteger nossos direitos ou em situações autorizadas por você.

4. Segurança de Dados

4.1. Utilizamos medidas de segurança adequadas para proteger suas informações contra acessos não autorizados, alterações, divulgação ou destruição não autorizada.

5. Cookies e Tecnologias Semelhantes

5.1. Utilizamos cookies e tecnologias semelhantes para melhorar a experiência do usuário, analisar o tráfego e personalizar conteúdos.

6. Seus Direitos

6.1. Você tem o direito de acessar, corrigir ou excluir suas informações pessoais. Para exercer esses direitos ou esclarecer dúvidas, entre em contato com nosso Encarregado de Proteção de Dados (DPO) através do e-mail [email protected].

7. Alterações na Política de Privacidade

7.1. Reservamo-nos o direito de alterar esta política a qualquer momento, e as alterações serão comunicadas por meio de nossos canais de comunicação.

Ao utilizar nossos serviços, você concorda com os termos desta Política de Privacidade. Recomendamos a leitura regular desta política para se manter informado sobre como tratamos seus dados pessoais.

Dados de Contato:

  • Endereço: Rua T30, 2515, Quadra 99 Lote 11/14, Sala 1404 e 1405, Edif Walk Bueno Business Edif e Lifestyle, SET BUENO, Goiânia – GO, 74215-060.
  • Telefone: (62) 99906-0584
  • Fax/Mensageiro Online: (62) 3223-2257
  • E-mail: [email protected]

Data de vigência: [Data de atualização da política]

Atenciosamente,

Dataunique Tecnologia da Informação LTDA