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?
Jeff Atwood
fonte
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.

Mrdenny
fonte
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.

Dan Grossman
fonte
+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.

Dan Grossman
fonte
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.

Troy
fonte