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
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
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
No hay comentarios:
Publicar un comentario