6

Linux (Ubuntu) と Windows (Server2008) でシャードされた MongoDB のパフォーマンスをテストするプログラムを作成しました。大量のレコードを挿入すると、Windows のディスクのアクティブ時間が非常に長くなり (100%)、パフォーマンスが非常に悪くなります。しかし、Ubuntu では、ディスクの util% は 60% ~ 70% であり、パフォーマンスは Windows よりも優れています。Linux で MongoDB のパフォーマンスが優れていると言えますか?

4

2 に答える 2

13

まず、Windows 2008 サーバーで利用可能なファイルシステムはすべて非常に非効率的です。XFS や ext4 と比較すると、Windows と Linux の両方のファイル システムが最適化されている場合、最大 40% 遅くなります。

2 つ目: レイテンシが問題になる可能性があります。現在の Linux システムのネットワーク スタックは、単純に W2008 サーバーよりも高速です。

3 つ目: ボックスでファイアウォールを実行している場合、リモート アクセスでは遅延がさらに大きな問題になります。Linuxiptablesは十分に高速で効率的であるため、ファイアウォール アプライアンスの大部分は Linux に基づいていますが、Windows で使用できるファイアウォールは、さまざまな理由からそうではありません。

さらに、Windows は Linux ほど RAM を効率的に使用できません。MongoDB は、たとえば RAM にインデックス ファイル (のコピー) を保存するために、できるだけ多くの RAM を (必要なポイントまで) 使用します。Windows は、Linux マシンよりもはるかに多くの RAM を使用します。そのため、インデックス ファイルは RAM からではなくディスクから読み取られる可能性があり、桁違いに遅くなります。

結論: Windows システムで実稼働の mongoDB を実行するのは、本当に悪い考えです。

編集

コメントのリクエストに従って:

Principled Technologies による 3 つのレポートを参照したことにお気づきかもしれません。私は彼らとはまったく関係がありませんが、業界標準のベンチマークを使用し、問題のタスクに対して両方の OS を明示的に最適化し、すぐに使用できる OS を使用することで、RHEL 6 と Windows Server 2012 を比較することで、彼らは良い仕事をしました。

この比較は、すべての GNU/Linux ディストリビューションが Windows Server 2012 よりも高速であることを証明しているわけではないと主張する人もいるかもしれません。私たちが話している機能は、Linux カーネルによって提供されるものであり、通常はいじられません。すべての主要なディストリビューションから結果が期待できます。

Linux の極端なパフォーマンスの利点の一部 (Linux の TCP スタックは、大きなメッセージ サイズでは Windows Server のほぼ 4 倍も高速であり、これはデータベース アプリケーションの場合によく見られます) を利用して、私の主張を更新します。 Windows システムで実稼働の MongoDB を実行するのは非常に悪い考えです。

于 2014-06-12T15:12:05.930 に答える