Vous êtes sur la page 1sur 17

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server
In g . Jo s e Ma r i a no A lva rez
j o s e . m a r i a n o . a l v a r e z @s q l t o t a l c o n s u l t i n g . c o m

Podemos medir
Tiempo Uso de recursos
Memoria Cpu Disco

Recursos requeridos para crear la solucin


Programadores Puestos de trabajo
2

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

Aprovechar todos los recursos al mximo minimizando los costos OBJETIVO

Tenemos un servidor con buena performance o con mala performance ?

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 No corre en modo kernel sino en modo usuario
5

ARQUITECTURA INTERNA

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Principales componentes

Vistas y funciones dinmicas


dm_exec_* dm_os_* dm_tran_* dm_io_* dm_db_*
Informacin relacionada al cdigo de los usuarios y las conexiones Informacin de bajo nivel dl funcionamiento del motor como memoria, planificador, etc. Informacin de las transacciones actuales

Informacin de los recursos como red y discos

Informacin de las bases de datos y los objetos

Protocolos
Fo rm atea l o s p a quetes TDS S e rvidor
Protocol layer Es parte del motor relacional Puede usar multiples protocolos al mismo tiempo

Protocolos
Memoria compartida Named pipes TCP-IP Virtual Interface Adapter (VIA) Local y no soporta MDAC2.8 Local o remoto Local o remoto, Es el ms recomendable Solo funciona con hardware via

Cl i e nte
Son parte del SQL Native Client Solo puede comunicarse por un solo protocolo

Tabular Data Stream Endpoints


La c o nexi n e s t r e presentada e n e l s e rvidor p o r u n En d point TDS . Ha y u n En d point p a ra c a da u n a d e l os c u a tro p r otocolos d e r e d
si el protocolo est habilitado, todos los usuarios tienen acceso Si esta deshabilitado el punto final todava existe, pero no se puede utilizar. Un endpoint adicional se crea para el conexin dedicada de administracion (DAC), que puede ser utilizado los miembros del rol sysadmin.

Open Data Services (ODS)


Interfaz entre las libreras de red y las aplicaciones Gestiona las conexiones y cancelaciones de comandos Protocolo de intercambio privado conocido como Tabular Data Stream (TDS) Ni los clientes ni el servidor escriben directamente TDS sino mediante las libreras de red

12

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

ODS Buffers
Bfer de salida sincrnico con buffer cache en el cliente provisto por el SO. Dos Buffer de entrada para poder manejar las cancelaciones La librera de red enva el paquete al cliente tan pronto como este se llena. Si no se leen datos en el cliente el SQL Server deja de enviar y los recursos usados quedan bloqueados
13

Database engine

Relational Engine
Componentes para analizar y para optimizar cualquier query Maneja la ejecucin de queries y solicita datos al motor del almacenamiento

Storage Engine
Procesa los resultados recibidos Componentes para tener acceso y para modificar los datos sobre disco.

14

Relational Engine Command Parser Query Optimizer SQL Manager

Command parser (Analizador de comandos)


Gestiona los eventos de lenguaje del ODS Analiza la sintaxis Traduce a la sintaxis interna del motor conocida como rbol de consultas Emite los errores de sintaxis

Database Manager

Query Executor

16

Optimizador
Toma rbol de la consulta desde el analizador Compila la totalidad del batch en una forma interna Determina la mejor forma de resolverla si es optimizable Verifica la seguridad. Genera un plan de ejecucin.

Optimizador
Optimizacin est basada en costos Elige el plan de costo mnimo sobre la base de
La estimacin de las necesidades de memoria, La utilizacin de la CPU, El nmero necesario de I/O.

18

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Optimizador - Costos
Costos calculados a partir de:
el tipo de declaracin solicitada Estadsticas de distribucin de los datos para cada columna o ndice de la consulta Mtodos de acceso Estrategias de join los ndices disponibles para cada tabla

SQL manager
Es el responsable de todo lo relacionado con la gestin de procedimientos almacenados, consultas parametrizadas y sus planes.
Gestiona el almacenamiento del cach de procedimiento para que otros procesos puedan reutilizarlo Se ocupa de autoparametrizacin de consultas. 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
Maneja el acceso a los metadatos necesarios para la compilacin y optimizacin

Query executor
Corre el plan de la ejecucin que el optimizador produjo, 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


Tradicionalmente se ha considerado que el storage engine incluye todos los componentes que intervienen en el tratamiento de los datos en su base de datos. En SQL Server 2005 aparecen otros componentes

The Storage Engine


Mtodos de acceso

Storage Engine
SQLOS Gestor de transacciones

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Mtodos de acceso
Configura y solicita exploraciones de paginas de datos y de paginas de ndices Posee servicios para
Abrir una tabla Recuperar datos calificados Actualizar datos

Mtodos de acceso
Cuando se inicia la exploracin, el mecanismo de lookahead califica las filas o entradas de ndices en una pgina. Recuperacin calificada
Es la recuperacin de las filas que cumplen los criterios especificados. Se emplea no slo para las consultas, sino tambin para las actualizaciones

No realiza la recuperacin sino que se la solicita al administrador de buffers

Operaciones de filas e ndices


Row manager Index manager
Mantiene y da soporte de la manipulacin de las filas Mantiene y da soporte a las bsquedas en los rboles B

Row operations manager


Recupera, modifica y realiza operaciones sobre filas individuales Gestiona las actualizaciones Mtodos de actualizacin
In-place en el lugar, Split mode, por divisin (delete + insert) Split with collapse, por divisin con agrupamiento (varios delete + varios insert)
28

Cada componente es responsable de la manipulacin y el mantenimiento de sus respectivas estructuras de datos en disco.

Operaciones de asignacion de paginas


Cada base de datos es una coleccin de paginas en disco de 8 KB que se distribuyen en uno o ms archivos fsicos. Gestiona una coleccin de pginas como un bases de datos y mantiene un registro de:
que pginas en la base de datos ya han sido utilizados con qu fin se han utilizado cunto espacio est disponible en cada pgina

Tipos de paginas
Pginas de datos Pginas LOB Datos de los ndices Page Free Space
Datos de los usuarios

Datos de los usuarios

Paginas de ndices

PFS: Realizar un seguimiento de las pginas de una base de datos que estn disponibles para almacenar nuevos datos

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Tipos de paginas
Global Allocation y Shared Global Allocation Map Index Allocation Map Bulk Changed Map Differential Changed Map
IAM y SGAM: Realiza un seguimiento de las dems pginas. No contiene ninguna fila de la base de datos y slo se utilizan internamente.

Version store
Row versioning (versiones de filas) permite al SQL Server mantener las versiones anteriores de las filas que cambiaron Da soporte:
Snapshot isolation Online index builds (crear indices en lnea) Triggers Otras operaciones que requieran versiones de filas

IAM: Realiza un seguimiento de las dems pginas. No contienen ninguna fila de la base de datos y slo se utilizan internamente.

BCM:Se la usa para hacer el bakup y restore mas eficiente

DCM: Se la usa para hacer el bakup y restore mas eficiente

Propiedades ACID

Transaction Manager
El objetivo es asegurar que se cumplan las propiedades ACID Escritura anticipada en el Log de transacciones Escritura sincrnica en el log de transacciones Escritura asincrnica (W2K+) en las pginas de datos Coordina el registro, la recuperacin y la administracin de buffers.
34

Atomicity Consistency Isolation Durability

Atomicidad. Asegura que la operacin se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.

Consistencia. Slo se empieza aquello que se puede terminar

Aislamiento. Una operacin no puede afectar a otras

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

Transaction Manager
Traza los lmites de las instrucciones que deben agruparse como una operacin Permite secuencias anidadas Coordina las transacciones distribuidas con el servicio Microsoft Distributed Transaction Coordinator (MS DTC) usando RPC

Transaction Manager
Se coordina con el administrador de bloqueos cuando pueden liberarse los bloqueos dependiendo del nivel de aislamiento Dependiendo del nivel de aislamiento coordina cuando versiones las anteriores anteriores pueden eliminarse del version store.

35

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Modelos de concurrencia

Concurrencia optimista
Los lectores no bloquean a los escritores Los escritores no bloquean a los lectores Los escritores todava bloquean a otro escritores El costo de estos debe ser considerado
Debe dedicar ms tiempo en la gestin del version store Los administradores tendrn que prestar atencin a la tempdb y el mantenimiento extra que requiere.

Pesimista Optimista

Garantiza la exactitud y la consistencia bloqueando los datos para que no se puedan cambiar. Es el nico modelo de concurrencia del SQL Server 2000 o anterior.

SQL Server 2005 introduce la concurrencia optimista, que dispone de datos coherentes, manteniendo las versiones anteriores de las filas en una zona de tempdb llama la version store

Modelos de aislamiento
Pesimista
Read commited Read Uncommitted Repeatable Read Serializable

Otros componentes del storage engine


Componentes para controlar
Bulk load Commandos DBCC Operaciones de backup y restore Operaciones de ordenamiento Gestin de archives de disco

Optimista
Read commited Snapshot

SQL Server 2000


Pequea capa que hace llamadas al sistema operativo para:
Asignacin de memoria Recursos de planificacin (schedule) Threads y gestin del trabajo Objetos de sincronizacin

SQLOS
El SQLOS es como un pequeo sistema operativo que agrupa funcionalidades comunes
Gestin de recursos Scheduling Un framework para gestin de bloqueos y transacciones, Deteccin de deadlocks Utilidades para dumping, Manejo de excepciones

En versiones anteriores a la 2005 estaban distribuidos por todo el engine

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Problemas de memoria en SMP


Todos los accesos a memoria comparten el mismo bus en entornos SMP Funciona bien para pocas CPU Aparece competencia en el BUS para muchas CPU Se agregan ms BUSes para satisfacer pocas CPU cada uno

Non-Uniform Memory Access/Architecture (NUMA)


Es un diseo de memoria utilizado en multiprocesadores donde la memoria se accede en posiciones relativas de otro procesador o memoria compartida entre procesadores. Bajo NUMA, un procesador puede acceder a su propia memoria local de forma ms rpida que a la memoria no local (memoria local de otro procesador o memoria compartida entre procesadores ).

NUMA
NUMA limita el nmero de CPUs en un bus de memoria determinado Cada grupo de CPU tiene su memoria propia y quiza sus canales de I/O Cada CPU puede accede memoria de otros grupos en una forma coherente Cada grupo es un nodo NUMA e interconectado a los otros El numero de CPUs por cada nodo NUMA es variable Es mas rapido accede a la memoria local del nodo

Soft-NUMA
Sin hardware especifico Sof NUMA subdivide la CPU pero no la memoria Permite configurar la escucha en un determinado puerto El SQL Server scheduler y la interfaz de red son consientes del soft-NUMA Nodos de memoria se basan en hardware NUMA y no son afectados por soft-NUMA Solo TCP y VIA pueden mapear conexiones a un conjunto especfico de nodos NUMA

Scheduler Antes de SQL Server 7.0 el planificador estaba basado en el sistema operativo A partir de SQL Server 7.0 se diseo un scheduler interno En 7.0 y 2000 se llamo User Mode Scheduler (UMS) En 2005 el SOS Scheduler es parte del SQLOS

Caractersticas del Scheduler Para poder usar fibers Minimizar los cambios de context en modo kernel Corre en modo usuario y no en modo kernel SQL Server scheduler se ejecuta en modo cooperativo

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

SQL Server Schedulers Cada CPU tiene un scheduler creado cuando SQL Server arranca aunque no la use (affinity mask). ONLINE
El scheduler se lo utiliza

SQL Server Workers


Puede ser un thread o una fibra que esta bounded a un scheduler. Limitado por Max Worker Threads y el nmero de schedulers No se puede mover un worker de un scheduler a otro Son creados cuando el scheduler recibe un pedido y no hay idle workers. Puede ser destruido si ha estado idle por al menos 15 minutes o SQL Server esta bajo presin de memoria. Cada worker utiliza memoria (stack)

OFFLINE
El scheduler no se lo utiliza en la planificacin

Cada scheduler es responsable de crear o destruir los workers segun precise

SQL Server Tasks


La unidad de trabajo para un SQL Server w orker es una solicitud o tarea El w orker est obligado a procesar la tarea completa antes de manipular cualquier otra solicitud. Incluso si la peticin est bloqueada por alguna razn, como espera por un bloqueo o terminacin de I/O, debe esperar hasta que la condicin se cumpla

Generalmente es mucho menor el nmero de w orkers que el de usuarios concurrentes. WORKER THREADS

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. En SQL Server 2005, un SPID ya no est vinculado a un scheduler. Cada SPID tiene un scheduler preferido que es el scheduler usado recientemente por el SPID. El SPID es asignado inicialmente al scheduler con la menor factor de carga (load factor)

Un SPID (ID de sesin) no es lo mismo que una tarea. SPID

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

SPID NUMA
Hay una restriccin que todas las tareas para un SPID deben ser procesadas por schedulers en el mismo nodo NUMA. La excepcin a esta restriccin es cuando una consulta se est ejecutando en paralelo en mltiples CPU.

Threads vs. Fibers


Los fibers de Windows tienen menos gastos overead asociado que los threads Ciertos componentes de SQL Server no funcionan, o no funcionan bien, cuando SQL Server se ejecuta en modo fiber.
SQLMail SQLXML. CLR

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

APLICACIN DEL MODO FIBER

Vistas dinamicas del Scheduler


sys.dm_os_schedulers sys.dm_os_workers sys.dm_os_threads sys.dm_os_tasks sys.dm_os_waiting_tasks
Una fila por scheduler en SQL Server. Una fila por cada worker Lista todoso los threads de SQLOS que estan corriendo Una fila por cada tarea que esta active Informacion acerca de las colas de los recursos

Dedicated administrator connection


SQL Server 2005 introduce esta conexin especial (DAC) que est diseada para ser accesible en condiciones extremas, tales como ante una falta total de recursos disponibles Diseada para el diagnstico de problemas
En SQLCMD con el flag /A flag En SQL Server Management Studio precediendo el nombre del SQL Server con ADMIN: en el cuadro de dilogo Conexin

10

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

DAC
De forma predeterminada, DAC slo est disponible localmente (opcin de configuracin Remote Admin Connections) El usuario de inicio de sesin al conectarse a travs de la DAC debe ser un miembro de Sysadmin. Hay slo unas pocas restricciones sobre que puede ser ejecutado usando la CAD. Usa un thread especial que le permite ejecutar las funciones de diagnstico o consultas en un scheduler separado.

El Buffer Pool y Data Cache


El principal componente de memoria en SQL Server es el buffer pool Toda la memoria no utilizada por otro componente de memoria permanece en el buffer para ser utilizado como una cach de datos para las pginas de los archivos de base de datos en el disco. El buffer manager gestiona las funciones de I/O a disco para que los datos e ndices en la cache puedan ser compartidos entre los usuarios.

Buffer pool
Otros componentes piden memoria al buffer pool Un buffer es una pgina en la memoria y es del mismo tamao que una pgina en disco. En ocasiones, SQL Server debe solicitar memoria contigua en bloques de ms de 8-KB y debe ser asignado desde fuera del buffer pool.

Acceso a las pginas de datos en memoria El acceso a las pginas en el cach debe ser rpido. Las pginas en el cach de datos se acceden usando hashing para un acceso rpido. Dado un identificador (dbid-fileno-pageno) la funcin de hash convierte esta clave en un bucket que debe ser verificado El hash bucket sirve como un ndice de la pgina solicitada.

Hash
Mediante el uso de hash se puede
Encontrar una pgina de datos en la memoria cach con slo unas pocas lecturas de memoria Determinar que una pgina deseada no se encuentra en la cach y que debe ser ledo desde el disco

Data Cache
Puede utilizar una pgina de datos o una pgina de ndice slo si existe en la memoria En la memoria cach de datos deben estar disponibles un buffer para la pgina Un nico mecanismo es el responsable de escribir pginas modificadas en el disco y de marcar como libre las pginas que no han sido referenciados por algn tiempo SQL Server mantiene una lista de las direcciones de pginas libres, y cualquier worker que necesita una pgina del buffer utiliza la primer de esta lista

Encontrar una pgina de datos puede requerir varios accesos a varios buffers a travs de la cadena de hash buckets (lista).

11

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Gestin del Cache


Cada buffer tiene una cabecera que contiene informacin de las dos ltimas veces en que la pgina fue referenciada y si la pgina se ha cambiado desde que fue ledo del disco El cache se revisa peridicamente para liberar pginas Cuando el valor es bastante bajo, se revisa el indicador dirty y 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

Liberacin de pginas Es realizado por los workers mientras esperan las accesos asincrnicos a los discos Cada instancia de SQL Server tambin tienen un thread lazywriter para cada nodo NUMA que libera las pginas

Lazywriter
Duerme un determinado intervalo de tiempo,

Lazywriter y memoria dinmica


Consultas peridicamente el sistema para determinar la cantidad de memoria fsica disponible. 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. el lazywriter libera mas paginas desde la cache 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. SQL Server tambin libera la memoria para el sistema operativo si detecta que un exceso de paginacin

Los buffers que se agregan a la lista libre, tambin son escritos en el disco si estn modificados

Examina el tamao de la lista libre de buffers.

Si es menor a un umbral explora el buffer para liberar paginas

Checkpoint

El algoritmo de gestin del buffer es lo suficientemente bueno como para no cnecesitar el pinning. (Fuerza a una tabla permanecer en la memoria cach) PINTABLE

Analiza el cach peridicamente y escribe cualquier pginas de datos modificada en el disco. Nunca pone paginas en la lista libre. El nmero de pginas sucias en la memoria siempre es mantenido a un nivel mnimo La duracin de la recuperacin de una base de datos despus de una falla se mantiene al mnimo

12

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Chekpoint y transaction log


SQL Server escribe un registro de checkpoint en el log transacciones donde se enumeran todas las transacciones que estn activos. Esto permite que el proceso de recuperacin construya una tabla que contiene una lista de todas las pginas potencialmente sucias. Automticamente los puntos de control se producen a intervalos regulares, pero tambin puede ser solicitado manualmenre.

Cuando se ejecuta
Comando CHECKPOINT El log esta casi lleno (70%) y el modo de recuperacion es SIMPLE Dependiendo del Recovery Interval Shutdown sin NOWAIT

Memoria en otros Caches Buffer de memoria que no se utiliza para la cach de datos se utiliza para otros tipos de cache, fundamentalmente el cach de procedimientos La poltica de sustitucin de pginas es un poco diferente a la de cach de datos.

Memory Broker
Analizar el comportamiento de SQL Server con respecto a consumo de memoria y mejora la distribucin de memoria dinmica. es un mecanismo centralizado que distribuye dinmicamente la memoria entre el buffer pool, el ejecutor de consultas, el optimizador de consultas, los caches, y trata de adaptar para los diferentes tipos de cargas ..

Address Windowing Extensions (AWE) Puede ser considerada otra area de memoria Solo se pueden almacenar paginas del data cache El consume de memoria solo se puede ver desde las DMV

Large memory
Mayor memoria mayor performance por menor I/O
Cache-Hit Ratio alto

Mayor memoria para procesamiento interno 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 Tuning del motor relacional del SQL Server

24/10/2008

Read Ahead
Se maneja internamente y no es configurable
32 extents = 2Mb Lecturas en el orden fsico Una por cada archivo del filegroup del objeto

Merry-Go-Round Scans

Pequeos rangos de datos contiguos Scans en tablas index ranges


79 80

Log Manager
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

Transaction log Recovery

82

LSN

Pginas

83

84

14

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

Extents
Character set Sort order
Acentos Maysculas Ancho Binario (ms rpido)

Collations

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 Barrido de informacin

DISCOS Y RAID

87

RAID
RAID0 Disk Stripping RAID1 Disk Mirroring / Deplexing RAID5 Striping with Parity RAID10 Stripping & Mirroring

RAID 0: Striped Disk Array without Fault Tolerance


Characteristics/Advantages RAID 0 implements a striped disk array, the data is broken down into blocks and each block is written to a separate disk drive I/O perform ance is greatly im proved by spreading the I/O load across many channels and drives Bes t perform ance is achieved when data is striped across multiple controllers with only one drive per controller No parity calculation overhead is involved Ve r y s i m p l e d e s i g n Easy to implement

Dis advant ages No t a " Tr u e " R AID b e c a u s e it is NOT fault- t ol e ran t The failure of jus t one drive w ill re s ult in all data in an array being lost S hould ne ve r be us e d in m is s ion c ritic al e nvironm e n ts R e c o mme n d e d Ap p l i c a t i o n s Vide o P roduc tion and Editing Im age Editing P r e - P r e s s Ap p lic a t io n s An y a p p lic a ti o n r e q u ir in g h ig h bandw idth

RAID Level 0 requires a minimum of 2 drives to implement


89 90

15

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

RAID 0

RAID 1: Mirroring and Duplexing


Disadvantages
Characteristics/Advantages One Write or two Reads possible per mirrored pair Twice the Read transaction rate of single disks, same Write transaction rate as single disks 100% redundancy of data means no rebuild is necessary in case of a disk failure, jus t a copy to the replacem ent disk Trans fer rate per block is equal to that of a single disk Under certain circumstances, RAID 1 can sustain multiple simultaneous drive failures Simplest RAID storage subsystem design

H ighes t disk o ve rh e a d of all R A ID typ es ( 1 00%) inef f i ci e n t T yp i c a l l y th e R A I D f u n c t i o n i s d o n e b y s ys t e m s o f t w a r e , l o a d i n g th e C P U / S e r ve r a n d p o s s i b l y d e g r a d i n g thr o u g h p u t at hi g h ac ti v i t y l e ve l s . H ardwa r e i mp l e m e n t a t i o n i s s tr o n g l y recommende d May not support hot swap of failed disk whe n imp l e m e n te d in " sof tw a r e Recommended Applications Accounting P a yr o l l Financial A n y a p p l i c a t i o n r e q u i r i n g ve r y h i g h a va i l a b i l i t y

RAID Level 1 requires a minimum of 2 drives to implement


91 92

RAID1

RAID 5: Independent Data disks with distributed parity blocks


C h a r a c t e r i s t i c s / Ad va n t a g e s Highe s t Re ad data trans ac ti on rate M e dium Write data trans ac tion rate Lo w r a ti o o f E C C ( P a r i ty) d i s k s to data dis ks m e ans high e ffic ie nc y Good aggre gate trans fe r rate Dis advant ages Risk failure has a medium impact on throughpu t M os t c om ple x c ontroll e r de s ign Diffic ul t to re build in the e ve nt of a d is k fa ilu r e ( a s c o m p a r e d to R AID le ve l 1 ) Individual bloc k data trans fe r rate same as single disk R e c o mme n d e d Ap p l i c a t i o n s File a n d Ap p lic a ti o n s e r ve r s Databas e s e rve rs WWW, E- m ail, and Ne w s s e rve rs Intrane t s e rve rs M o s t ve r s a ti le R AID le ve l

RAID Level 5 requires a minimum of 3 drives to implement


93 94

RAID 5

RAID 10: Very High Reliability combined with High Performance


Characteristics/Advantages RAID 10 is implemented as a striped array whose segments are RAID 1 arrays RAID 10 has the s am e fault tolerance as RAID level 1 RAID 10 has the s am e overhead for fault-tolerance as m irroring alone High I/O rates are achieved by striping RAID 1 segments Under certain circumstances, RAID 10 array can sustain multiple simultaneous drive failur es Ex cellent s olution for s ites that would have otherwise gone with RAID 1 but need s om e additional perform ance boos t

Dis advant ages Ve ry e xpe ns ive / High ove rhe ad All d r ive s m u s t m o ve in p a r a lle l to prope r trac k low e ring s us taine d pe rform anc e Ve ry lim i te d s c alabili ty at a ve ry high inhe re nt c os ts R e c o mme n d e d Ap p l i c a t i o n s Databas e s e rve r re quiring high pe rform anc e and fault tole ranc e

95

RAID Level 10 requires a minimum of 4 drives to implement

96

16

Arquitectura rendimiento y performance Tuning del motor relacional del SQL Server

24/10/2008

RAID 10
RAID 10
DISK 1 LOGICAL DISK

DISK 2

DISK 3

DISK 4

97

17

Vous aimerez peut-être aussi