Em um servidor de banco de dados dedicado, quanta memória reservar para o sistema operacional?


38

Supondo que você tenha um servidor dedicado explicitamente para funções de banco de dados - quanta memória você deve reservar para o sistema operacional?

Sei que isso provavelmente varia um pouco, dependendo do sistema operacional específico, do software de banco de dados específico e assim por diante. Mas, como a memória é tão importante para o desempenho do banco de dados, desejo que o banco de dados tenha o nível máximo razoável de memória, sem passar fome pelo sistema operacional host.

tão

  • o que é uma boa regra de ouro para começar?
  • que contadores ou indicadores de desempenho devemos observar para determinar se fomos longe demais e o sistema operacional host está passando fome de alguma forma pelo banco de dados?

vocês alguma vez ajustaram essas configurações? O que o seu perfil lhe disse?
jcolebrand

@ jcole nada a acrescentar no momento; que normalmente reservar 4-6 GB para o sistema operacional que é um pouco mais conservador do que eu gostaria
Jeff Atwood

Respostas:


30

Supondo que o Windows e o SQL Server ...

Existem duas escolas de pensamento.

  1. Deixe 2-4 Gigs para Windows (dependendo do que estiver instalado além do SQL Server).
  2. Deixe 10% da sua memória disponível livre. À medida que você obtém mais de 64 Gigs, fica uma grande quantidade de memória para o sistema operacional, o que provavelmente não será necessário.

Pessoalmente, estou no primeiro grupo. O Windows geralmente só precisa de 2 a 4 GB, às vezes até 6.


2
Concorra com 2 ish gb de RAM para o sistema operacional.
jcolebrand

Eu também concordo. Normalmente deixo 2 GB para o sistema operacional e também asseguro espaço de arquivo de página contíguo. Obviamente, sua milhagem pode variar, e sua melhor aposta é definir a configuração, monitorar o desempenho e fazer alterações cautelosas conforme necessário.
Matt M

2
@matt certo, mas o que especificamente é melhor monitorar, quando se olha para "estou morrendo de fome no sistema operacional?"
Jeff Atwood

1
@ Jeff Meu comentário não foi tão preciso quanto deveria ter sido. Para memória, normalmente observo os seguintes contadores de desempenho: Memória: Páginas / s e Memória: bytes disponíveis. Consulte estas páginas para obter mais informações: sql-server-performance.com/articles/audit/… e technet.microsoft.com/en-us/library/cc966540.aspx (especificamente a seção Gargalos de memória)
Matt M

6
A resposta de @Jeff Denny está certa e, para os contadores Perfmon, assista ao Memory: Available Bytes. Se cair abaixo, digamos, 512 MB, você corre o risco de morrer de fome no sistema operacional. No entanto, também esteja ciente do cache de arquivos nos sistemas de 64 bits, que ainda aparece como disponível mesmo quando não estiver: blogs.msdn.com/b/ntdebugging/archive/2007/11/27/…
Brent Ozar

16

Supondo que o Linux, se você desativar o swap e o kernel continuar matando seu processo de banco de dados porque está sem memória, esse é um bom indicador de que você está passando fome no sistema operacional. Recue até que isso pare de acontecer. Algumas centenas de megas geralmente são suficientes.


+1 para o perfil perfil perfil ~ no entanto sendo que de Jeff Askin eu presumo que é SQLServer e Windows, com certeza;)
jcolebrand

1
@jcolebrand no entanto, também sabendo que é @jeff, você reconhecerá que ele não disse, o que significa que ele deixou intencionalmente aberto para todas as plataformas e bancos de dados.
Xenoterracide

2
E, ainda sabendo que é @jeff ... por que ele não deveria aprender a parar de se preocupar e amar o Linux? ;-)
Jürgen A. Erhard

8

Você pode aproveitar a experiência da Amazon executando milhares de servidores de banco de dados dos clientes aqui: No Amazon Relational Database Service, eles definem o buffer pool do innodb do MySQL para 3/4 da memória do sistema, independentemente da quantidade de memória. Adicione até alguns megas por conexão para vários buffers de consulta, e eles provavelmente deixarão 10 a 20% da memória para o sistema operacional.


5

Você deve ler a opinião de Brent Ozar sobre a memória. Ele tem algumas respostas bastante padrão sobre por que você deve procurar memória e por que mais memória é igual a melhor desempenho. De um modo geral, 4 GB ou 10% reservados para o SO.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.