analizando la performance del subsistema de io

Post on 15-Apr-2017

399 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related