Pular para o conteúdo
  • Este tópico contém 8 respostas, 4 vozes e foi atualizado pela última vez 14 anos, 4 meses atrás por jspaulonci.
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #101556
    bohnstedt
    Participante

      Prezados, bom dia

      Tenho um pouco de duvidas em relação ao aumento de memória. Tenho um servidor de 9 GB de memoria com S.O. RHEL 5.4. Então subi a instancia novamente, e deixei o default que são os 40% da memoria. Minha pergunta é até onde eu posso definir a memória sem dar problema? Qual a diferença entre o sga_target e sga_max_size? Porque eu vi tem 1.5GB dividido tanto para a target quanto para SGA_MAX_SIZE. E a PGA quanto que eu sei que está alocado para ela. Se eu subir mais do que eu devo o que acontece e o que eu posso fazer para voltar ao normal?

      Segue abaixo evidências:

      SQL> show parameter sga

      NAME TYPE VALUE
      ———————————— ———– ——————————
      lock_sga boolean FALSE
      pre_page_sga boolean FALSE
      sga_max_size big integer 1536M
      sga_target big integer 1536M

      Agradeço

      Att,

      Fábio

      #101563
      jspaulonci
      Participante

        Oi bohnstedt

        Uma boa métrica para alocação da SGA é configurar até 70 ou 60 da memória do servidor

        SGA_MAX_SIZE + PGA < Total de memória do servidor

        A grosso modo é isso.

        #101565
        rman
        Participante

          Complementando…

          SGA_TARGET <= SGA_MAX_SIZE <= tamanho da partição /dev/shm

          #101566
          jspaulonci
          Participante

            Rman, um comportamento que tenho visto é :

            Se eu não utilizar MEMORY_TARGET, eu não preciso do /dev/shm, qual a sua opnião sobre isso ?

            #101570
            rman
            Participante

              @jspaulonci

              Realmente você está certo. Eu pensei que de qualquer forma fosse utilizado o /dev/shm. Mas no caso do Oracle 10g essa partição não é necessária ?

              Corrigindo:

              No Oracle 11g:

              MEMORY_TARGET <= MEMORY_MAX_TARGET <= tamanho da partição /dev/shm

              MEMORY_TARGET é um parâmetro introduzido no Oracle 11g, esse parâmetro habilita do Automatic Memory Management. Desta forma não é necessário especificar SGA_TARGET e PGA_AGGREGATE_TARGET, o próprio Oracle vai fazer a distribuição necessária. A partição /dev/shm é usada pelo Automatic Memory Management.

              No Oracle 10g:

              Não existe MEMORY_TARGET e MEMORY_MAX_TARGET.

              SGA_TARGET <= SGA_MAX_SIZE

              #101572
              jspaulonci
              Participante

                Que bom RMAN estamos alinhados.

                Abração

                #101578
                bohnstedt
                Participante

                  E qual a função do SGA_TARGET? Tipo de o SGA_MAX_SIZE tem algum problema ficar maior que SGA_TARGET? E se eu colocar mta memória que problema que pode ter e o que eu posso fazer????

                  Mto Obrigado

                  Att,

                  Fábio Bohnstedt

                  #101582
                  Victor Armbrust
                  Mestre

                    Pessoal,

                    Estou vendo os comentários da galera, show. Mas antes de mais nada é FUNDAMENTAL realizar a configuração adequada do Kernel no linux. (Parametrização de memória, etc…). Como todos já sabem isso fica no /etc/systctl.conf. O ideal é ajustar este arquivo corretamente e posteriormente pensar em memória para o Banco de Dados.

                    O SGA_TARGET tem como objetivo principal gerenciar todos os componentes da SGA (vide: http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams193.htm) e também ativar a utilização do ASMM ( Automatic Shared Memory Management).

                    o SGA_MAX_SIZE define o tamanho máximo da SGA (vide: http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams192.htm) logo, o SGA_TARGET não poderá ultrapassar o SGA_MAX_SIZE.

                    Ainda vale lembrar que as configurações de SWAP devem ser propriamente denifidas de acordo com o montante total de memória física.

                    Eu NÃO UTILIZO e NUNCA UTILIZEI como parâmetro de memória para SGA calcular ou fazer contas do tipo: “X”% da memória total, nem acredito que seja o ideal. O que faço é sempre subir um valor COMPATÍVEL com a necessidade do Database que estou Administrando (Isso varia de Daatabase pra Database especialmente se utilizar RAC).
                    O que deve-ser feito é um acompanhamento constante via Relatórios AWR, utilizando os ADVISORs e observando taxas de HIT/RATIO de cada componente (Shared Pool, PGA, Buffer Cache, etc..)..

                    Acho que vale muito a pena pra quem tem dúvida compreender de maneira correta o gerenciamento de memória no Oracle:(vide: http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/memory.htm#PFGRF014)

                    Outra recomendação: SEMPRE UTILIZAR A DOCUMENTAÇÃO ORACLE, EVITANDO UTILIZAR SITES TERCEIROS, ASSIM PODE-SE CHEGAR NA INFORMAÇÃO CORRETA DO FABRICANTE.

                    abs
                    Victor DBA

                    #101588
                    jspaulonci
                    Participante

                      Concordo plenamente contigo Victor, eu tive e vira e mexe tenho um problema de memória com esses parametros. Não sou completamente contra o gerenciamento automático de memória, porem para todos os meus parametros eu deixo valores mínimos, ou seja , aquele valor nunca será diminuído pelo Oracle.

                      Recomendo tomar cuidado com as taxas de HITS, o acompanhamento para chegarmos a um valor ideal depende de monitoramento todos os dias, em momentos de pico ou quando a SGA acabou de subir esses valores podem ser mascarados.

                      Quanto a configuração de semafóros de memória e tal, recomendo a leitura para cada SO.

                    Visualizando 9 posts - 1 até 9 (de 9 do total)
                    • Você deve fazer login para responder a este tópico.