- Este tópico contém 16 respostas, 6 vozes e foi atualizado pela última vez 16 anos, 5 meses atrás por Rodrigo Almeida.
-
AutorPosts
-
15 de julho de 2008 às 6:59 pm #82244mpvargasParticipante
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 1818652E com relação a SWAP, tem que ser do tamanho da memória?
15 de julho de 2008 às 8:02 pm #82245CleitonHanzenParticipanteOpá…
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.15 de julho de 2008 às 9:12 pm #82246mpvargasParticipanteCaro 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?15 de julho de 2008 às 10:22 pm #82247Regis AraujoParticipanteBoa 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.
15 de julho de 2008 às 10:24 pm #82248hermesmcParticipanteE quanto ao tamanho de PGA, existe alguma regra?
15 de julho de 2008 às 11:44 pm #82250Regis AraujoParticipanteOpa 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
15 de julho de 2008 às 11:49 pm #82251Regis AraujoParticipanteEncontrei 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’16 de julho de 2008 às 7:32 am #82252vieriParticipanteInteressante o script poderia colocar a fonte ?
O valor pra ser inserido é o total de mémoria da maquina correto…. ?16 de julho de 2008 às 4:02 pm #82253Regis AraujoParticipanteOla 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,
16 de julho de 2008 às 5:44 pm #82254mpvargasParticipanteObrigado 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…16 de julho de 2008 às 6:56 pm #82256Regis AraujoParticipanteVargas, 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…
17 de julho de 2008 às 7:45 pm #82262mpvargasParticipanteCaros 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.18 de julho de 2008 às 5:32 pm #82266mpvargasParticipanteUma 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.19 de julho de 2008 às 9:06 pm #82274Rodrigo AlmeidaParticipanteVou 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, 🙄
21 de julho de 2008 às 5:24 am #82277CleitonHanzenParticipanteOpá…
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. -
AutorPosts
- Você deve fazer login para responder a este tópico.