Pular para o conteúdo
  • Este tópico contém 16 respostas, 6 vozes e foi atualizado pela última vez 16 anos, 5 meses atrás por Rodrigo Almeida.
Visualizando 15 posts - 1 até 15 (de 17 do total)
  • Autor
    Posts
  • #82244
    mpvargas
    Participante

      Caros Amigos,
      Alteramos recentemente o nosso servidor para linux.
      O servidor anterior, com AIX, tinha 12 Gb RAM e o novo servidor com linux tem 6 Gb RAM.
      No AIX eu coloquei 8 Gb na SGA, mas no linux estou em dúvida até quanto de memória posso colocar… no momento configurei somente 2 Gb, mas quando verifico a memória, observo que tem bastante memória livre.
      Alguém tem uma situação parecida que possa ajudar-me? Obrigado !

      total used free shared buffers cached
      Mem: 6230512 6209092 21420 0 4928 5513448
      -/+ buffers/cache: 690716 5539796
      Swap: 2031608 212956 1818652

      E com relação a SWAP, tem que ser do tamanho da memória?

      #82245
      CleitonHanzen
      Participante

        Opá…
        O ideal (de 2 até 8gb de RAM) é deixar a área de swap com o mesmo tamanho da memória RAM, isto se deve ao próprio kernel do Linux que tem uma “política” de alocar a memória e deixar em cache para acessar mais rápido e fazer a “troca” de memória da memória RAM para a memória virtual quando um processo fica inativo e outro processo precisa alocar memória.
        O recomendável para oracle 10g (segundo o curso oficial de performance tuning) é deixar 60% da memória do servidor alocada para o banco.

        #82246
        mpvargas
        Participante

          Caro Cleiton,
          Obrigado pela ajuda.
          Então o ideal seria eu aumentar o SWAP para os mesmos 6Gb que tenho de memória e para SGA posso tranquilamente chegar até os 3,5Gb, ok?

          #82247
          Avatar photoRegis Araujo
          Participante

            Boa tarde Vargas,

            É complicado falarmos de tamanho ideal para Swap, pois isto vai depender de quanto de memória seu S.O. vai utilizar, em diversos lugares você encontrará pessoas falando que a Swap deve ser o dobro da RAM, etc.
            No seu caso os 2GB de Swap já é o suficiente, pois você atualmente esta utilizando cerca de 1% da Swap.

            Você sempre deve tomar cuidado com utilização de espaço de disco para definir memória “virtual” (Swap/SGA), pois se o espaço em disco não for grande, isto poderá provocar futuros problemas.

            Creio que para a SGA um bom tamanho será de aproximadamente 3GB, mas se este tamanho estiver dimensionado com algum erro, o próprio ORACLE ira dar uma mensagem de que o tamanho da SGA foi mal dimensionado e possívelmente irá informar que você deve alterar para um tamanho padrão.

            Abraços.

            #82248
            hermesmc
            Participante

              E quanto ao tamanho de PGA, existe alguma regra?

              #82250
              Avatar photoRegis Araujo
              Participante

                Opa Hermes, boa tarde!

                Em pesquisas por alguns foruns, encontrei 1 que fala que pode-se determinar um tamanho aproximado da PGA multiplicando o número máximo de usuários conectados no banco por 3.6MB e este será um tamanho ideal da sua PGA, mas isto somente poderá ser garantido com testes.

                Creio que estas informações seriam muito bem vindas em um post ou algo do tipo, pois as informações que eu utilizo em meus bancos são de acordo com os testes que temos efetuado em bancos de desenvolvimento, pois os tamanhos dependem muito de servidor para servidor.

                Abraços

                #82251
                Avatar photoRegis Araujo
                Participante

                  Encontrei em um site o select abaixo, informa para colocar a quantidade de usuários e retorna um número aproximado de tamanho para o PGA.

                  select
                  &hwm*(2048576+a.value+b.value) pga_size
                  from
                  v$parameter a,
                  v$parameter b
                  where
                  a.name = ‘sort_area_size’
                  and
                  b.name = ‘hash_area_size’

                  #82252
                  vieri
                  Participante

                    Interessante o script poderia colocar a fonte ?
                    O valor pra ser inserido é o total de mémoria da maquina correto…. ?

                    #82253
                    Avatar photoRegis Araujo
                    Participante

                      Ola Vieri, bom dia!

                      Também achei bem interessante este script, a fonte esta abaixo, estou pesquisando mais informações para não me equivocar nas informações que posto aqui.

                      http://www.dba-oracle.com/oracle_tips_pga_size.htm

                      Creio que o valor obtido no select é o total de PGA que o oracle irá utilizar com a quantidade informada de usuários conectados, então creio que basta criar uma PGA com um tamanho um pouco maior ao informado.

                      Abraços,

                      #82254
                      mpvargas
                      Participante

                        Obrigado a todos pela ajuda.
                        Observei que no EM ele não dá nenhuma mensagem referente a SGA, e quando agente usava no AIX e a máquina tinha o dobro de memória, a SGA era de 8Gb e o EM sempre sinalizava para aumentar… chegou a pedir 12Gb.
                        Pela pouca experiência que tenho, não sei o comportamento do banco com relação ao SO, mas parece que no linux ele trabalha bem mais light.
                        Vou aumentar para 2,5 Gb e observar…
                        Tenho dúvida tb com relação ao tamanho do Redo Log Buffer, atualmente o valor está em 14,8Mb… mas qdo era no AIX agente usava 4x mais…

                        #82256
                        Avatar photoRegis Araujo
                        Participante

                          Vargas, bom dia!

                          Com relação ao arquivo REDO, fica de acordo com as necessidades do seu banco, se você tiver espaço em disco, aconselho a criar de 3 à 5 grupos de Redo com 100MB cada.

                          Obs: Este tamanho é para um banco de produção, onde a utilização do mesmo é de certo modo intenso.

                          Deixe o Archive Log ativo e faça backups integros destes arquivos.

                          Abraços…

                          #82262
                          mpvargas
                          Participante

                            Caros Amigos,
                            Voltando ao assunto da SGA… tentei aumentar a minha SGA para 3Gb e quando fui subir o banco deu a msg “out of memory”…
                            Alterei novamente pelo SPFILE para 2Gb e voltou ao normal.
                            Já tive esse problema uma outra vez, abri um chamado e a Oracle recomendou alguns cálculos relativos a variável SHMALL do Kernel.
                            Verifiquei esse parâmetro e está conforme recomendação da Oracle, sinceramente não entendi o porque desse problema.
                            Alguém tem algum servidor Linux com 6Gb ou mais de memória?
                            Conseguiu aumentar a SGA até quanto?
                            Obrigado pela ajuda.

                            #82266
                            mpvargas
                            Participante

                              Uma outra questão.
                              Como saber se o banco está configurado de forma correta?
                              Eu utilizo algumas queries para testar alguns parâmetros, … mas só existe essa forma ou tem algum outro método.
                              Obrigado.

                              #82274
                              Rodrigo Almeida
                              Participante

                                Vou entrar de bico aqui na discussão.. rs rs rs.

                                BOM! Tamanho para uma SGA nunca podemos saber qual é o ideal, sempre irá depender do seu SO, Hardware, configuração de VLM e de como o banco de dados está trabalhando.

                                Se tiver muitos SELECTs literais, seu SGA deve ser maior, se tiver muitas binds, um valor menor fica melhor, se seu banco estiver com o parâmetro CURSOR_SHARING = SIMILIAR, um valor reduzido também melhora, se estiver com EXACT, aumente a SGA… então, para dizer um tamanho ideal de SGA, depende muito de como o banco de dados trabalha.

                                Concordo com o Regis, em dizer que tu poderá encontrar muitos sites e documentos que dizem os melhores valores de SGA, mas na prática, será diferente.

                                Uma ferramenta boa para analisar esses casos é utilizar o SpotLight da Quest, ele dá uma boa visão de como está o uso de memoria do Oracle, tanto para SGA e PGA.

                                Sobre o Linux, quando se utiliza mais que 2GB de SGA, seu Sistema operacional deverá ter configuração de VLM (Very Large Memory) configurado para aceitar esses novos valores, seja por VLM convencional ou HugePages. Lembrando que o mesmo acontece com o Windows, quando precisa de mais de 2Gb de SGA e precisa habilitar o AWE.

                                Aí, nesse configuração, terá paginação no SO de até 2GB por página alocada em memória, e isso vai precisar de recursos de memoria disponivel e SWAP. Por isso, o ideal para SWAP com altos valores de memória e ser igual ou superior.

                                Resumindo, tudo irá depender de diversas variáveis. O melhor teste mesmo como dito anteriormente, é fazer na prática e analisar a instância, verificar os Latchs, contenção, performance, picos, e etc..

                                Abraços, 🙄

                                #82277
                                CleitonHanzen
                                Participante

                                  Opá…
                                  Dei a dica sobre o espaço de SWAP, não por “achismo”, mas sim é que o está na própria documentação, e inclusive já tive problemas de memória em servidores “mau instalados”, que não seguem nem sequer o que a Oracle diz que é o correto. A respeito do erro de memória, se o teu S.O for 32 bits, realmente precisa habilitar VLM para mais que 2GB, mas caso seja 64bits, precisa aumentar o parâmetro shmmax do kernel.

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