You are on page 1of 17

Arquitectura rendimiento y performance 08/05/2009

Tuning del motor relacional del SQL Server

Podemos medir
Arquitectura rendimiento y
performance Tuning del motor Tiempo
Uso de recursos
relacional del SQL Server Memoria
Cpu
Ing. J os e M ariano A lvarez Disco
j o s e . m a r i a n o . a l va r e z @g m a i l . c o m
Recursos requeridos para crear la solucin
ww w . s q l t o t a l c o n s u l t i n g . c o m
Programadores
Puestos de trabajo
2

Para pensar
Si tenemos un tiempo promedio de respuesta de 1
segundo en nuestro servidor

A provechar todos los recursos al mximo


Tenemos un servidor con buena performance o con
minimizando los costos mala performance ?
OBJETIVO

Algunos detalles
SQL Server corre como un programa ms de Windows
Fue diseado para Windows y por ello aprovecha todas las
caractersticas que tiene
No existe una API especial APIs que solo el SQL Server puede
usar
Solo usa funciones documentadas de Windows

Simplemente es un proceso ms de Windows


AR QUITECTURA INTERNA
No corre en modo kernel sino en modo usuario

1
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Principales componentes Vistas y funciones dinmicas


dm_exec_* Informacin relacionada al cdigo de los usuarios y las
conexiones

dm_os_* Informacin de bajo nivel dl funcionamiento del motor como


memoria, planificador, etc.

dm_tran_* Informacin de las transacciones actuales

dm_io_* Informacin de los recursos como red y discos

dm_db_* Informacin de las bases de datos y los objetos

Protocolos Protocolos
F ormatea los paquetes TD S
Memoria compartida Local y no soporta MDAC2.8
S ervidor
Protocol layer
Named pipes Local o remoto
Es parte del motor relacional
Puede usar multiples protocolos al mismo tiempo
C liente TCP-IP Local o remoto, Es el ms recomendable
Son parte del SQL Native Client
Virtual Interface
Solo puede comunicarse por un solo protocolo Solo funciona con hardware via
Adapter (VIA)

Tabular Data Stream Endpoints Open Data Services (ODS)


L a conexin es t repres entada en el s ervidor por Interfaz entre las libreras de red y las aplicaciones
un E ndpoint TD S .
Gestiona las conexiones y cancelaciones de comandos
Hay un E ndpoint para cada una de los cuatro
protocolos de red Protocolo de intercambio privado conocido como Tabular
si el protocolo est habilitado, todos los usuarios tienen acceso Data Stream (TDS)
Si esta deshabilitado el punto final todava existe, pero no se puede
utilizar. Ni los clientes ni el servidor escriben directamente TDS

Un endpoint adicional se crea para el conexin dedicada de sino mediante las libreras de red
administracion (DAC), que puede ser utilizado los miembros del rol
sysadmin.
12

2
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

ODS Buffers Database engine


Bfer de salida sincrnico con buffer cache en el cliente
provisto por el SO. Storage
Relational Engine
Dos Buffer de entrada para poder manejar las Engine
cancelaciones
La librera de red enva el paquete al cliente tan pronto
Maneja la
como este se llena. Componentes para
ejecucin de Procesa los
Componentes para
analizar y para tener acceso y
queries y solicita resultados
Si no se leen datos en el cliente el SQL Server deja de optimizar
datos al motor del recibidos
para modificar los
cualquier query datos sobre disco.
enviar y los recursos usados quedan bloqueados almacenamiento

13 14

Command parser (Analizador de


Relational Engine
comandos)
Gestiona los eventos de lenguaje del ODS
Command Query SQL Analiza la sintaxis

Parser Optimizer Manager Traduce a la sintaxis interna del motor conocida como
rbol de consultas
Database Query Emite los errores de sintaxis

Manager Executor

16

Optimizador Optimizador
Toma rbol de la consulta desde el analizador
Optimizacin est basada en costos
Elige el plan de costo mnimo sobre la base de
Compila la totalidad del batch en una forma interna
La estimacin de las necesidades de memoria,
Determina la mejor forma de resolverla si es optimizable La utilizacin de la CPU,
El nmero necesario de I/O.
Verifica la seguridad.

Genera un plan de ejecucin.

18

3
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Optimizador - Costos SQL manager


Costos calculados a partir de: Es el responsable de todo lo relacionado con la gestin de
el tipo de declaracin solicitada procedimientos almacenados, consultas parametrizadas y
Estadsticas de distribucin de los datos para cada columna o ndice de la
sus planes.
consulta
Mtodos de acceso
Gestiona el almacenamiento del cach de procedimiento para que
otros procesos puedan reutilizarlo
Estrategias de join
Se ocupa de autoparametrizacin de consultas.
los ndices disponibles para cada tabla
Determina cuando se requiere una recompilacin
Heursticas de poda del rbol de estrategias para que el costo
de obtener la solucin sea menor que el de ejecutarla
20

Database Manager Query executor


Maneja el acceso a los metadatos necesarios para la Corre el plan de la ejecucin que el optimizador produjo,
compilacin y optimizacin Acta como un despachador para todos los comandos en
el plan de ejecucin.
Este mdulo realiza un ciclo con cada comando del plan
de la ejecucin hasta que el batch est completo.

22

The Storage Engine The Storage Engine


Tradicionalmente se ha considerado que el storage engine Mtodos de
incluye todos los componentes que intervienen en el acceso

tratamiento de los datos en su base de datos.


En SQL Server 2005 aparecen otros componentes
Storage
Engine
Gestor de
SQLOS
transacciones

4
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Mtodos de acceso Mtodos de acceso


Configura y solicita exploraciones de paginas de datos y Cuando se inicia la exploracin, el mecanismo de look-
de paginas de ndices ahead califica las filas o entradas de ndices en una
Posee servicios para pgina.
Abrir una tabla
Recuperacin calificada
Recuperar datos calificados
Es la recuperacin de las filas que cumplen los criterios especificados.
Actualizar datos
Se emplea no slo para las consultas, sino tambin para las
No realiza la recuperacin sino que se la solicita al actualizaciones
administrador de buffers

Operaciones de filas e ndices Row operations manager


Mantiene y da soporte de la manipulacin Recupera, modifica y realiza operaciones sobre filas
Row manager de las filas individuales
Gestiona las actualizaciones
Mantiene y da soporte a las bsquedas
Index manager en los rboles B Mtodos de actualizacin
In-place en el lugar,
Cada componente es responsable de la manipulacin y el Split mode, por divisin (delete + insert)
mantenimiento de sus respectivas estructuras de datos en Split with collapse, por divisin con agrupamiento (varios delete +
disco. varios insert)
28

Operaciones de asignacion de
Tipos de paginas
paginas
Cada base de datos es una coleccin de paginas en disco Pginas de datos Datos de los usuarios
de 8 KB que se distribuyen en uno o ms archivos fsicos.
Gestiona una coleccin de pginas como un bases de Pginas LOB Datos de los usuarios
datos y mantiene un registro de:
que pginas en la base de datos ya han sido utilizados
Datos de los ndices Paginas de ndices
con qu fin se han utilizado
cunto espacio est disponible en cada pgina PFS: Realizar un seguimiento de las pginas de una base de
Page Free Space datos que estn disponibles para almacenar nuevos datos

5
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Tipos de paginas Version store


Global Allocation y Shared IAM y SGAM: Realiza un seguimiento de las dems pginas. No contiene Row versioning (versiones de filas) permite al SQL Server
Global Allocation Map ninguna fila de la base de datos y slo se utilizan internamente.
mantener las versiones anteriores de las filas que
Index Allocation Map IAM: Realiza un seguimiento de las dems pginas. No contienen cambiaron
ninguna fila de la base de datos y slo se utilizan internamente.
Da soporte:

Bulk Changed Map BCM:Se la usa para hacer el bakup y restore mas eficiente
Snapshot isolation
Online index builds (crear indices en lnea)
Triggers
Differential Changed Map DCM: Se la usa para hacer el bakup y restore mas eficiente
Otras operaciones que requieran versiones de filas

Propiedades ACID Transaction Manager


El objetivo es asegurar que se cumplan las propiedades
Atomicity Atomicidad. Asegura que la operacin se ha realizado o no, y por
lo tanto ante un fallo del sistema no puede quedar a medias.

ACID
Escritura anticipada en el Log de transacciones
Consistency Consistencia. Slo se empieza aquello que se puede terminar

Escritura sincrnica en el log de transacciones

Isolation Aislamiento. Una operacin no puede afectar a otras Escritura asincrnica (W2K+) en las pginas de datos

Coordina el registro, la recuperacin y la administracin


Durability Durabilidad. Una vez realizada la operacin, sta persistir y no
se podr deshacer aunque falle el sistema de buffers.
34

Transaction Manager Transaction Manager


Traza los lmites de las instrucciones que deben Se coordina con el administrador de bloqueos cuando
agruparse como una operacin pueden liberarse los bloqueos dependiendo del nivel de
Permite secuencias anidadas aislamiento
Coordina las transacciones distribuidas con el servicio Dependiendo del nivel de aislamiento coordina cuando

Microsoft Distributed Transaction Coordinator (MS DTC) versiones las anteriores anteriores pueden eliminarse del
usando RPC version store.

35

6
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Modelos de concurrencia Concurrencia optimista


Garantiza la exactitud y la consistencia
Los lectores no bloquean a los escritores
Pesimista bloqueando los datos para que no se puedan
cambiar. Es el nico modelo de concurrencia del
Los escritores no bloquean a los lectores

SQL Server 2000 o anterior. Los escritores todava bloquean a otro escritores

El costo de estos debe ser considerado


SQL Server 2005 introduce la concurrencia Debe dedicar ms tiempo en la gestin del version store
Optimista optimista, que dispone de datos coherentes,
manteniendo las versiones anteriores de las filas
en una zona de tempdb llama la version store
Los administradores tendrn que prestar atencin a la tempdb y el
mantenimiento extra que requiere.

Otros componentes del storage


Modelos de aislamiento
engine
Pesimista Optimista Componentes para controlar
Bulk load
Read Read Commandos DBCC
commited commited
Operaciones de backup y restore
Read
Uncommitted
Snapshot Operaciones de ordenamiento
Gestin de archives de disco
Repeatable
Read

Serializable

SQL Server 2000 SQLOS


Pequea capa que hace llamadas al sistema operativo El SQLOS es como un pequeo sistema operativo que
para: agrupa funcionalidades comunes
Asignacin de memoria Gestin de recursos
Recursos de planificacin (schedule) Scheduling
Threads y gestin del trabajo Un framework para gestin de bloqueos y transacciones,
Objetos de sincronizacin Deteccin de deadlocks
En versiones anteriores a la 2005 estaban distribuidos Utilidades para dumping,
por todo el engine Manejo de excepciones

7
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Non-Uniform Memory
Problemas de memoria en SMP
Access/Architecture (NUMA)
Todos los accesos a memoria comparten el mismo bus en Es un diseo de memoria utilizado en multiprocesadores
entornos SMP donde la memoria se accede en posiciones relativas de
otro procesador o memoria compartida entre
Funciona bien para pocas CPU
procesadores.
Aparece competencia en el BUS para muchas CPU
Bajo NUMA, un procesador puede acceder a su propia
Se agregan ms BUSes para satisfacer pocas CPU cada memoria local de forma ms rpida que a la memoria no
uno local (memoria local de otro procesador o memoria
compartida entre procesadores ).

NUMA Soft-NUMA

NUMA limita el nmero de CPUs en un bus de memoria Sin hardware especifico


determinado Sof NUMA subdivide la CPU pero no la memoria
Cada grupo de CPU tiene su memoria propia y quiza sus Permite configurar la escucha en un determinado puerto
canales de I/O El SQL Server scheduler y la interfaz de red son consientes del
Cada CPU puede accede memoria de otros grupos en una soft-NUMA
forma coherente Nodos de memoria se basan en hardware NUMA y no son
Cada grupo es un nodo NUMA e interconectado a los otros afectados por soft-NUMA
El numero de CPUs por cada nodo NUMA es variable Solo TCP y VIA pueden mapear conexiones a un conjunto
Es mas rapido accede a la memoria local del nodo especfico de nodos NUMA

Scheduler Caractersticas del Scheduler

Antes de SQL Server 7.0 el planificador estaba basado en Para poder usar fibers
el sistema operativo Minimizar los cambios de context en modo kernel
A partir de SQL Server 7.0 se diseo un scheduler interno Corre en modo usuario y no en modo kernel
En 7.0 y 2000 se llamo User Mode Scheduler (UMS) SQL Server scheduler se ejecuta en modo cooperativo
En 2005 el SOS Scheduler es parte del SQLOS

8
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

SQL Server Schedulers SQL Server Workers

Cada CPU tiene un scheduler creado cuando SQL Server Puede ser un thread o una fibra que esta bounded a un
arranca aunque no la use (affinity mask). scheduler.
Limitado por Max Worker Threads y el nmero de schedulers
ONLINE

El scheduler se lo utiliza
No se puede mover un worker de un scheduler a otro
Son creados cuando el scheduler recibe un pedido y no hay idle
OFFLINE


workers.
El scheduler no se lo utiliza en la planificacin
Puede ser destruido si ha estado idle por al menos 15 minutes o
Cada scheduler es responsable de crear o destruir los SQL Server esta bajo presin de memoria.
workers segun precise Cada worker utiliza memoria (stack)

SQL Server Tasks


La unidad de trabajo para un SQL Server
w orker es una s olicitud o tarea
Generalmente es mucho menor el nmero El w orker es t obligado a proces ar la tarea

de workers que el de usuarios completa antes de manipular cualquier otra


s olicitud.
concurrentes. Inclus o s i la peticin es t bloqueada por
WOR KER THREADS alguna razn, como es pera por un bloqueo o
terminacin de I/O, debe es perar has ta que
la condicin s e cumpla

SPID Load balance


En SQL Server 2000, cada SPID se asigna a un scheduler
cuando la conexin inicial se realiza, y todas las solicitudes
enviadas durante el mismo SPID son manejados por el mismo
scheduler.
Un SPID (ID de sesin) no es lo mismo
En SQL Server 2005, un SPID ya no est vinculado a un
que una tarea. scheduler. Cada SPID tiene un scheduler preferido que es el
SPID scheduler usado recientemente por el SPID. El SPID es
asignado inicialmente al scheduler con la menor factor de
carga (load factor)

9
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

SPID NUMA Threads vs. Fibers


Hay una restriccin que todas las tareas para un SPID Los fibers de Windows tienen menos gastos overead
deben ser procesadas por schedulers en el mismo nodo asociado que los threads
NUMA. Ciertos componentes de SQL Server no funcionan, o no
La excepcin a esta restriccin es cuando una consulta se funcionan bien, cuando SQL Server se ejecuta en modo
est ejecutando en paralelo en mltiples CPU. fiber.
SQLMail
SQLXML.
CLR

NUMA y Schedulers
El modo de fibra es slo para situaciones especiales Cada nodo tiene algn subconjunto de los procesadores de la
mquina y el mismo nmero de Schedulers
en las que el SQL Server llega a un lmite en la Cuando un SPID es creado, es asignado a los nodos en usando
escalabilidad, debido demasiado tiempo de round-robin.
conmutacin entre hilos o demasiados cambios entre El monitor del scheduler asigna el SPID al scheduler menos
cargado de ese nodo.
el modo de usuario y el modo kernel. Un nico procesador o maquina SMP es tratado como un nico
AP LICACIN D EL MODO FIBER nodo NUMA.
Cada scheduler queda fijo en una CPU particular si se usa la opcin
de configuracin affinity mask.

Vistas dinamicas del Scheduler


Dedicated administrator
connection
sys.dm_os_schedulers Una fila por scheduler en SQL Server. SQL Server 2005 introduce esta conexin especial (DAC)
que est diseada para ser accesible en condiciones
sys.dm_os_workers Una fila por cada worker
extremas, tales como ante una falta total de recursos
sys.dm_os_threads Lista todoso los threads de SQLOS que estan corriendo
disponibles
Diseada para el diagnstico de problemas
sys.dm_os_tasks Una fila por cada tarea que esta active En SQLCMD con el flag /A flag
En SQL Server Management Studio precediendo el nombre del SQL
sys.dm_os_waiting_tasks Informacion acerca de las colas de los recursos Server con ADMIN: en el cuadro de dilogo Conexin

10
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

DAC El Buffer Pool y Data Cache

De forma predeterminada, DAC slo est disponible localmente El principal componente de memoria en SQL Server es el
(opcin de configuracin Remote Admin Connections) buffer pool
El usuario de inicio de sesin al conectarse a travs de la DAC
Toda la memoria no utilizada por otro componente de memoria
debe ser un miembro de Sysadmin. permanece en el buffer para ser utilizado como una cach de
Hay slo unas pocas restricciones sobre que puede ser
datos para las pginas de los archivos de base de datos en el
ejecutado usando la CAD. disco.
Usa un thread especial que le permite ejecutar las funciones
El buffer manager gestiona las funciones de I/O a disco para
de diagnstico o consultas en un scheduler separado.
que los datos e ndices en la cache puedan ser compartidos
entre los usuarios.

Buffer pool Acceso a las pginas de datos en memoria

Otros componentes piden memoria al buffer pool El acceso a las pginas en el cach debe ser rpido.
Un buffer es una pgina en la memoria y es del mismo Las pginas en el cach de datos se acceden usando
tamao que una pgina en disco. hashing para un acceso rpido.
Dado un identificador (dbid-fileno-pageno) la funcin de
En ocasiones, SQL Server debe solicitar memoria
hash convierte esta clave en un bucket que debe ser
contigua en bloques de ms de 8-KB y debe ser asignado verificado
desde fuera del buffer pool.
El hash bucket sirve como un ndice de la pgina
solicitada.

Hash Data Cache

Mediante el uso de hash se puede Puede utilizar una pgina de datos o una pgina de ndice slo si
existe en la memoria
Encontrar una pgina de datos en la memoria cach con slo unas En la memoria cach de datos deben estar disponibles un buffer
pocas lecturas de memoria para la pgina
Determinar que una pgina deseada no se encuentra en la cach y que Un nico mecanismo es el responsable de escribir pginas
debe ser ledo desde el disco modificadas en el disco y de marcar como libre las pginas que no
han sido referenciados por algn tiempo
Encontrar una pgina de datos puede requerir varios
SQL Server mantiene una lista de las direcciones de pginas libres,
accesos a varios buffers a travs de la cadena de hash y cualquier worker que necesita una pgina del buffer utiliza la
buckets (lista). primer de esta lista

11
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Gestin del Cache Liberacin de pginas

Cada buffer tiene una cabecera que contiene informacin de Es realizado por los workers mientras esperan las
las dos ltimas veces en que la pgina fue referenciada y si la
pgina se ha cambiado desde que fue ledo del disco accesos asincrnicos a los discos
El cache se revisa peridicamente para liberar pginas Cada instancia de SQL Server tambin tienen un thread
Cuando el valor es bastante bajo, se revisa el indicador dirty y lazywriter para cada nodo NUMA que libera las pginas
se planifica una escritura a disco asincrnica si es necesario
Luego la pagina es liberada removiendo la informacin de
buffer en la tabla hash y se ubica en la lista de libres

Lazywriter Lazywriter y memoria dinmica


Consultas peridicamente el sistema para determinar la cantidad de
Duerme un determinado memoria fsica disponible.
intervalo de tiempo,
Expande o contrae la cach de datos para mantener el sistema operativo
con al menos 5 megabytes (MB) memoria fsica libre ms o menos 200 KB
para prevenir la paginacin.
Los buffers que se agregan a la el lazywriter libera mas paginas desde la cache
Examina el tamao de la lista
lista libre, tambin son escritos
libre de buffers.
en el disco si estn modificados Si el sistema operativo tiene menos de 5 MB libres, las devuelve el sistema
operativo
Si hay de 5 MB de memoria fsica libre, las agrega a la lista libre.
Si es menor a un umbral
explora el buffer para liberar SQL Server tambin libera la memoria para el sistema operativo si
paginas detecta que un exceso de paginacin

Checkpoint

Analiza el cach peridicamente y escribe cualquier


El algoritmo de gestin del buffer es lo pginas de datos modificada en el disco.
suficientemente bueno como para no
Nunca pone paginas en la lista libre.
cnecesitar el pinning. (Fuerza a una
El nmero de pginas sucias en la memoria siempre es
tabla permanecer en la memoria cach)
mantenido a un nivel mnimo
P INTABLE La duracin de la recuperacin de una base de datos
despus de una falla se mantiene al mnimo

12
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Chekpoint y transaction log Cuando se ejecuta


SQL Server escribe un registro de checkpoint en el log
transacciones donde se enumeran todas las transacciones que
Comando CHECKPOINT
estn activos.
Esto permite que el proceso de recuperacin construya una El log esta casi lleno (70%) y el modo de recuperacion es SIMPLE
tabla que contiene una lista de todas las pginas
potencialmente sucias. Dependiendo del Recovery Interval
Automticamente los puntos de control se producen a
intervalos regulares, pero tambin puede ser solicitado Shutdown sin NOWAIT
manualmenre.

Memoria en otros Caches Memory Broker


Buffer de memoria que no se utiliza para la cach de Analizar el comportamiento de SQL Server con respecto a
datos se utiliza para otros tipos de cache, consumo de memoria y mejora la distribucin de memoria
fundamentalmente el cach de procedimientos dinmica.
es un mecanismo centralizado que distribuye
La poltica de sustitucin de pginas es un poco diferente
dinmicamente la memoria entre el buffer pool, el
a la de cach de datos. ejecutor de consultas, el optimizador de consultas, los
caches, y trata de adaptar para los diferentes tipos de
cargas ..

Address Windowing Extensions (AWE) Large memory


Puede ser considerada otra area de memoria Mayor memoria mayor performance por menor I/O
Cache-Hit Ratio alto
Solo se pueden almacenar paginas del data cache
Mayor memoria para procesamiento interno
El consume de memoria solo se puede ver desde las DMV
Si DB < Memoria no hay beneficio en agregar ms

Si la porcin caliente es pequea no hay beneficio en


agregar ms
AWE para la versin Enterprise

78

13
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Read Ahead Merry-Go-Round Scans


Se maneja internamente y no es configurable
32 extents = 2Mb
Lecturas en el orden fsico
Una por cada archivo del filegroup del objeto
Pequeos rangos de datos contiguos
Scans en tablas

index ranges

79 80

Log Manager Transaction log Recovery


Se escriben a disco anticipadamente antes que las
paginas
La escritura de paginas puede ser asincrnica pero el
Transaction Log es sincrnico siempre
Log caches o segmentos de log en memoria no comparten
el bugffer pool
Se escriben e colas de flush y el LOG Writer los enva a
disco
81 82

LSN Pginas

83 84

14
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

Extents Collations
Character set
Sort order
Acentos
Maysculas
Ancho
Binario (ms rpido)
Preferencia de maysculas y case insensitive
WHERE campo >= valor ORDER BY campo
Requiere un SORT adicional

85 86

Tipos de aplicaciones
OLTP
Muchas transacciones
Atomicidad en las operaciones
Concurrencia
DSS
Sin transacciones D ISCOS Y R AID
Barrido de informacin

87

RAID 0: Striped Disk Array without


RAID
Fault Tolerance
RAID0 Disk Stripping Characteristics/Advantages

RAID1 Disk Mirroring / Deplexing


RAID 0 imple me nts a s tripe d dis k array, the D is advantages
data is broken down into blocks and each
block is written to a separate disk drive No t a "Tr u e " RAID b e c ause it is
I/ O performanc e is greatly improved by NOT fa u l t- to l e r a n t
s preading the I/ O load ac ros s many c hannels Th e fa ilu re o f ju s t o n e d rive will
RAID5 Striping with Parity

and drives
Bes t performance is achieved when data is r e s ul t i n a l l d a ta i n a n a r r a y
striped across multiple controllers with only being lost
one drive per controller
Should never be us ed in m ission
RAID10 Stripping & Mirroring

No p a ri ty c a l c u l a ti on ove rh e a d i s i n vol ve d

Very s imple des ign
c r i ti c a l e n vi r o n m e n ts
Eas y to implement
R ecommended Applications
Vi d e o P r o d u c ti o n a n d Ed i ti n g
Im a g e Ed i ti n g
P r e - P r e s s Ap p l i c a ti o n s
An y a p p l i c a ti o n r e q u i r in g h i g h
b a n d wi d th

RAID Level 0 requires a minimum of 2 drives to implement

89 90

15
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

RAID 0 RAID 1: Mirroring and Duplexing


RAID 0 Dis advantages
Characteristics/Advantages
Hi g h e s t d i s k o ve rh e a d o f a l l RAI D
On e Wri t e o r t w o Re a d s p o s s i b l e p e r
DISK 1 LOGICAL DISK

mirrored pair typ e s ( 10 0 %) i n e ffi c i e n t
Typ i c a l l y th e RAID fu n c ti o n i s d o n e
Twice the Read trans action rate of b y s ys te m s o ftw a re , l o a d i n g th e
s i n g l e d i s k s , s a m e Wri t e t ra n s a c t i o n
rate as single disks CP U/ Se rve r a n d p o s s i b l y d e g ra d i n g
th ro u g h p u t a t h i g h a c ti vi ty l e ve l s .
100% re dundanc y of data me ans no Hardw are implementation is s trongly
rebuild is necessary in case of a disk recommended
failure, just a copy to the replacement
disk May not support hot swap of failed
dis k w hen implemented in " s oftw are
Transfer rate per block is equal to that
of a single disk
Recom m ended Applications
Un d e r c e rta i n c i rc u ms ta n c e s , RAID 1
Ac c ou n ti n g

can sustain multiple simultaneous drive

DISK 2 failures P a yro l l


Simples t RAID s torage s ubs ys tem des ign Fi n a n c i a l
An y a p p l i c a ti o n re q u i ri n g ve ry h i g h
a va i l a b i l i ty

RAID Level 1 requires a minimum of 2 drives to implement


91 92

R AID 5: Independent D ata disks with


RAID1 distributed parity blocks
C haracteris tics /Advantages D is advantages
RAID 1 Hi g h e s t Re a d d a ta tr a n s a cti o n r a te
Ris k fa ilure ha s a m e dium im pact on
M e d i u m W r i te d a ta tr a n s a c ti o n r a te th r o u g h p ut
DISK 1 LOGICAL DISK M o s t c o m p l e x c o n tr o l l e r d e s ig n
Lo w r a ti o o f ECC ( P a r i ty) d i s k s to Di ffi c u l t to r e b u il d i n th e e ve n t o f a
d a ta d i s k s m e a n s h i g h e ffi c i e n c y d i s k fa i l u r e ( a s c o m p a r ed to RAID
level 1)
Go o d a g g r e g a te tr a n s fe r r a te In d i vi d u a l b l o c k d a ta tr a n s fe r r a te
same as single disk
R ecommended Applications

Fi l e a n d Ap p l i c a ti o n s e r ve r s
Da ta b a s e s e r ve r s
DISK 2
W W W, E-m a il, a n d Ne ws s e r vers
In tr a n e t s e r ve r s
M o s t ve r s a ti l e RAID l e ve l

RAID Level 5 requires a minimum of 3 drives to implement


93 94

R AID 10: Very High R eliability combined


RAID 5 with High P erformance
DISK 1 Characteristics/Advantages D is advantages
RAID 5 RAID 10 is imple me nte d as a s tripe d Ve r y e x p e n s i v e / Hi g h o v e r h e a d
array whos e s egments are RAID 1 arrays

LOGICAL DISK RAID 10 has the s ame fault tole ranc e as All drives m ust m ove in parallel
PARITY RAID le ve l 1 to p r o p e r tr a c k l o we r i n g
RAID 10 has the s ame ove rhe ad for
s u s ta i n e d p e r fo r m a nc e
fault-tolerance as mirroring alone
Ve r y l i m i te d s c a l a b i li ty a t a v e r y
Hi g h I/ O ra te s a re a c h i e ve d b y s tri p i n g h i g h i n h e r en t c o s ts
RAID 1 s e gme nts
DISK 2
Un d e r c e rta i n c i rc u ms ta n c e s , RAID 10 R ecommended Applications
PARITY
array can sustain multiple simultaneous
drive failures
Da ta b a s e s e r ve r r e q u i r i n g h i g h
Ex cellent s olution for s ites that would

have othe rw is e gone w ith RAID 1 but p e r fo r m an c e a n d fa u l t to l e r a n c e
need some additional performance boost

DISK 3 PARITY

RAID Level 10 requires a minimum of 4 drives to implement


95 96

16
Arquitectura rendimiento y performance 08/05/2009
Tuning del motor relacional del SQL Server

RAID 10
RAID 10
DISK 1 LOGICAL DISK

DISK 2

DISK 3

DISK 4

97

17

You might also like