Кто-нибудь получил какие-либо показатели производительности, сравнивающие IIS и .NET с Cherokee и Mono?

8

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

Ларри Смитмиер
источник
Я закончил тем, что пошел в SuseGallery [1] и сделал быстрый поиск Mono и нашел JEOS Mono ASP.net [2], который уже был настроен на то, что я хотел. Я только начал использовать для некоторых испытаний ASP.net миграции на Windows с VirtualBox. Мне просто нужно было запустить Apache и настроить переадресацию портов. [1]: susegallery.com [2]: susegallery.com/a/0uPadf/jeos-mono-aspnet
Ларри Смитмиер

Ответы:

7

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

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

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

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

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

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

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

http://mono-project.com/Mod_mono

miguel.de.icaza
источник
7

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

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

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

jacksonh
источник
Seconding - я использую Apache + mod_mono, и он очень хорошо работает, как только начинается. Единственный раз, когда я вижу медлительность, это во время начальной загрузки страницы, но это характерно почти для всего (Rails и т. Д.).
BR