2つのWebサーバー間で複製されたGlusterセットアップを実行しようとしました。 file_existsやis_readableのような単純なPHPファイル操作はそれぞれ15〜30ミリ秒かかります。require_onceは1.1秒かかりました。パフォーマンスは非常に劣っていました。
ほとんどのWebセットアップと同様に、書き込みは非常にまれであり、読み取りは非常に一般的です。サーバーは、2xquadコアXeon、8ギグラムおよびRAID1ディスクです。それらの間には専用のギガビットネットワークがあります。 GlusterFSをセットアップするための最速の方法ではありませんが、これほど遅くなることはありません。
状況を改善するための最良の方法は何ですか? GlusterFSチューニングに関するドキュメントが不足しており、ボトルネックがどこにあるかを特定することは非常に困難です。
複製せずに分散してファイルを設定すると速度が向上するが、信頼性が半分になるという言及をいくつか見ました。信頼性を低下させないように(2つのWebサーバーと1つ)改善したいと考えています。この種の作業負荷に対して、キャッシュなどを含む特定の構成はありますか?ローカルハードディスクからできるだけ頻繁にファイルが即座に提供されるように、他のサーバー上のファイルの新しいコピーをチェックするためのキャッシュはありますか?
NFSを介してglusterをマウントしてみると、NFSクライアントによってキャッシュが行われるため、パフォーマンスが大幅に向上します。
または、gluster set volumeオプションを使用して、小さなファイルのプリフェッチを有効にし、キャッシュを増やすこともできます(glusterヘルプを使用してすべてのオプションを表示します)。
書き込みがあまり行われていない場合は、ディレクトリをrsyncする方がシナリオに適しています。