Мы проводим тесты производительности на двух новых виртуальных машинах Standard DS13 (8 ядер, 56 ГБ) (обе с использованием последнего образа Windows 2012 R2 по умолчанию), поддерживаемых хранилищем Premium, и столкнулись с проблемой на этапе 1 при тестировании производительности локального SSD.
Мы понимаем, что 25% локального SSD объемом 400 ГБ для этих виртуальных машин доступны в качестве временного хранилища, а остальные 75% используются для кэширования хранилища Premium: http://azure.microsoft.com/blog/2014/12/11/new-premium-storage-backed-virtual-machines/
По оставшимся 25% мы ожидаем увидеть следующие показатели: http://www.brentozar.com/archive/2014/09/azure-really-60-faster/ http://azure.microsoft.com/blog/2014/10/06/d-series-performance-expectations/
... но Crystal Disk Mark показывает это ползать вместе:
Sequential Read : 4.097 MB/s
Sequential Write : 4.096 MB/s
Random Read 512KB : 4.112 MB/s
Random Write 512KB : 4.112 MB/s
Random Read 4KB (QD=1) : 2.057 MB/s [ 502.3 IOPS]
Random Write 4KB (QD=1) : 2.057 MB/s [ 502.2 IOPS]
Random Read 4KB (QD=32) : 2.048 MB/s [ 500.0 IOPS]
Random Write 4KB (QD=32) : 2.047 MB/s [ 499.7 IOPS]
Test : 50 MB [D: 7.2% (8.1/112.0 GB)] (x5)
Date : 2015/02/14 15:35:41
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)
Производительность диска ОС лучше, но совсем не приближается к 150 МБ / с, которые можно было бы ожидать от диска P20 (при условии, что это то, что выделено для диска ОС 127 ГБ по умолчанию).
Ожидая:
http://azure.microsoft.com/en-us/documentation/articles/storage-premium-storage-preview-portal/
Видя:
Sequential Read : 66.031 MB/s
Sequential Write : 63.034 MB/s
Random Read 512KB : 65.861 MB/s
Random Write 512KB : 63.580 MB/s
Random Read 4KB (QD=1) : 2.097 MB/s [ 511.9 IOPS]
Random Write 4KB (QD=1) : 2.047 MB/s [ 499.7 IOPS]
Random Read 4KB (QD=32) : 2.086 MB/s [ 509.3 IOPS]
Random Write 4KB (QD=32) : 2.078 MB/s [ 507.4 IOPS]
Test : 50 MB [C: 12.9% (16.4/127.0 GB)] (x5)
Date : 2015/02/14 15:46:35
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)
И производительность P30 диск (с Только для чтения cache) не намного лучше:
Sequential Read : 204.567 MB/s
Sequential Write : 39.677 MB/s
Random Read 512KB : 204.549 MB/s
Random Write 512KB : 34.865 MB/s
Random Read 4KB (QD=1) : 20.951 MB/s [ 5114.9 IOPS]
Random Write 4KB (QD=1) : 1.666 MB/s [ 406.7 IOPS]
Random Read 4KB (QD=32) : 20.893 MB/s [ 5100.9 IOPS]
Random Write 4KB (QD=32) : 20.944 MB/s [ 5113.4 IOPS]
Test : 50 MB [E: 0.0% (0.2/1023.0 GB)] (x5)
Date : 2015/02/14 15:22:59
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)
По сравнению с нашим текущим Облачный диск с кэшированием хоста, развернутым на D13 (обратите внимание на производительность произвольного чтения 4 КБ):
Sequential Read : 136.711 MB/s
Sequential Write : 10.210 MB/s
Random Read 512KB : 190.744 MB/s
Random Write 512KB : 9.063 MB/s
Random Read 4KB (QD=1) : 10.813 MB/s [ 2639.8 IOPS]
Random Write 4KB (QD=1) : 0.508 MB/s [ 107.5 IOPS]
Random Read 4KB (QD=32) : 106.533 MB/s [ 26009.1 IOPS]
Random Write 4KB (QD=32) : 9.363 MB/s [ 2286.0 IOPS]
Test : 50 MB [F: 4.1% (24.9/600.0 GB)] (x5)
Date : 2015/02/14 20:25:01
OS : Windows Server 2012 Datacenter (Full installation) [6.2 Build 9200] (x64)
И вот что сообщает SQLIO для локального SSD:
C:\Program Files (x86)\SQLIO>sqlio -dD
sqlio v1.5.SG
1 thread reading for 30 secs from file D:testfile.dat
using 2KB IOs over 128KB stripes with 64 IOs per run
size of file D:testfile.dat needs to be: 8388608 bytes
current file size: 0 bytes
need to expand by: 8388608 bytes
expanding D:testfile.dat ... done.
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 499.38
MBs/sec: 0.97
А для P30:
C:\Program Files (x86)\SQLIO>sqlio -dE
sqlio v1.5.SG
1 thread reading for 30 secs from file E:testfile.dat
using 2KB IOs over 128KB stripes with 64 IOs per run
size of file E:testfile.dat needs to be: 8388608 bytes
current file size: 0 bytes
need to expand by: 8388608 bytes
expanding E:testfile.dat ... done.
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 5103.03
MBs/sec: 9.96
Объявленные для P30 5000 операций ввода-вывода в секунду удерживаются, но как насчет пропускной способности 200 МБ / с на диск?
ПРИМЕЧАНИЕ. Попытки создать диск данных P30 с политикой кэширования ReadWrite приводят к:
Update-AzureVm: BadRequest: параметр кэша диска ReadWrite не поддерживается для DataVirtualHardDisk.
Приветствуются любые рекомендации:
Чтобы ответить на ваши вопросы:
Дэвид Берг, команда по производительности Microsoft Azure
Хранилище премиум-класса поддерживает только кэш чтения, а не чтение / запись, как стандартные диски.
Пропускная способность тестов SQLIO ограничена, поскольку вы используете размер блока ввода-вывода по умолчанию 2 КБ. Возьмите количество операций ввода-вывода в секунду на диске P30, которое вы в настоящее время получаете, и умножьте на размер блока, и вы получите 5103 операций ввода-вывода в секунду * 2 КБ = 10206 КБ / с или 9,97 МБ / с, что является пропускной способностью, указанной в ваших тестах. Увеличьте размер блока в вашей команде SQLIO (см. http://www.mssqltips.com/sqlservertip/2127/benchmarking-sql-server-io-with-sqlio/) и вы сможете найти предел пропускной способности. Размер блока ввода-вывода в 64 КБ должен дать вам 5103 IOPS * 64 КБ = 326592 КБ / с или 318,94 МБ / с и проверить заявленный Microsoft предел.
Я не тестировал локальные твердотельные накопители на своих виртуальных машинах серии D, но у меня еще нет доступа к хранилищу премиум-класса, поэтому в этом случае это не поможет. Мое единственное предположение заключается в том, что если вы используете хранилище премиум-класса на машине, которая использует 75% емкости локального SSD, это также может ограничивать доступ к локальному SSD, чтобы гарантировать производительность хранилища премиум-класса.