web-dev-qa-db-ja.com

NASパフォーマンス:NFS vs Samba vs GlusterFS

小規模なWebサーバーファーム用に新しい共有ストレージインフラストラクチャを計画しています。したがって、私は多くのNAS=ファイルシステムを使用して多くのテストを実行しました。そうすることにより、予期しない結果が得られました。ここで誰かがこれを確認できるかどうか知りたいです。

つまり、Sambaは、小さなファイルの書き込みに対してNFSおよびGlusterFSよりも非常に高速です。

ここで私がしたこと:小さなファイルの書き込みパフォーマンスを比較するために、多くのファイルを使用して単純な「rsyncベンチマーク」を実行しました。簡単に再現するために、現在のwordpress tar.gzの内容を使用して、今すぐ再実行しました。

  • GlusterFSの複製2:2-35秒、高いCPU負荷
  • GlusterFSシングル:14-16秒、高CPU負荷
  • GlusterFS + NFSクライアント:16-19秒、高いCPU負荷
  • NFSカーネルサーバー+ NFSクライアント(同期):2-36秒、非常に低いCPU負荷
  • NFSカーネルサーバー+ NFSクライアント(非同期):-4秒、非常に低いCPU負荷
  • Samba:4-7秒、中程度のCPU負荷
  • ダイレクトディスク:<1

私は絶対にSambaの第一人者ではありません(私の最後の連絡先はSamba 2.xだったと思います)。そのため、ここでは何も最適化していません-すぐに使える構成(debian/squeezeパッケージ)だけです。私が「sync always = yes」を追加した唯一のものは、書き込み後に同期を強制することになっています(しかし、それらの結果を確認しています...)。それがなければ、テストは約1〜2秒速くなります。

同じマシンで実行されるすべてのテスト(セルフマウントされているNAS export)なので、ネットワークの遅延なし-純粋なプロトコルパフォーマンス。

サイドノード:ファイルシステムとして、ext4とxfsを使用しました。上記の結果はext4のものです。 xfsは最大40%(時間の短縮)でパフォーマンスが向上しました。マシンはEC2 m1.smallインスタンスです。 NASエクスポートはEBSボリューム上にあり、ソース(抽出されたtar)は一時ディスク上にあります。

では、Sambaが非常に高速である理由を誰かに説明してもらえますか?

また:カーネルサーバーでのNFSパフォーマンスは、同期モードではそれほど恐ろしい(GlusterFS NFSサーバーよりもパフォーマンスが高い)はずです。これを調整する方法はありますか?

ありがとう、L

31
Linus Ardberk

私たちはSambaを多用しており、ほとんどすべての場合において、NFSよりも通常は高速であることが常にわかります(十分に比較していないため、私はほとんど言っていません)。

いくつかのパケットキャプチャの後に見たことから、SMBプロトコルはおしゃべりになる可能性がありますが、Sambaの最新バージョンは1つのパケットで複数のコマンドを発行し、複数のコマンドを発行できるSMB2を実装しています最後のコマンドからのACKが戻るのを待っている間にコマンドを実行します。これにより、少なくとも私の経験では速度が大幅に向上しました。速度の違いを初めて目にしたときもショックを受けました- ネットワーク速度のトラブルシューティング-The Age Old Inquiry

5
Univ426