私は開発サーバーを設定しており、Monoを使用してASP.NETページを提供するように設定したいと思います。 CherokeeとMonoを使用する予定です(http://www.cherokee-project.com/doc/cookbook_mono.html)UnixベースのスタックとWindowsベースのスタックを比較するパフォーマンステストを行った人がいるかどうか疑問に思います。
答え1
Mono/Linux と .NET/Windows ワークロードをテストする際に重要なのは、ランタイム環境だけではないことを覚えておく必要があります。
Linuxは、ある点ではWindowsよりも優れています(ほとんどのIOおよびネットワーク操作は、同様のCプログラムでより速くなる傾向があります)。同時に、.NETには高度なガベージコレクタと高度なJITコンパイラがあります。
クラスライブラリの場合、実際に使用するコードパスによって異なります。 JacksonHが前の記事で述べたように、ある実装では最適化されていますが、他の実装では最適化されていないコードパスにアクセスできますが、その逆も同様です。
ASP.NETワークロードでは、デフォルト設定がすべての着信要求を単一の「ワーカー」プロセスにルーティングすることに注意してください。 mod_monoとCherokeeは同様のアプローチを使用します。
(源泉:mono-project.com)
少なくともApacheは、アプリケーションワークロードを複数のワーカースレッドに分散させるメカニズムをサポートしています。これは、プロセス内のロックを防ぎ、作業できる完全なスレッドプールを提供するため、負荷が高い場合に便利です。
(源泉:mono-project.com)
この設定を構成する方法の詳細については、こちらをご覧ください。
答え2
これはやや答えがありません。しかし、ここには実際の答えはありません。残念ながら、これはアプリケーションによって大きく異なります。あなたのアプリケーションはMonoがうまくいくことを経験するかもしれません。 MonoがIISよりもX倍遅いか高速ではありません。
私が提案するのは、2つの異なるEC2インスタンス(WindowsとMonoの1つ)にアプリケーションをデプロイしてそこでテストすることです。 Monoインスタンスで深刻な問題が見つかった場合は、報告してください。問題を改善するために最善を尽くします。
しかし、個人的な経験では、Mono aspxが本当にうまくいくと言うことができます。