Upload
eduardo-castro
View
63
Download
3
Embed Size (px)
Citation preview
Consideraciones Memoria en Hardware para SQL ServerIng.. Eduardo CastroMVP de Microsoft SQL ServerPASS Regional Mentor
Memoria de SQL Server
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
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
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
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
• 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
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
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
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
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
Servidores virtuales
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?
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?
inMemory OLTP
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
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
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
• 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
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
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
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
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
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
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
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
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
En términos de la capacidad del disco, se recomienda tener 2-3X el tamaño de las tablas en memoria disponibles.
RTO