sábado, 7 de febrero de 2015

DiskSpd–testing de storage para SQL Server de Sharepoint

Microsoft siempre recomendó SQLIO o IOMETER para hacer testing sobre el storage. Ultimamente está recomendado utilizar DiskSpd (https://github.com/microsoft/diskspd). La tool puede simular diferentes tipos de workloads para el storage. Cómo la performance de SQL Server impacta directamente sobre la performance de Sharepoint, vamos a probarla sobre el SQL Server de un Sharepoint montado sobre azure (A6, 4 núcleos y 28 GB de RAM).

Para bajar los binarios, ingrese acá: http://aka.ms/DiskSpd. En el zip vienen tres versiones amd64fre (para 64-bit systems), x86fre (para 32-bit systems) y armfre (para ARM systems).

Vamos a usar amd64fre en este caso.

Les recomiendo leer el siguiente artículo Storage and SQL Server capacity planning and configuration (SharePoint Server 2013)

En una sección del artículo comenta que una base de contenido tienden a estar en el rango de 0.2 IOPS/GB a 0.5 IOPS/GB, obviamente dependiendo del tipo de contenido, usuarios, frecuencia, etc. Pero es en general rondan esos IOPS una base de contenido. Les dejo un resumen para que sepan de forma más exacta la cantidad de IOPS que necesitan

image

Para las bases del search pueden llegar a los 10 IOPS/GB, cómo siempre depende del tipo de contenido y el tamaño que estás indexando.

Las bases de contenido se deben optimizar para “Read Operations”, ya que en general el 80% son lecturas para las bases de contenido (de nuevo depende de tu ambiente). En cambio la TempDb debería estar optimizada para “Write Operations”, al igual que los transaction logs. Tanto para la TempDb y los transaction logs se recomienda tener 2 IOPSxGB.

Abro una consola de powershell, voy hasta el path donde esta DiskSpd, y ejecuto lo siguiente

diskspd.exe -c1G -d60 -b64k  -w20  -h -L C:\testfile.dat

-c = tamaño en bytes del archivo a probar

-d = tiempo de la prueba

-b = tamaño de la operación de IO en KB, en general se recomienda tener formateado los sql con 64KB de block size, por cuestiones de performance. Les dejo un post donde defino las best practices para SQL Server para Sharepoint.

-w = 20% de writes, 80% de lectura. Depende de donde hagas las pruebas (Ej: partición de la tempdb o partición de la content database, puede variar este porcentaje)

-h = disabled hardware y software caching

-l = capturo la información de la latencia

image

PS C:\Users\administrador\Desktop\Diskspd-v2.0.15\amd64fre> .\diskspd -c1G -d60 -b64k  -w20  -h -L C:\testfile.dat

Command Line: C:\Users\administrador\Desktop\Diskspd-v2.0.15\amd64fre\diskspd.exe -c1G -d60 -b64k -w20 -h -L C:\testfile
.dat

Input parameters:

        timespan:   1
        -------------
        duration: 60s
        warm up time: 5s
        cool down time: 0s
        measuring latency
        random seed: 0
        path: 'C:\testfile.dat'
                think time: 0ms
                burst size: 0
                software and hardware write cache disabled
                performing mix test (write/read ratio: 20/100)
                block size: 65536
                using sequential I/O (stride: 65536)
                number of outstanding I/O operations: 2
                thread stride size: 0
                threads per file: 1
                using I/O Completion Ports
                IO priority: normal

 

Results for timespan 1:
*******************************************************************************

actual test time:       60.00s
thread count:           1
proc count:             4

CPU |  Usage |  User  |  Kernel |  Idle
-------------------------------------------
   0|   2.66%|   1.43%|    1.22%|  97.34%
   1|   1.04%|   0.91%|    0.13%|  98.96%
   2|   0.18%|   0.18%|    0.00%| 100.47%
   3|   0.29%|   0.29%|    0.00%| 107.21%
-------------------------------------------
avg.|   1.04%|   0.70%|    0.34%| 101.00%

Total IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |      1251147776 |        19091 |      19.89 |     318.18 |    6.299 |    21.863 | C:\testfile.dat (1024MB)
-----------------------------------------------------------------------------------------------------
total:        1251147776 |        19091 |      19.89 |     318.18 |    6.299 |    21.863

Read IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |      1003880448 |        15318 |      15.96 |     255.30 |    4.260 |    17.148 | C:\testfile.dat (1024MB)
-----------------------------------------------------------------------------------------------------
total:        1003880448 |        15318 |      15.96 |    255.30 |    4.260 |    17.148

Write IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |       247267328 |         3773 |       3.93 |      62.88 |   14.575 |    33.755 | C:\testfile.dat (1024MB)
-----------------------------------------------------------------------------------------------------
total:         247267328 |         3773 |       3.93 |      62.88 |   14.575 |    33.755


  %-ile |  Read (ms) | Write (ms) | Total (ms)
----------------------------------------------
    min |      0.088 |      6.141 |      0.088
   25th |      0.122 |      7.052 |      0.127
   50th |      0.173 |      8.019 |      0.215
   75th |      0.310 |     13.518 |      7.787
   90th |     13.661 |     22.534 |     15.612
   95th |     19.704 |     31.477 |     23.500
   99th |     31.262 |     84.047 |     37.936
3-nines |    245.343 |    525.326 |    267.420
4-nines |    485.116 |    880.573 |    878.033
5-nines |    528.841 |    880.573 |    880.573
6-nines |    528.841 |    880.573 |    880.573
7-nines |    528.841 |    880.573 |    880.573
8-nines |    528.841 |    880.573 |    880.573
    max |    528.841 |    880.573 |    880.573

Links recomendados:

http://www.emc.com/collateral/hardware/white-papers/h12468-sharepoint-server-best-practices-wp.pdf

http://blogs.technet.com/b/josebda/archive/2014/10/13/diskspd-powershell-and-storage-performance-measuring-iops-throughput-and-latency-for-both-local-disks-and-smb-file-shares.aspx

No hay comentarios:

Publicar un comentario