Analizando la performance del subsistema de IO
-
Upload
spanishpassvc -
Category
Technology
-
view
398 -
download
0
Transcript of Analizando la performance del subsistema de IO
Analizando la performance del subsistema de I/O27 de Abril 2016 (12 pm GMT -5)
Javier VillegasResumen:
Analizaremos el subsistema de I/O para detectar los posibles cuellos de botella. Para llevar a cabo esto utilizaremos distintas técnicas y herramientas
Está por comenzar:
Moderador: Carlos Ulate
Próximos EventosCreación de un modelo de
análisis predictivo en la nube04 de Mayo
Patricio Cofre
Power BI con MS Dynamics AX
11 de MayoJuan Manuel Rafael Fabian
Administrando la Continuidad del Negocio con
Azure SQL Database18 de Mayo
Adrian Miranda
Manténgase conectado a nosotros!
Visítenos en http://globalspanish.sqlpass.org
/SpanishPASSVC
lnkd.in/dtYBzev
/user/SpanishPASSVC
/SpanishPASSVC
3
4
Oportunidades de Voluntariado
PASS no pudiera existir sin personas apasionadas y dedicadas de todas partes del
mundo que dan de su tiempo como voluntarios.
Se un voluntario ahora!!
Para identificar oportunidades locales visita volunteer.sqlpass.org
Recuerda actualizar tu perfil en las secciones de “MyVolunteering” y MyPASS para mas
detalles.
Sigan Participando!• Obtén tu membresía gratuita en sqlpass.org
• Linked In: http://www.sqlpass.org/linkedin• Facebook: http://www.sqlpass.org/facebook• Twitter: @SQLPASS• PASS: http://www.sqlpass.org
Analizando la performance del subsistema de I/O
27 de Abril de 2016Javier VillegasMCP y MCTS.Trabajando como profesional de SQL Server desde 1997DBA Manager en Mediterranean Shipping Company desde 2006Miembro de la comunidad PASS desde 2008Moderador: Carlos Ulate
7
Agenda
• Mejores Practicas• Métricas• Métodos para medir la performance de I/O• Queries de diagnostico de I/O• Herramientas• Tipos de Storage para SQL Server
8
SQL Mejores Practicas
• Identificar tipo de Workload• Online Transaction Processing (OLTP)
• Alta escritura• Relational Data Warehouse (DW)
• Alta lectura• Online Analytical Processing (OLAP)
• Sequencial Throughput • Backup/Restore
• Asignar “Perform volumen maintenance tasks” a la SQL Service Account• Utilizar Backup compression
• Utiliza un poco mas de CPU pero menos I/O
• Mantener los VLF bajo control• Creación y Mantenimiento de índices• Usar la opción MAXDOP para mejorar la performance durante el mantenimiento de índices• Utilizar Data Compression donde sea apropiado para reducir el I/O
9
SQL Mejores Practicas
• Es importante diseñar el Sistema de I/O de nuestro entorno SQL Server siguiendo las mejores practicas.
• Solicitar las mejores practicas de SQL Server para SAN en cuestión
• La performance del SQL Server I/O es crucial para la performance general del entorno dado que el acceso a datos en disco es mucho mas lento que memoria
• Conocer nuestro Sistema de I/O
• Muchos DBAs se preocupan solo por chequear los backups y hacer tunning de queries pero también es importante saber que ocurre con el Sistema de I/O y el storage
10
SQL Mejores Practicas
• Las 3 métricas mas importante para la performance del storage• Latencia
Es el tiempo que toma en completar un I/O• I/O operaciones por segundo (IOPS)• Directamente relacionado con la latencia.
• Sequencial Throughput (MB/sec o GB/sec)• Importante para Backup/Restore, Creación y mantenimiento de índices,
• Estas 3 métricas están interrelacionadas entre si. No podemos solo mirar una de ella en forma separada sin saber acerca de las otras
11
SQL Server I/O Métricas
• Lectura vs Escritura• DMV
• I/O rates• Reads/sec, Writes/sec desde PerfMon• Disk read bytes/sec, Disk writes/sec es Throughput
• Latencia promedio• Average disk sec/read, Average disk sec/write
12
Métodos para medir la performance de I/O
• Task Manager en Windows 2012 o Windows 2012 R2 (Dependiendo del tipo de storage que se use)
• Windows Resource Monitor (sección de Discos)• Contadores de PerfMon (LogicalDisk)• DMV• Herramientas de medición de performance
• CrystalDiskMark• SQLIO• DiskSpd (SQLIO mejorado)
13
Task Manager
14
Resource Monitor
15
PerfMon
16
Tipos de Storage para SQL Server
Internal drives (3.5”, 2.5” o 1.8”)RAID / SSD
Direct-attached storage (DAS)External Enclosure / Fácil de configurar y administrar / Dedicado, no compartido
Storage area networks (SAN)Compartido / muchas bahías / gran tamaño de cacheFiber-Channel / iSCSI
PCIe flash-based (ex. Fusion-IO)Seq. Throughput y Random I/O muy alto
Server Message Block (SMB) 3.0/3.02 file sharesSQL 2012 o superior.
17
DEMOI/O Diagnostic Queries
18
Patrones comunes de los resultados de DMV
• Es común ver alta la latencia de escritura en los archivos de datos de la TempDBAsegurarse de tener múltiples archivos de datos (4 – 8)Usar Trace Flag 1118Considerar ubicar la TempDB en discos SSD
• Si se ven alta latencia de lectura en los archivos de datos de bases de usuariosBuscar signos de presión de memoria.Realizar mantenimientos de índicesConsiderar agregar mas RAMEn SQL 2014 considerar el uso de Buffer Pool Extension BPE
19
Herramientas para evaluar performance de I/O
Diskspd (evolución del SQLIO) – Herramienta ideal para el testeo y validación del storagehttps://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223
Ejemplo 1
Especifica un tamaño de bloque de 256K, se ejecuta secuencialmente, 100% lectura. Corre por 10 segundos. Corre 8 IO simultáneos y 4 threads por destino. Se ejecuta en el disco físico n# 9
Diskspd.exe -b256K -d10 -o8 -t4 -a0,1 #9
20
Herramientas para evaluar performance de I/O
Command Line: Diskspd.exe -b256K -d10 -o8 -t4 -a0,1 #9
Input parameters:
timespan: 1 ------------- duration: 10s warm up time: 5s cool down time: 0s random seed: 0 advanced affinity: 0, 1 path: '#9' think time: 0ms burst size: 0 using software and hardware cache performing read test block size: 262144 number of outstanding I/O operations: 8 stride size: 262144 thread stride size: 0 threads per file: 4 using I/O Completion Ports IO priority: normal
21
Herramientas para evaluar performance de I/O
Results for timespan 1:*******************************************************************************
actual test time: 10.01sthread count: 4
Total IOthread | bytes | I/Os | MB/s | I/O per s | file------------------------------------------------------------------------------ 0 | 1385431040 | 5285 | 132.02 | 528.06 | #9 (186GB) 1 | 1385431040 | 5285 | 132.02 | 528.06 | #9 (186GB) 2 | 1385431040 | 5285 | 132.02 | 528.06 | #9 (186GB) 3 | 1385693184 | 5286 | 132.04 | 528.16 | #9 (186GB)------------------------------------------------------------------------------total: 5541986304 | 21141 | 528.09 | 2112.35
Read IOthread | bytes | I/Os | MB/s | I/O per s | file------------------------------------------------------------------------------ 0 | 1385431040 | 5285 | 132.02 | 528.06 | #9 (186GB) 1 | 1385431040 | 5285 | 132.02 | 528.06 | #9 (186GB) 2 | 1385431040 | 5285 | 132.02 | 528.06 | #9 (186GB) 3 | 1385693184 | 5286 | 132.04 | 528.16 | #9 (186GB)------------------------------------------------------------------------------total: 5541986304 | 21141 | 528.09 | 2112.35
Write IOthread | bytes | I/Os | MB/s | I/O per s | file------------------------------------------------------------------------------ 0 | 0 | 0 | 0.00 | 0.00 | #9 (186GB) 1 | 0 | 0 | 0.00 | 0.00 | #9 (186GB) 2 | 0 | 0 | 0.00 | 0.00 | #9 (186GB) 3 | 0 | 0 | 0.00 | 0.00 | #9 (186GB)------------------------------------------------------------------------------total: 0 | 0 | 0.00 | 0.00
22
Herramientas para evaluar performance de I/O
Ejemplo 2
Especifica un tamaño de bloque de 8K, Corre por 60 segundos ,deshabilita todo el chache de hardware y software . Corre 2 IO simultáneos y 4 threads por destino. Aleatoriamente 30% de escritura y 70% de lectura. Crea un archive de test de 50MB
Diskspd.exe -b8K -d60 -h -L -o2 -t4 -r -w30 -c50M c:\io.dat
23
Herramientas para evaluar performance de I/O
Command Line: Diskspd.exe -b8K -d60 -h -L -o2 -t4 -r -w30 -c50M c:\io.dat
Input parameters:
timespan: 1 ------------- duration: 60s warm up time: 5s cool down time: 0s measuring latency random seed: 0 path: 'c:\io.dat' think time: 0ms burst size: 0 software and hardware cache disabled performing mix test (write/read ratio: 30/100) block size: 8192 using random I/O (alignment: 8192) number of outstanding I/O operations: 2 stride size: 8192 thread stride size: 0 threads per file: 4 using I/O Completion Ports IO priority: normal
24
Herramientas para evaluar performance de I/O
Results for timespan 1:*******************************************************************************
actual test time: 60.00sthread count: 4
Total IOthread | bytes | I/Os | MB/s | I/O per s | AvgLat | LatStdDev | file----------------------------------------------------------------------------------------------------- 0 | 44900352 | 5481 | 0.71 | 91.35 | 21.910 | 27.633 | c:\io.dat (50MB) 1 | 44720128 | 5459 | 0.71 | 90.98 | 21.987 | 26.877 | c:\io.dat (50MB) 2 | 44761088 | 5464 | 0.71 | 91.07 | 21.981 | 26.822 | c:\io.dat (50MB) 3 | 45817856 | 5593 | 0.73 | 93.22 | 21.466 | 26.323 | c:\io.dat (50MB)-----------------------------------------------------------------------------------------------------total: 180199424 | 21997 | 2.86 | 366.61 | 21.834 | 26.916
Read IOthread | bytes | I/Os | MB/s | I/O per s | AvgLat | LatStdDev | file----------------------------------------------------------------------------------------------------- 0 | 31842304 | 3887 | 0.51 | 64.78 | 12.384 | 13.325 | c:\io.dat (50MB) 1 | 31121408 | 3799 | 0.49 | 63.32 | 12.258 | 13.198 | c:\io.dat (50MB) 2 | 31326208 | 3824 | 0.50 | 63.73 | 12.344 | 13.800 | c:\io.dat (50MB) 3 | 32366592 | 3951 | 0.51 | 65.85 | 11.886 | 12.602 | c:\io.dat (50MB)-----------------------------------------------------------------------------------------------------total: 126656512 | 15461 | 2.01 | 257.68 | 12.216 | 13.235
Write IOthread | bytes | I/Os | MB/s | I/O per s | AvgLat | LatStdDev | file----------------------------------------------------------------------------------------------------- 0 | 13058048 | 1594 | 0.21 | 26.57 | 45.140 | 37.837 | c:\io.dat (50MB) 1 | 13598720 | 1660 | 0.22 | 27.67 | 44.251 | 35.563 | c:\io.dat (50MB) 2 | 13434880 | 1640 | 0.21 | 27.33 | 44.453 | 35.090 | c:\io.dat (50MB) 3 | 13451264 | 1642 | 0.21 | 27.37 | 44.518 | 35.010 | c:\io.dat (50MB)-----------------------------------------------------------------------------------------------------total: 53542912 | 6536 | 0.85 | 108.93 | 44.585 | 35.880
25
Herramientas para evaluar performance de I/O
%-ile | Read (ms) | Write (ms) | Total (ms)---------------------------------------------- min | 0.152 | 3.474 | 0.152 25th | 4.242 | 20.145 | 6.114 50th | 8.638 | 34.130 | 12.401 75th | 15.380 | 57.890 | 27.417 90th | 27.425 | 89.141 | 52.325 95th | 37.417 | 112.730 | 74.555 99th | 63.537 | 173.054 | 129.1223-nines | 114.707 | 285.271 | 228.0234-nines | 156.141 | 423.908 | 317.2515-nines | 157.008 | 423.908 | 423.9086-nines | 157.008 | 423.908 | 423.9087-nines | 157.008 | 423.908 | 423.9088-nines | 157.008 | 423.908 | 423.908 max | 157.008 | 423.908 | 423.908
26
Herramientas para evaluar performance de I/O
CristalDiskMark – Disk Benchmark utility - http://crystalmark.info/download/index-e.html
27
DEMOSET Statistics IO
Perfmon/Powershell
28
Preguntas ?
Creación de un modelo de análisis predictivo en la nube
04 de Mayo 2016(12 pm GMT -5)
Patricio CofreResúmen:
Microsoft Azure ofrece una solución de análisis predictivo 100% Cloud, donde es posible realizar el proceso analítico de búsqueda de patrones en los datos, y a la vez la explotación de estos modelos en un ambiente de producción altamente disponible y escalable como lo es Microsoft Azure.
Próximo Evento