Я настраиваю сервер разработки и хочу настроить его для обслуживания страниц ASP.NET с использованием Mono. Я планирую использовать Cherokee и Mono ( http://www.cherokee-project.com/doc/cookbook_mono.html ) и поинтересовался, проводил ли кто-нибудь тестирование производительности, сравнивая стек на основе Unix с Windows.
performance
mono
.net
asp.net
Ларри Смитмиер
источник
источник
Ответы:
При тестировании рабочих нагрузок Mono / Linux и .NET / Windows вы должны помнить, что в игре присутствует нечто большее, чем просто среда выполнения.
Есть области, в которых Linux работает лучше, чем Windows (большинство операций ввода-вывода и сетевых операций, как правило, быстрее для сопоставимых программ на Си). В то же время .NET имеет более продвинутый сборщик мусора и более продвинутый JIT-компилятор.
Когда дело доходит до библиотек классов, это действительно зависит от того, какие пути кода вы используете. Как сказал Джексон в предыдущем посте, вы можете использовать пути кода, которые были оптимизированы в одной реализации, но не в другой, и наоборот.
В рабочих нагрузках ASP.NET вы должны помнить, что установка по умолчанию направляет все входящие запросы в один «рабочий» процесс, mod_mono и Cherokee используют аналогичный подход:
(источник: mono-project.com )
По крайней мере, в Apache мы поддерживаем механизм, с помощью которого вы можете распределить рабочие нагрузки приложений между несколькими работниками, что помогает при высоких нагрузках, поскольку позволяет избежать какой-либо блокировки в процессе и дает каждому работнику целый пул потоков для работы:
(источник: mono-project.com )
Подробности о том, как настроить эту настройку, доступны здесь:
http://mono-project.com/Mod_mono
источник
Это своего рода не ответ. Однако здесь нет реального ответа. К сожалению, эта вещь сильно зависит от приложения. Ваше приложение может натолкнуться на что-то, что Mono делает очень хорошо, или вы, возможно, интенсивно используете что-то, что реализовано плохо или имеет некоторые ошибки. На самом деле Mono не в X раз медленнее / быстрее, чем IIS.
Я предлагаю взять ваше приложение, развернуть его на двух разных экземплярах EC2 (один Windows и один Mono) и провести там тестирование. Если вы обнаружите серьезные проблемы в экземпляре Mono, сообщите о них, и мы постараемся улучшить ситуацию.
Учитывая все сказанное, я могу сказать из личного опыта, что Mono aspx работает действительно хорошо.
источник