Преимущества виртуализации сервера приложений на Xenapp

Помимо упрощения развертывания и администрирования, есть ли какие-либо преимущества в производительности при виртуализации сервера приложений?

Например, могу ли я разместить больше работающих пользователей на 4 виртуальных машинах сервера приложений на одном Xenserver, чем на 1 физическом сервере приложений с той же аппаратной спецификацией?

2 ответа

Решение

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

В то время как при виртуализации компромиссы между производительностью, как правило, относительно низкие. 5% для рабочих нагрузок общего назначения и в худшем случае 10-20%. Принимая во внимание, что производительность сервера повышается на 20-50% на поколение, компромисс с точки зрения производительности редко становится пробкой. Это может быть, хотя и эти крайние случаи должны быть исключены из виртуализации.

В некоторых случаях виртуальное решение может превзойти физическую реализацию на нескольких серверах. Как и в случае, когда виртуальное снижение производительности недопустимо, такие ситуации встречаются редко, но они существуют. Многоуровневое приложение со службами переднего плана \ уровнем приложения, которое опирается на сетевое подключение, например, к одной или нескольким внутренним базам данных, может выиграть от эффективности виртуального сетевого стека в одном виртуальном хосте. @pjz привел несколько хороших примеров сценариев с одним типом рабочей нагрузки, в которых виртуализация может улучшить общую производительность, поскольку горизонтальное масштабирование (на несколько параллельных систем) легче выполнить, чем масштабное (создание эффективного многопоточного приложения, которое масштабируется до текущего сервера). ядро рассчитывает эффективно).

Учитывая ваш пример, ответ таков: это зависит от ситуации, но если сервер приложений, о котором вы говорите, - это XenApp, а гипервизор - XenServer, то я думаю, что вы сможете поддерживать больше пользователей, используя виртуальный маршрут, чем исходный, если вы говорите о недавний сервер с большим количеством ядер. У VMware есть старая статья о XenApp, работающем на ESX 3.5, в сравнении с собственной производительностью, и они утверждают, что масштабирование лучше при виртуальных серверах. Whether these claims are still true on up to date XenApp and VMware Hypervisors very much depends on how well current versions of XenApp handle the NUMA architectures and multi-core scaleout on modern hardware, I suspect it is still true although I would take their claims of a 30% improvement with vSphere with some level of scepticism. Citrix claim that XenApp on XenServer outperforms XenApp on vSphere, I can't say if that is true, but the scale out behaviour on virtual systems is clear enough - this Citrix whitepaper shows that with similar workload profiles a dual Xeon 5570 based XenServer can support 3x the number of concurrent users that a physical XenApp server running on two cores of an X7350 based server (which is a generation older). Scaleout with multiple VM's definitely works pretty well butscaleup from dual core to quad-core is not hugely efficient. This AMD presentation indicates a 70% improvement in the number of concurrent sessions that can be supported when moving from dual core to quad core. I suspect that scale-up for XenApp running natively on current Generation 12\16\48 core servers will degrade very rapidly, I can't find anything definitive about this though.

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

  • Если у вас есть многопроцессорная машина и однопотоковое приложение, которое отказывается разрешить сосуществование нескольких копий на одной машине, вы можете "обмануть" это, запустив каждую копию в виртуальной машине на одной машине.

  • Если у вас есть многопроцессорный 64-разрядный компьютер с 16-ГБ оперативной памятью, то 32-разрядное приложение, работающее с ограничением доступной памяти (3-4 ГБ, верно?), Может работать лучше, если будет разделено на 4 VM находится под гипервизором на той же машине, так как это позволит ему обращаться к большему количеству памяти, чем мог бы в противном случае.

Производительность не является сильной стороной виртуализации; Сильной стороной является то, что на одном компьютере вы можете управлять 4 различными приложениями с противоречивыми требованиями к программной инфраструктуре.

Другие вопросы по тегам