Играя с Proxmox 5.0 в качестве платформы гипервизора и настраивая виртуальную машину KVM для обслуживания веб-сайта, мне действительно интересно, стоит ли мне использовать kvm64 "виртуальный" процессор или попробуйте использовать хозяин. Чтобы быть конкретным, у меня есть 4-ядерный процессор, способный к гиперпоточности, который приводит к 8 ядрам для использования в KVM (или может быть я должен отключить гиперпоточность, чтобы получить больше мощности на ядро, в конце концов?), и я бы посвятил большую часть мощности сервера своему веб-сайту.
Идеи обоих хороши:
если я пойду с 'хозяин' type cpu Я получу всю аппаратную мощность процессора и, похоже, получу большую ее часть. Единственный вопрос - сколько ядер я должен установить для использования виртуальной машиной: если я установлю 8, то какое ядро (а) будет использоваться самим KVM, а если я установлю 7 (так что 1 будет использоваться только самим KVM ) то у меня на 1/8 мощности меньше, не так ли?
если я установил тип процессора на 'kvm64', то я могу назначить больше ядер процессора для виртуальной машины (эти ядра должны быть виртуальными, поэтому я могу легко назначить некоторые, например, 64 или даже 128 таких ядер), поэтому физический процессор будет `` разбит '' на множество меньших, которые могут быть полезно для веб-загрузки, не так ли?
Что бы вы мне посоветовали выбрать?
В Proxmox вики В частности, решается вопрос о выборе типа ЦП:
Qemu может эмулировать различные типы ЦП от 486 до новейших процессоров Xeon. Каждое новое поколение процессоров добавляет новые функции, такие как 3D-рендеринг с аппаратной поддержкой, генерация случайных чисел, защита памяти и т. Д. Обычно вы должны выбирать для своей виртуальной машины тип процессора, который близко соответствует процессору хост-системы, поскольку это означает, что хост-процессор функции (также называемые флагами ЦП) будут доступны на ваших виртуальных машинах. Если вам нужно точное совпадение, вы можете установить тип ЦП для хоста, и в этом случае виртуальная машина будет иметь точно такие же флаги ЦП, что и ваша хост-система.
Однако у этого есть обратная сторона. Если вы хотите выполнить динамическую миграцию виртуальных машин между разными хостами, ваша виртуальная машина может оказаться в новой системе с другим типом ЦП. Если флаги ЦП, переданные гостю, отсутствуют, процесс qemu остановится. Чтобы исправить это, Qemu также имеет собственный тип процессора kvm64, который Proxmox VE использует по умолчанию. kvm64 - это Pentium 4, похожий на тип процессора, у которого установлены уменьшенные флаги процессора, но он гарантированно работает везде.
Короче говоря, если вы заботитесь о динамической миграции и перемещении виртуальных машин между узлами, оставьте значение kvm64 по умолчанию. Если вас не интересует динамическая миграция или вы имеете однородный кластер, в котором все узлы имеют один и тот же ЦП, установите тип ЦП на хост, поскольку теоретически это даст вашим гостям максимальную производительность.
Однако они не упоминают одну вещь: если на всех ваших серверах разные процессоры, вы жестяная банка используйте более мощное поколение виртуальных ЦП, чем kvm64, и продолжайте выполнять живые миграции. Вам просто нужно убедиться, что выбранный вами тип виртуального процессора является самым старым из всех физических процессоров на всех ваших серверах (например, если ваш самый старый процессор - Xeon E5630, вы можете использовать Westmere). Это позволяет иметь ферму серверов со смешанными ЦП и при этом выполнять динамическую миграцию.
В той же вики говорится о том, сколько виртуальных ядер ЦП использовать:
Совершенно безопасно, если общее количество ядер всех ваших виртуальных машин больше, чем количество ядер на сервере (например, 4 виртуальных машины с каждыми 4 ядрами на машине с 8 ядрами). В этом случае хост-система будет балансировать потоки выполнения Qemu между ядрами вашего сервера, как если бы вы запускали стандартное многопоточное приложение. Однако Proxmox VE не позволит вам назначить больше виртуальных ядер ЦП, чем доступно физически, поскольку это приведет только к снижению производительности из-за затрат на переключение контекста.
(Они означают, что ни одной виртуальной машине не будет разрешено иметь больше виртуальных ядер ЦП, чем физических ядер ЦП. Но несколько виртуальных машин, добавленных вместе, могут иметь в общей сложности больше виртуальных ядер ЦП, чем физических ядер ЦП.)
Имейте в виду, что загрузка веб-сервера обычно не связана с процессором, поэтому у вас, вероятно, в любом случае будет много простаивающего процессора.
Для лучшей производительности хост - лучший вариант, так как если у процессора есть флаг VT-x, он будет напрямую использоваться в виртуальной машине. Ничего не нужно эмулировать на процессоре, и эмуляция имеет накладные расходы.
Последствия этого, конечно, заключаются в том, что если вы переключите виртуальную машину на другой хост, который имеет другой процессор спецификации, у вас могут возникнуть проблемы. Однако обычно проблемы будут в основном ориентированы на производительность, например. если новый хост имеет меньшую тактовую частоту, меньший объем кеша или менее ускоренные инструкции, маловероятно, что виртуальная машина не загрузится. Но если это произойдет, вы, вероятно, сможете изменить тип процессора после миграции, чтобы получить успешную загрузку.
Опция kvm64 дает вам душевное спокойствие: вы никогда не столкнетесь с проблемами миграции на стороне процессора, но она не будет такой производительной.