Я видел множество служб виртуализации (Azure) и продуктов (vmware, kvm, hyperv) ввода-вывода и системных зависаний при большой рабочей нагрузке ввода-вывода.
Мои вопросы:
- Всегда ли разумно использовать виртуализированное решение при выполнении тяжелых рабочих нагрузок ввода-вывода?
- Каковы лучшие практики вокруг такого рода вещей?
- Каковы причины этих проблем, хорошо ли известны узкие места в системе или это просто вопрос чрезмерной конкуренции?
virtualization
performance-tuning
io
Брайан Хант
источник
источник
Ответы:
Да, действительно очень разумно, фактически для большинства организаций виртуальная среда используется по умолчанию, а работа с физическими блоками - исключение. У нас более 100 тыс. Виртуальных машин всех форм, и многие из них> 40 тыс. IOPS без каких-либо проблем.
Главное здесь не в том, виртуализирован он или нет - он хорошо понимает потребности вашего ввода-вывода и соответствует ресурсам виртуальной памяти. Это очень просто, если вы знаете, что вам нужно / хотите, и у вас есть бюджет, соответствующий бюджету ваших систем хранения, тогда уровень виртуализации действительно играет незначительную роль или не играет никакой роли - если, конечно, вы ДЕЙСТВИТЕЛЬНО не продвигаете вещи (я говорю десятки / сотни миллионов IOP).
Недостаток понимания или попытки сделать слишком много, используя слишком мало ресурсов хранения, это то, что обычно вызывает проблемы у людей.
источник
Регулярно ли сервер баз данных получает 1 Гб / с случайного количества операций ввода-вывода? Есть один здесь.
Или виртуальный файловый сервер, обеспечивающий скорость до 600 Мбит / с для кластера HPC. Тот убегает от 8 великорапторов в рейде 10, посвященном.
Обеспечить много IO. Я думаю, что эта виртуальная машина SQL имеет около 8 или 10 выделенных SSD.
Люди не занимаются математикой. Если подсистема ввода-вывода не способна обрабатывать нагрузку, она также не будет делать это при виртуализации. Нужно МНОГО IO - тогда предоставьте выделенную подсистему хранения соответствующего размера.
источник
Помимо базовой математики и концепции, что вам все еще нужны те же операции ввода-вывода, что и для не виртуализации, есть также QOS / расстановка приоритетов. Большинство платформ виртуализации предлагают, по крайней мере, базовую поддержку для этого, очень помогут предотвратить неправильную работу виртуальной машины, приводящей к сбою вашей рабочей базы.
источник