При тестировании Моно / Linux по сравнению с рабочими нагрузками.NET/Windows, необходимо помнить, что там более приведено в действие, чем просто среда выполнения.
Существуют области, в которых Linux работает лучше, чем Windows (Большая часть IO, и сетевые операции имеют тенденцию быть быстрее для сопоставимых программ C). В то же время.NET имеет более усовершенствованный сборщик "мусора" и более усовершенствованный JIT-компилятор.
Когда дело доходит до библиотек классов это действительно зависит, на каких путях выполнения кода Вы используете. Как JacksonH заявил относительно предыдущего сообщения, можно поразить пути выполнения кода, которые были оптимизированы в одной реализации, но не на другом, и наоборот.
На рабочих нагрузках ASP.NET необходимо помнить, что установка по умолчанию направит все входящие запросы к единственному процессу "рабочего", mod_mono, и чероки используют аналогичный подход:
(источник: mono-project.com)
По крайней мере, с Apache мы поддерживаем механизм, где можно разделить рабочие нагрузки приложений через несколько рабочих, который помогает при высоких загрузках, поскольку он избегает любой незавершенной блокировки и дает каждому рабочему целый пул потоков для работы от:
(источник: mono-project.com)
Детали о том, как настроить эту установку, доступны здесь:
Глава 6 "Разработки Ядра Linux" Robert Love объясняет это, также, как и эти свободные веб-ресурсы:
В основном задание верхней половины состоит в том, чтобы выполнить, сохранить любое необходимое состояние, принять меры, чтобы нижняя половина была названа, затем возвратилась как можно быстрее. Нижняя половина делает большую часть работы.