Обычная установка против виртуальных машин – что лучше для многоядерных?

В настоящее время мы купили новый сервер с 64 ГБ оперативной памяти и 8 ядер с поддержкой hyperthreading. Мы собираемся создать систему, используя:

  • Nginx.
  • апач.
  • MySQL.
  • PHP

Итак, вопрос о производительности: как эффективно использовать ядра?

Лучше ли устанавливать единую операционную систему и настраивать отдельные приложения или создавать несколько виртуальных машин, и позволить каждой машине использовать ее ресурсы (например, ядро)?

  • Многопоточные приложения на однопоточном CPU?
  • Темы против прерываний
  • Что такое lwp и потоки в Solaris?
  • Многопоточность (увеличение количества потоков для процесса)
  • Запуск сценария GNU Octave на нескольких ядрах
  • 2 Solutions collect form web for “Обычная установка против виртуальных машин – что лучше для многоядерных?”

    Преимущества использования виртуальных машин не столько в увеличении производительности как таковой. Основная идея заключается в том, что во многих случаях вам нужна изолированность системы, т. Е. Вы не хотите, чтобы одна система мешала другой. Это играет важную роль в облачных вычислениях, поскольку поставщик может размещать устройства для разных пользователей, и, конечно же, их необходимо надежно разделить. Если используется подход с открытым металлом, в этом случае каждый клиент имеет свою собственную машину, системы, скорее всего, не будут полностью использоваться. Хостинг многих виртуальных машин на одной физической машине увеличивает использование, обеспечивая при этом безопасную среду.

    Однако хостинг виртуальных машин имеет свои собственные накладные расходы . Программное обеспечение может работать не так эффективно на виртуализированном оборудовании, виртуальные машины должны управляться с хоста, и между виртуальными машинами существует много избыточности. Это вводит штраф за производительность, а не бонус.

    В вашем случае вы можете запускать каждую службу на отдельной виртуальной машине по соображениям безопасности или обслуживания. Если одна из ваших служб скомпрометирована, другие могут не пострадать. Кроме того, легко сделать снимки каждой виртуальной машины, что упрощает обслуживание, помимо прочего. Однако я бы не поставил на улучшение производительности.

    Альтернативой виртуальным машинам является виртуализация на уровне операционной системы, такая как технология контейнеров, недавно популяризированная на Linux компанией Docker . Они позволяют использовать несколько изолированных экземпляров пространства пользователя, устраняя необходимость запуска нескольких полномасштабных операционных систем, что значительно снижает производительность, предоставляя многие преимущества виртуальных машин. Контейнеры-докеры легко развертываются, а также поддерживают моментальные снимки.

    Итак, вопрос о производительности – как эффективно использовать ядра?

    Если в этом ящике ничего больше нет, я бы пошел с простой и простой установкой – хотя я не являюсь другом, вкладывая все в одну коробку. Существует почти ничего сопоставимого с запуском «родной». Как сказал @Benjamin B.: Docker – уровень виртуализации с очень низкими накладными расходами. Но если у вас нет причин для виртуализации, я бы не сделал этого с такой простой настройкой. Это добавляет, по крайней мере, дополнительные организационные накладные расходы на ваш проект.

    Лучше ли создать единую операционную систему и настроить те компоненты, которые я описал эффективно, или создать несколько виртуальных машин, и позволить каждой машине использовать ее в ядре?

    Почему это должно быть лучше? Скажем, вы используете Ubuntu на своем поле и устанавливаете виртуальные машины с Ubuntu: почему Guest-Ubuntu должен отличаться от обычной установки?

    Операционные системы созданы для эффективного управления ресурсами ressources, поэтому запуск всего на простой установке должен сделать трюк.

    Виртуализация интересна, если вы планируете легко разворачивать экземпляры / службы; или если вам нужны более тонкие уровни изоляции.

    Но поскольку это ваш единственный ящик, вы в порядке с простой установкой.

    OT: Зачем использовать apache и nginx?

    Linux и Unix - лучшая ОС в мире.