Как тот, кто использовал и (и продолжается к), я рекомендовал бы Hyper-V, особенно если Вы - прежде всего, магазин Microsoft. Мы переместили более чем 25 виртуальных машин от VMware до Hyper-V, использующего SCVMM, и миграции были безупречны. Нам было нужно больше памяти, поскольку в настоящее время Hyper-V еще не поддерживает сжатие/превышать возможности памяти, но память является дешевой прямо сейчас, и Hyper-V имеет эту функцию, прибывающую скоро.
VMware также имеет живую миграцию, но мы не видели потребность в этом. Эта функция прибывает в следующий выпуск для Hyper-V
Менеджер Hyper-V в порядке, если Вы имеете, просто имеют несколько хостов VM, но SCVMM добавляет много полезных функций, включая библиотеки и объединенное представление хостов VMware и Hyper-V.
Мы продолжим использовать VMware, поскольку один из наших серверов стар и поддерживает 32 бита только, и мы получаем некоторый VMs от наших клиентов. Но все наши новые VMs создаются с помощью Гиперпротив.
Мы также использовали SCVMM и создали библиотеки наших общих конфигураций. Настройка нового VM, включая именование и соединение с доменом все автоматизирована. Мы надеемся далее автоматизировать использование Powershell, видеть: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032409528&EventCategory=4&culture=en-US&CountryCode=US
В целом, функции, простота использования и стоимость приводят нас перемещаться в Hyper-V из VMware.
Для теста quick&dirty (т.е. никакая оптимизация вообще!) Я включил простой веб-сайт значения по умолчанию Ubuntu apache2 (который просто говорит, что "Работает!"), и с http и с https (самоподписанный сертификат) на локальной Ubuntu 9.04 VM и выполнил апачский сравнительный тест"ab
"с 10 000 запросов (никакой параллелизм). Клиент и сервер был на том же machine/VM:
Результаты для http ("ab -n 10000 http://ubuntu904/index.html
")
Результаты для https ("ab -n 10000 https://ubuntu904/index.html
"):
Если Вы более тщательно изучите (например, с tcpdump или wireshark) в tcp/ip коммуникации единственного запроса, то Вы будете видеть, что http случай требует 10 пакетов между клиентом и сервером, тогда как https требует 16: Задержка намного выше с https. (Больше о важности задержки здесь)
Активное добавление (ab
опция -k
) к тесту улучшает ситуацию, потому что теперь все запросы совместно используют то же соединение, т.е. SSL наверху ниже - но https все еще измерим медленнее:
Результаты для http с активным ("ab -k -n 10000 http://ubuntu904/index.html
")
Результаты для https с активным ("ab -k -n 10000 https://ubuntu904/index.html
"):
Заключение:
На современных серверах я сказал бы, что Ваше узкое место будет сетью и Вашим приложением, не шифрованием. TLS/SSL в апаче будет записан в справедливо оптимизированном C, так затмится Вашим кодом PHP, особенно если Вы будете собираться быть выполнением вещей как доступ к базе данных. Обслуживание статических файлов, вероятно, окажет большее влияние, поскольку шифрование станет большей частью целого процесса. Я не могу дать Вам конкретные числа, но я был бы удивлен, были ли это больше чем 5% и вероятно примерно несколько процентов.
Ничего не принимайте, тестируйте его сами! На Ваших определенных веб-приложениях, конечно.
Я нахожу, что на современных аппаратных средствах, более вероятно, буду вводом-выводом, направляющимся в конкретную транзакцию, чем я - процессор (вычисляют) связанный. Это особенно верно при разговоре о сжатии и шифровании. 128-разрядное шифрование тривиально в эти дни - я обычно становлюсь пораженным намного тяжелее создание и поставка исходящих страниц, чем я использую SSL и не заметил значительной разницы в производительности между http и трафиком HTTPS в нескольких годы.
Конечно, если обработка SSL действительно сильно ударяет, можно всегда перемещать ее вне сервера в выделить поле. Существует хорошая запись выполнения этого с nginx здесь. Это - что-то, что мы сделали на очень загруженной загрузке уровня 7 сбалансированные серверы.
Я могу подтвердить, что добавленная загрузка для шифрования является очень маленькой по сравнению с любым включенным элементом (сценарии, сеть...)
По моему опыту, общее правило напрямую связано с тем, как большой ваш открытый ключ (например, 2048, против 4096, против 8192) все занимает значительно больше времени. Однако я с трудом могу заметить разницу в среде настольных компьютеров, но мобильные устройства - это то, где вы видите разницу, поскольку для этого требуются вычислительные мощности.
В целом это прискорбно, но SSL всегда и, вероятно, всегда будет иметь огромное снижение производительности.