К вопросу о дефрагментации дисков виртуальных машин - Windows Guest Defragmentation, Take Two.
Суть:
1) была создана ВМ с диском в 50 ГБ, 29 из которых занято.
2) Данные на этом диске были искуственно фрагментированы.
3) ВМ была склонирована, клон был подвергнт дефрагментации.
4) Осуществлено сравнение двух полученных копий. В качестве операции сравнения использовалась установка SQL Server 2008. Отслеживалось время процесса и статистика работы дисковой подсистемы средствами гипервизора (vscsiStats).
Количество операций ввода вывода разного размера:
После дефрагментации значительно увеличилось число операций ввода вывода, осуществляемых последовательно. Удивительно ;-). На дефрагментированном диске последовательно осуществлялось порядка 30% операций IO. У фрагментированного - порядка 15%.
Улучшилась ситуация с задержками. Основная информация тут - почти не осталось операций с задержками свыше 30 миллисекунд. В случае фрагментированного диска число таких операции составляло до 15%.
Вывод: дефрагментация довольно ощутимо улучшила общее время выполнения работы, среднее значение latency улучшилось на порядок (!), с 58 до 3.5 мс. Основной вклад в улучшение внесла практически полная пропажа операций, выполняемых более 30 мс.
Сводная статистика:
Некоторые оговорки:
- Для тонких дисков, ВМ со снапшотами и ВМ с Linked Clones операция дефрагментации приведет к значительному росту потребляемого места. Однако для тонких дисков, возможно, достаточно будет всего лишь Storage VMotion для уменьшения к ожидаемому размеру.
- Сложно гарантировать положительный эффект в реальности - обычно один LUN разделяют много ВМ. Совокупные обращения, пусть последовательные для каждой из них, фрагментированы для LUN целиком.
- Для приложений, оперирующих малыми блоками (обычно это сервера БД), эффект вряд ли будет значительным.
> В качестве операции сравнения использовалась установка SQL Server 2008.
ОтветитьУдалитьСомнительная по полезности задача для оценки _настоящей_ рабочей нагрузки.
> После дефрагментации значительно увеличилось число операций ввода вывода, осуществляемых последовательно.
Вопрос насколько это на самом деле так для, например OLTP-баз, где даже без виртуальных машин (читай дополнительно рандомизирующего доступ фактора) и так принят за типовой паттерн 100% random 80% read.
Или после дефрагментации random read из задачи к базе станет sequental? ;)
В общем опять "замах на рубль - удар ни о чем" :(
все так, и прямо такие оговорки в конце и приводятся.
ОтветитьУдалитьЕще одна оговорка - при свободном нефрагментированном datastore несомненно будет наблюдаться эффект от дефрагментации NTFS.
ОтветитьУдалитьНо если ВМ создаются, растут, удаляются, мигрируют и заполнение datastore 80-90%? Т.е. если VMFS фрагментирована?
пропали все картинки в посте..
ОтветитьУдалитьв оригинальном посте остались.
ОтветитьУдалить