Есть ли у кого-нибудь цифры производительности, сравнивающие IIS и .NET с Cherokee и Mono?

Есть ли у кого-нибудь цифры производительности, сравнивающие IIS и .NET с Cherokee и Mono?

Я настраиваю сервер разработки и хочу настроить его для обслуживания страниц ASP.NET с использованием Mono. Я планирую использовать Cherokee и Mono (http://www.cherokee-project.com/doc/cookbook_mono.html) и задался вопросом, проводил ли кто-нибудь тестирование производительности, сравнивая стек на базе Unix со стеком на базе Windows.

решение1

При тестировании рабочих нагрузок Mono/Linux и .NET/Windows следует помнить, что здесь играет роль не только среда выполнения.

Есть области, в которых Linux работает лучше, чем Windows (большинство операций ввода-вывода и сетевых операций, как правило, выполняются быстрее для сопоставимых программ на языке C). В то же время, .NET имеет более продвинутый сборщик мусора и более продвинутый JIT-компилятор.

Когда дело доходит до библиотек классов, это действительно зависит от того, какие пути кода вы используете. Как сказал JacksonH в предыдущем посте, вы можете попасть в пути кода, которые были оптимизированы в одной реализации, но не в другой, и наоборот.

При работе с рабочими нагрузками ASP.NET следует помнить, что настройка по умолчанию направляет все входящие запросы в один «рабочий» процесс; mod_mono и Cherokee используют аналогичный подход:

Множество HTTP-серверов на один mod-mono-сервер
(источник:mono-project.com)

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

Маршрутизация запросов на разные хосты ASP.NET с помощью mod_mono
(источник:mono-project.com)
Подробная информация о настройке этой установки доступна здесь:

http://mono-project.com/Mod_mono

решение2

Это своего рода не ответ. Однако здесь нет настоящего ответа. К сожалению, эта штука сильно зависит от приложения. Ваше приложение может натолкнуться на что-то, что Mono делает очень хорошо, или вы можете активно использовать что-то, что реализовано плохо или имеет некоторые ошибки. На самом деле это не тот случай, когда Mono в X раз медленнее/быстрее IIS.

Я предлагаю взять ваше приложение, развернуть его на двух разных экземплярах EC2 (один Windows и один Mono) и провести тестирование там. Если вы обнаружите серьезные проблемы на экземпляре Mono, сообщите о них, и мы постараемся все улучшить.

Несмотря на все вышесказанное, я могу сказать по личному опыту, что Mono aspx работает действительно хорошо.

Связанный контент