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?
sql-server
windows
memory
Jeff Atwood
fonte
fonte
Respostas:
Supondo que o Windows e o SQL Server ...
Existem duas escolas de pensamento.
Pessoalmente, estou no primeiro grupo. O Windows geralmente só precisa de 2 a 4 GB, às vezes até 6.
fonte
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.
fonte
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.
fonte
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.
fonte