Nginx キャッシュをtmpfs RAMディスクに持たせる

tmpfs メモリ

Nginxのキャッシュをtmpfsに設定するチップスです。

もちろん他のキャッシュ用途でも使えます。様々なキャッシュファイルをtmpfsファイルシステムに置くことで高速で読み込みさせることが出来ます。tmpfsのようなRAMディスクは物理メモリをディスクのように扱うことが出来るから高速です。つまり、物理メモリ自体にファイルを置くと、ディスクI/Oを全く発生させずに処理が可能になります!

tmpfsファイルシステムの特長

ファイルを置いた瞬間に初めてメモリを動的に確保するので無駄なく効率よくメモリを使えるということ。ここが容量固定のramfsと異なります。また、どれだけ割り当てるかはケースバイケースですが、想定する最大キャッシュと物理メモリ、他サービスが使用する全体のメモリを考えて設定して下さい。

対象のディレクトリをtmpfsに設定する

/var/run/nginx-fastcgi-cacheディレクトリをtmpfsで起動時からマウントするように設定します。

noatimeオプション

noatimeが非常に効くのは以下の2つのケース。

  1. findやメーラーなど、山ほどファイルを開きまくるケース
  2. ベンチマークソフトなど、あんまり大きくないバッファをひたすらreadしまくるケース

@see http://mkosaki.blog46.fc2.com/blog-entry-539.html

noatimeオプションを設定すると、inodeのアクセス時刻を更新しなくなるので処理速度があがります。

設定を反映させます

再起動させます。

マウントされているか確認しましょう。

簡単に実装出来ますね。

お疲れ様です。

優 ( エンジニア )

この記事を書いた人:優 ( エンジニア )

システムガーディアン爆弾処理班。アクセス負荷対策やNginxへの移行案件が多いこの頃。IBM SoftLayerやAWSなどクラウド案件も多くなってきました。

この記事に関してのお問い合わせ
御連絡・ご返信は原則2営業日以内を予定しております。
お急ぎの場合は、お手数ですが下記電話でもご対応をしております。

システムガーディアン株式会社
受付時間:平日9:00~18:00
受付担当:坪郷(つぼごう)・加藤
電話:03-6758-9166