En un servidor de base de datos dedicado, ¿cuánta memoria reservar para el sistema operativo?

38

Suponiendo que tiene un servidor dedicado explícitamente para las funciones de la base de datos, ¿cuánta memoria debe reservar para el sistema operativo?

Me doy cuenta de que esto probablemente variará un poco dependiendo del sistema operativo específico, el software de base de datos específico, etc. Pero, como la memoria es tan importante para el rendimiento de la base de datos, quiero que la base de datos tenga el nivel máximo razonable de memoria, sin privar al sistema operativo host.

Asi que

  • ¿Cuál es una buena regla general para empezar?
  • ¿Qué indicadores o indicadores de rendimiento deberíamos observar para determinar si hemos ido demasiado lejos y la base de datos está matando de hambre al sistema operativo host?
Jeff Atwood
fuente
¿alguna vez modificaron esta configuración? ¿Qué te dijo tu perfil?
jcolebrand
@jcole no hay nada que agregar en este momento; normalmente reservamos 4 - 6 gb para el sistema operativo, que es un poco más conservador de lo que quisiera
Jeff Atwood

Respuestas:

30

Suponiendo que Windows y SQL Server ...

Hay dos escuelas de pensamiento.

  1. Deje 2-4 Gigs para Windows (dependiendo de lo que esté instalado además de SQL Server).
  2. Deje libre el 10% de su memoria disponible. A medida que obtienes más de 64 Gigs, esta será una gran cantidad de memoria para el sistema operativo, que probablemente no necesitará.

Personalmente estoy en el primer grupo. Windows generalmente solo necesita 2-4 conciertos, a veces hasta 6.

mrdenny
fuente
2
Concurra en 2 ish gb de RAM para el sistema operativo.
jcolebrand
Yo tambien estoy de acuerdo. Por lo general, dejo 2 GB para el sistema operativo y también aseguro el espacio contiguo de archivos de página. Por supuesto, su kilometraje puede variar, y su mejor opción es configurar la configuración, controlar el rendimiento y realizar cambios cautelosos según sea necesario.
Matt M
2
@matt está bien, pero ¿qué es lo mejor específicamente para monitorear, cuando miramos "¿me estoy quedando sin memoria del sistema operativo?"
Jeff Atwood
1
@Jeff Mi comentario no fue tan preciso como debería haber sido. Para la memoria, normalmente miro los siguientes contadores de rendimiento: Memoria: páginas / segundo y Memoria: bytes disponibles. Consulte estas páginas para obtener más información: sql-server-performance.com/articles/audit/… y technet.microsoft.com/en-us/library/cc966540.aspx (específicamente la sección Cuellos de botella de memoria)
Matt M
66
La respuesta de @Jeff Denny es correcta, y para los contadores de Perfmon, mire Memoria: Bytes disponibles. Si cae por debajo, digamos, 512 MB, está en peligro de matar de hambre al sistema operativo. Sin embargo, también tenga en cuenta la caché de archivos en los sistemas de 64 bits, que aún aparece como disponible incluso cuando no lo está: blogs.msdn.com/b/ntdebugging/archive/2007/11/27/…
Brent Ozar
16

Suponiendo que Linux, si apaga el intercambio y el kernel sigue matando su proceso de base de datos porque no tiene memoria, es un buen indicador de que le falta memoria al sistema operativo. Retroceda hasta que eso deje de suceder. Un par de cientos de megas suele ser suficiente.

Dan Grossman
fuente
+1 para perfil perfil perfil ~ sin embargo, dado que es Jeff askin, supongo que es SQLServer y Windows con seguridad;)
jcolebrand
1
@jcolebrand sin embargo, también sabiendo que es @jeff reconocerás que no dijo, lo que significa que intencionalmente dejó esto abierto para todas las plataformas y bases de datos.
xenoterracide
2
Y, aún sabiendo que es @jeff ... ¿por qué no debería ser capaz de aprender a dejar de preocuparse y amar a Linux? ;-)
Jürgen A. Erhard
8

Puede aprovechar la experiencia de Amazon ejecutando miles de servidores de bases de datos de clientes aquí: en Amazon Relational Database Service, configuraron el grupo de búferes innodb de MySQL en 3/4 de la memoria del sistema, independientemente de la cantidad de memoria que sea. Agregue hasta un par de megas por conexión para varios búferes de consultas, y es probable que dejen del 10 al 20% de la memoria al sistema operativo.

Dan Grossman
fuente
5

Deberías leer la versión de Brent Ozar sobre la memoria. Tiene algunas respuestas bastante estándar sobre por qué debería buscar memoria y por qué más memoria equivale a un mejor rendimiento. En general, 4 GB o 10% reservado para el sistema operativo.

Troya
fuente