Consideraciones de memoria sql server hardware

28
Consideraciones Memoria en Hardware para SQL Server Ing.. Eduardo Castro MVP de Microsoft SQL Server PASS Regional Mentor

Transcript of Consideraciones de memoria sql server hardware

Page 1: Consideraciones de memoria sql server hardware

Consideraciones Memoria en Hardware para SQL ServerIng.. Eduardo CastroMVP de Microsoft SQL ServerPASS Regional Mentor

Page 2: Consideraciones de memoria sql server hardware

Memoria de SQL Server

Page 3: Consideraciones de memoria sql server hardware

Memoria SQLBuffer Pool• Consta de páginas de 8 KB• Caché de datos se almacena

aquíMotor SQL• Componentes de SQL• Plan de ejecución que tiene más

de 8 kb• SQL CLR (Common Language

Runtime) • También se llama MemToLeave

63

Page 4: Consideraciones de memoria sql server hardware

Memoria Máxima ServidorConsidere limitar SQL para 50% -80% De memoria total si SQL coexistirá en el servidor con otro producto

Considere limitar SQL al 80% -90% si HW SQL servidor está dedicado

ejemplo: servidor dedicado SQL que sólo aloja las bases de datos o un clúster de SQL

SQL: Configuración de memoria

Page 5: Consideraciones de memoria sql server hardware

Mínimo de memoria del servidor• SQL no asigna Mínimo Memoria del servidor en el arranque • Crece hasta alcanza máximo• Una vez que Buffer Pool alcanza la Memoria Mínima Server, SQL no

liberará la memoria

NOTA: Ajuste de la configuración de la memoria del servidor Mínimo Máximo

SQL: Configuración de memoria

65

Page 6: Consideraciones de memoria sql server hardware

SQL Buffer Pool Memory Pressure cuando SQL no tiene suficiente memoria para almacenar datos en la memoriaPuede resultar en exceso E / SCompruebe los siguientes contadores:

SQL: Buffer Manager -> Lazy writes/ Sec aumentaSQL: Buffer Manager -> Page Life Expectancy bajaSQL: Buffer Manager -> Free Pages baja

La detección de presión de memoria de SQL

Page 7: Consideraciones de memoria sql server hardware

• SQLServer:Buffer Manager ->Buffer cache hit ratio(>90-95%)->Free pages(>640)->Lazy writes/sec (<20)->Page life expectancy (>300)->Page reads/sec (<90)->Page writes/sec (<90)

• SQLServer:Memory Manager-> Target Server Memory (KB) (Target >= Total)-> Total Server Memory (KB) (Target >= Total)

SQL: SQL Perfmon Counters

Page 8: Consideraciones de memoria sql server hardware

Memory Manager: Target Server Memory (KB) indica la cantidad de memoria de SQL Server podría usar para operar eficientemente

SQLServer: Memory Manager: Total Server Memory (KB) indica la cantidad de memoria que el servidor SQL está utilizando

Si Total Server Memory >= Target Server Memory, Puede indicar que SQL Server se encuentra bajo presión de memoria

Supervisión del rendimiento del SQL

Page 9: Consideraciones de memoria sql server hardware

CPUProcessor: %Processor Time - Si el 80-90% durante un período prolongadoProcessor: % Privileged Time - Si el contador es siempre alto, el Sistema de discos puede ser cuello de botella

MemoriaSQLServer: Buffer Manager: Buffer Cache Hit Ratio - menos del 90% indica presión de memoriaMemory: Pages/ sec: un alto índice de este contador indica una paginación excesiva

Supervisión del rendimiento del SQL

Page 10: Consideraciones de memoria sql server hardware

TempDB base de datos por lo general se utiliza muchoNo se recomienda autogrow.Divida TempDB en varios archivos, un archivo de datos por cada CPU, y cada archivo debe establecerse el mismo tamañoInformación adicional aquí http:/ /msdn.microsoft.com/en-us/library/ms175527.aspx

TempDB

Page 11: Consideraciones de memoria sql server hardware

Aislar los archivos de bitácora de transacciones de base de datos a nivel de archivos en disco

Recomendado tener al menos un 20% de espacio libre en disco en todas las unidades de disco.

Importante para el funcionamiento y para evitar quedarse sin espacio

Almacenamiento

Page 12: Consideraciones de memoria sql server hardware

Servidores virtuales

Page 13: Consideraciones de memoria sql server hardware

Uso los servidores físicos o virtuales para mi SQL Server?

SQL Server 2012 soportado en servidores físicos y virtualesCada vez son más los clientes que utilizan servidores virtuales para su SQL. Los beneficios incluyen:

Los costos de hardware del servidor reducidasLos costos del centro de datos reducidoMás fácil de mover servidores virtuales de un host a otro Fácil de añadir / borrar la memoria, CPU, etc a / de sistema operativo invitado Tecnología de Snapshot permite la reversión en caso de problemas, actualizaciones fallidas, etc

Servidores Físicos o Virtuales?

Page 14: Consideraciones de memoria sql server hardware

Si utiliza servidores virtuales:Verificar que el servidor host puede manejar el adicional carga Discos lentos, Poca memoria y uso de CPU puede tener un impacto importante en SQL ServerEvitar utilizando unidades virtuales dinámicos (VHD), ya que pueden reducir el rendimientoAsigne al menos dos CPU virtuales para la instancia de SQL ServerNo asigne más CPUs virtuales que el número de disposición lógica CPUs

Asegúrese que se cumplen, al menos, las / requisitos de CPU / disco de memoria recomendadas - no reducir los recursos porque es una máquina virtual

Servidores Físicos o Virtuales?

Page 15: Consideraciones de memoria sql server hardware

inMemory OLTP

Page 16: Consideraciones de memoria sql server hardware

In-Memory OLTP utiliza la memoria y el disco de manera diferente a las tablas basadas en disco tradicionales. La mejora del rendimiento se verá con In-Memory OLTP depende del hardware que utiliza.

Consideraciones HW para In-Memory OLTP en SQL Server 2014

Page 17: Consideraciones de memoria sql server hardware

In-Memory OLTP no requiere un servidor de alta gama para soportar una carga de trabajo OLTP de alto rendimiento. Recomendación es utilizar un servidor con 2 sockets de CPU. Debido al aumento de redimiento permitido por In-Memory OLTP, 2 sockets es probable que va a ser suficiente para sus necesidades.Encienda el hyper-threading con OLTP en memoria. Con algunas cargas de trabajo OLTP hay ganancias de rendimiento de hasta un 40% cuando se utiliza hyper-threading.

CPU

Page 18: Consideraciones de memoria sql server hardware

Todas las tablas optimizado para memoria residen totalmente en la memoria. Por lo tanto, debe tener suficiente memoria física para las tablas y para sostener la carga de trabajo La cantidad de memoria que realmente se necesita en realidad depende de la carga de trabajo, un punto de partida es tener memoria disponible por alrededor de 2 veces el tamaño de los datos.

Memoria

Page 19: Consideraciones de memoria sql server hardware

• Para determinar la cantidad de memoria que utiliza una tabla en memoria, ejecute la siguiente consulta:select object_name(object_id), * from sys.dm_db_xtp_table_memory_stats

• Los resultados mostrarán la memoria utilizada para las tablas optimizadas para memoria, sus índices y versiones

Memoria

Page 20: Consideraciones de memoria sql server hardware

Es importante tener en cuenta cuando se utiliza OLTP en memoria que toda su base de datos no tiene que caber en la memoria.

Usted puede tener una base de datos multi-terabyte y seguir beneficiándose de OLTP en memoria, siempre y cuando el tamaño de los datos criticos (es decir, las tablas optimizadas para memoria) no sea superior a 256 GB.

Memoria

Page 21: Consideraciones de memoria sql server hardware

El número máximo de checkpoints de archivos de datos que SQL Server puede administrar una sola base de datos es 4000, donde cada archivo de 128 MB.

Aunque esto le daría un máximo teórico de 512 GB, con el fin de garantizar que SQL Server rendimiento se restring a 4.000 archivos, con soporte hasta 256 GB.

Memoria

Page 22: Consideraciones de memoria sql server hardware

Los logs relacionados con las tablas en memoria se escriben en el registro de transacciones de base de datos, junto con los otros registros de SQL Server.

Siempre es importante poner el archivo de log en una unidad que tiene una latencia baja, de manera que las transacciones no tienen que esperar demasiado tiempo, y para evitar la contención en registro de IO.

Log Drive

Page 23: Consideraciones de memoria sql server hardware

Su sistema se ejecutará tan rápido como su componente más lento (la ley de Amdahl). Usted necesita asegurarse que, cuando se ejecuta en inMemory OLTP, el dispositivo IO de logs no se convierta en un cuello de botella.

Se recomenda uso de un dispositivo de almacenamiento con una latencia baja, por lo menos SSD.

Log drive

Page 24: Consideraciones de memoria sql server hardware

La persistencia de las tablas en memoria utiliza checkpoints basados en streaming IO.Por lo tanto, estos archivos no necesitan una unidad con baja latencia o rápido IO aleatorio. El factor principal de estas unidades es la velocidad de la IO secuencial y ancho de banda del adaptador de bus de host (HBA).

Unidad de datos

Page 25: Consideraciones de memoria sql server hardware

Por lo tanto, usted no necesita los SSD para archivos de checkpoint; usted puede colocarlos en spindles de alto rendimiento (por ejemplo, SAS), siempre y cuando su velocidad secuencial IO se ajuste a sus necesidades.

El factor más importante para determinar el requisito de velocidad es su RTO [Recovery Time Objective] al reiniciar el servidor.

Unidad de datos

Page 26: Consideraciones de memoria sql server hardware

Durante la recuperación de base de datos, todos los datos de las tablas en memoria necesitan ser leídos desde el disco, en la memoria.

La Recuperación de base de datos depende de la velocidad de lectura secuencial del subsistema de IO; disco es el cuello de botella.

Unidad de datos

Page 27: Consideraciones de memoria sql server hardware

Para cumplir con los estrictos requisitos de RTO se recomienda distribuir los archivos de checkpoint en varios discos, mediante la adición de varios contenedores a filegropu de MEMORY_OPTIMIZED_DATA.

SQL Server soporta carga paralela de archivos de checkpoint de varias unidades - la recuperación utiliza la velocidad total de las unidades.

RTO Estricto

Page 28: Consideraciones de memoria sql server hardware

En términos de la capacidad del disco, se recomienda tener 2-3X el tamaño de las tablas en memoria disponibles.

RTO