Consolidação: Controle do uso de CPUs no Oracle Database

Um ambiente consolidado sempre foi um problema para o Oracle Database. Se um sistema operacional tiver mais do que um uma instância em execução, uma grande carga que seja executada em uma delas pode comprometer todas as outras.

A saída para esta situação é utilizar apenas uma instância e SHEMAs diferentes, mas isto às vezes não é possível. Outra solução é utilizar Container Databases, mas esta funcionalidade ainda tem diversas limitações para consolidação que podem trazer impacto a todo o ambiente (por exemplo, Redo Logs e Undo são compartilhados).

Para minimizar este problema, na versao 11.2.0.1 foi lançado o Instance Caging, onde o parâmetro CPU_COUNT limita a quantidade de CPUs lógicas que a instância poderá utilizar.

Documentação Oracle: Instance Caging
http://docs.oracle.com/cd/E11882_01/server.112/e41360/chapter1.htm

Esta solução é visivelmente precária, pois ainda não garante que duas instâncias concorram pela mesma CPU.

Esta limitação foi corrigida na versão 12.1.0.1, com o uso de Processor Groups. O administrador do sistema operacional deve criar um grupo de processadores (no Linux chama-se “control groups”, e no Solaris chama-se “resource pool”), e indicar o nome deste grupo no parâmetro PROCESSOR_GROUP_NAME do Oracle Database.

Documentação Oracle: Integrate With Operating System Processor Groups
http://docs.oracle.com/database/121/NEWFT/chapter12101.htm

Documentação Red Hat: Introdução ao Grupos de Controle (Cgroups)
https://access.redhat.com/documentation/pt-BR/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.