私はmongoDBレプリカセットをセットアップしています。最初に行うべきことの1つは、ファイルシステムで一時的にオフにすることです。これを少し調べた後、私はこれを行うことに反対していませんが、何を使うのですか?私はインターウェブを検索しましたが、「このアプリケーションまたはこのプロセスは時間を使用し、それをオフにするとあなたは愚かになるでしょう」という種類の警告はほとんど見つかりませんでした。
それで、atimeは何を使用し、オフにすると何が壊れるのでしょうか?
電子メールクライアントであるmutt
は、ファイルアクセス時間を使用して、mbox形式のメールボックスに到着する新着メールを監視します。どうやら この問題は深刻ではなく、簡単に回避できます 。
それ以外では、noatime
で問題が発生する例を見つけるのは困難です。すべてのファイルシステムでnoatime
を使用して多数のLinuxサーバーを実行していますが、noatime
に起因する問題が発生したことはありません。
一般的にnoatime
を使用することに関心がある場合は、mongoDBに専用のファイルシステムを割り当て、そのファイルシステムのみをnoatime
でマウントすることができます。
[〜#〜]編集[〜#〜]
Linuxの開発者(Linus Torvalds、Ingo Molnar、Alan Coxなど)間のatime
に関する議論を引用している kerneltrap.orgの興味深いブログ を見つけました。 Ingoの2回目のメールで、彼は次のように述べています。
...私はext3について実際の不満はありません-/ etc/fstabの "noatime、nodiratime"は必須であるという義務的な資格があります。これにより、特に多くのファイルにアクセスする場合に、目に見えてスピードアップします。すべてのLinuxデスクトップおよびサーバーが、一定のatime更新のために顕著なIOパフォーマンスの低下により損傷を受ける一方で、tmpwatch [これは、大きな問題ではないため、ctimeを使用してください]と一部のバックアップツール(わかりました、メールで通知してください)数万のアプリケーションのうち、ほとんどのファイルワークロードでは、Windowsに20%〜30%のパフォーマンスエッジを提供します。 、ほとんど何もない。
一時ファイルクリーナーなど、ファイルの使用状況をポーリングするツールが使用します。一部のファイルシステムとOSでは、代わりにrelatime
を使用してこれを回避できます。これは、最後に更新されてから一定の時間が経過した後にのみatimeを更新します。
MongoDBレプリカセット用に別のマウントポイントを作成することもできます。その後、他のプログラムに影響を与えることなく、そのマウントポイントにのみnoatimeパラメータを設定できます。
ここでのフォローアップとして、relatime
は、2009年3月頃にリリースされた2.6.30のカーネルでデフォルトになりました。つまり、noatime設定から得られる利点は、最新のカーネルでは少なくなります。
MongoDBのパフォーマンスはまだ向上しているので、これは推奨事項ですが、合理的に現在のカーネルバージョンを使用している限り、以前ほど重要ではありません。
また、ここで説明したソフトウェアに加えて、バックアップツールで使用されることもありました。
@Steven Mondayのポイントを強調したいのですが、別のファイルシステムを使用してください。
データベースの場合、これは常に適切なオプションであり、追加のマウントポイントを管理するというわずかな不便さで、データベースのパフォーマンスを柔軟に調整できます。通常、バックアップ用にデータベースのスナップショットを作成するためのオプションも増えます(マスターの代わりにレプリカをスナップショットおよびバックアップできる場合はさらに便利です)。