У нас есть сайт ASP.NET MVC, размещенный на двух хостах VMware ESX. Каждый хост имеет два сокета с четырехъядерными процессорами (8 логических ядер на хост). У нас есть две виртуальные машины на каждом хосте. Первоначально каждому хосту был выделен только один виртуальный ЦП.
Мы увеличили количество виртуальных ЦП на хост до 2, а затем до 4, и на каждом этапе в ходе нагрузочного тестирования измерили увеличение пропускной способности на 30%. Приложение зависит от ЦП - мало кэширования (ОЗУ) и очень мало активности на диске.
Мне интересно, следует ли ожидать других результатов, если у нас будет больше виртуальных машин с меньшим количеством процессоров. Я немного читал о том, как ESX планирует vCPU, и похоже, что с большим количеством vCPU и меньшим количеством виртуальных машин накладные расходы на планирование могут сдерживать нас.
Стоит ли использовать, например, 4 виртуальных машины с 2 виртуальными ЦП? Какие именно узкие места ресурсов мы устраняем, регулируя количество виртуальных машин по сравнению с количеством виртуальных ЦП?
Я думаю, вам было бы лучше с меньшим количеством виртуальных машин с большим количеством виртуальных ЦП - не все приложения развиваются так, как ваше, на самом деле это довольно роскошь, я бы хотел, чтобы это было у меня :)
В принципе, не беспокойтесь о планировании vCPU, пока не начнете замечать реальную проблему, а затем она станет сложной.