小規模なWebサーバーファーム用に新しい共有ストレージインフラストラクチャを計画しています。そのため、多くのNASファイルシステムで多くのテストを実行しました。そうすることによって、私はいくつかの予期しない結果を得て、ここの誰かがこれを確認できるかどうか知りたいです。
要するに、Sambaは小さなファイルの書き込みに関してNFSやGlusterFSよりも非常に高速です。
ここで私がしたこと:私は、小さなファイルの書き込みパフォーマンスを比較するために、多くのファイルで単純な「rsyncベンチマーク」を実行しました。簡単に再現するために、現在のワードプレスtar.gzのコンテンツを使用して、今すぐ再実行しました。
- GlusterFS複製2:32-35秒、高CPU負荷
- GlusterFSシングル:14-16秒、高CPU負荷
- GlusterFS + NFSクライアント:16-19秒、高いCPU負荷
- NFSカーネルサーバー+ NFSクライアント(同期):32-36秒、非常に低いCPU負荷
- NFSカーネルサーバー+ NFSクライアント(非同期):3〜4秒、非常に低いCPU負荷
- Samba:4〜7秒、中程度のCPU負荷
- ダイレクトディスク:<1秒
私は絶対にサンバの第一人者ではありません(私の最後の連絡先はsamba 2.xだったと思います)ので、ここでは何も最適化しませんでした。私が「sync always = yes」を追加した唯一のものは、書き込み後に同期を強制することになっています(ただし、これらの結果は表示されます)。それがなければ、テストは約1〜2秒速くなります。
すべてのテストは同じマシンで実行されるため(NASエクスポートの自己マウント)、ネットワーク遅延は発生しません-純粋なプロトコルパフォーマンス。
サイドノード:ファイルシステムとしてext4とxfsを使用しました。上記の結果はext4のものです。xfsのパフォーマンスは最大40%(短時間)向上しました。マシンはEC2 m1.smallインスタンスです。NASエクスポートはEBSボリューム上にあり、ソース(抽出されたtar)は一時ディスク上にあります。
それでは、Sambaがこれほど高速である理由を説明できますか?
また:同期モードでは、カーネルサーバーでのNFSパフォーマンスは恐ろしい(GlusterFS NFSサーバーよりも優れている)と想定されていますか?これを調整する方法はありますか?
ありがとう、L