При тестировании рабочих нагрузок 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