AIX 6.1 JFS2 sistema de arquivos Oracle, não usando muito cache do sistema de arquivos

3

Estou executando o banco de dados Oracle no AIX 6.1, Oracle usando sistemas de arquivos JFS2. O Maxperm está definido para 90%. Este é um servidor de banco de dados ocupado, mas não está usando o cache do sistema de arquivos (menos de 2%). O sistema tem 40GB de memória livre.

Existe uma razão pela qual o cache do sistema de arquivos não é usado?

    
por sfgroups 02.08.2012 / 04:53

1 resposta

3

O Oracle realmente trabalha duro para evitar os caches do sistema de arquivos para arquivos de dados (e arquivos de controle e registro) em sistemas onde isso pode ser feito. É o caso do AIX e JFS2 com E / S simultâneas (consulte Como administrar o banco de dados Oracle em AIX para conselhos de ajuste também).

A ideia é evitar o buffer duplo dos dados. O Oracle armazena em cache os blocos no SGA. Se o sistema operacional armazena esses também, você os tem duas vezes na memória RAM, o que é um desperdício. E a Oracle deve ser capaz de gerenciar seu cache com mais precisão do que as políticas de substituição de cache do sistema operacional - ele tem mais informações sobre a importância / intensidade dos blocos em relação à carga de trabalho atual do que o sistema operacional em circunstâncias normais. > (O Oracle também faz um "buffer de gravação" muito sofisticado que somente o banco de dados pode fazer para manter as propriedades do ACID e precisa controlar precisamente quando e o que liberar e sincronizar.)

Se você tem RAM livre, e sua taxa de acertos do cache do Oracle não é boa, você deve considerar aumentar o tamanho do SGA (o cache de buffer do banco de dados em particular). Observe o V$DB_CACHE_ADVICE e outras visualizações de ajuste e tenha em mente que você precisa de RAM também para outras coisas (especialmente o PGA, mas também aplicativos não-Oracle), portanto, não aloque toda a sua RAM para o SGA.
Se você estiver usando o Oracle 11g, configure o Gerenciamento automático de memória deve ser considerado Assim, você pode definir um tamanho de memória de destino único e permitir que o Oracle equilibre as áreas diferentes. (Para a versão anterior, procure no gerenciamento automático de SGA e PGA.)

Como sempre, teste (e faça referência) quaisquer alterações feitas antes de aplicar a sistemas de produção. E não morram de fome no sistema operacional, deixem uma quantidade "razoável" de memória fora das áreas de memória do Oracle para outras necessidades.

Observe se o mecanismo do banco de dados (qualquer que seja a marca) ou o sistema de arquivos / SO é o melhor no armazenamento em cache é um debate antiquíssimo. Um banco de dados bem ajustado deve ser melhor em cache em circunstâncias normais. O sistema operacional provavelmente vencerá um banco de dados mal configurado.

    
por 02.08.2012 / 07:14