Nginxのキャッシュをtmpfsに設定するチップスです。
もちろん他のキャッシュ用途でも使えます。様々なキャッシュファイルをtmpfsファイルシステムに置くことで高速で読み込みさせることが出来ます。tmpfsのようなRAMディスクは物理メモリをディスクのように扱うことが出来るから高速です。つまり、物理メモリ自体にファイルを置くと、ディスクI/Oを全く発生させずに処理が可能になります!
tmpfsファイルシステムの特長
ファイルを置いた瞬間に初めてメモリを動的に確保するので無駄なく効率よくメモリを使えるということ。ここが容量固定のramfsと異なります。また、どれだけ割り当てるかはケースバイケースですが、想定する最大キャッシュと物理メモリ、他サービスが使用する全体のメモリを考えて設定して下さい。
対象のディレクトリをtmpfsに設定する
/var/run/nginx-fastcgi-cacheディレクトリをtmpfsで起動時からマウントするように設定します。
1 2 3 4 |
# vi /etc/fstab #Nginxキャッシュ用tmpfs tmpfs /var/run/nginx-fastcgi-cache tmpfs defaults,noatime,mode=1777,size=1024m 0 0 |
noatimeオプション
noatimeが非常に効くのは以下の2つのケース。
- findやメーラーなど、山ほどファイルを開きまくるケース
- ベンチマークソフトなど、あんまり大きくないバッファをひたすらreadしまくるケース
noatimeオプションを設定すると、inodeのアクセス時刻を更新しなくなるので処理速度があがります。
設定を反映させます
再起動させます。
1 |
# reboot now |
マウントされているか確認しましょう。
1 2 3 4 5 6 7 8 |
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 47G 13G 33G 28% / tmpfs 3.9G 0 3.9G 0% /dev/shm /dev/vda1 477M 104M 348M 23% /boot tmpfs 1.0G 712K 1.0G 1% /var/run/nginx-fastcgi-cache ←マウントされています。 |
簡単に実装出来ますね。
お疲れ様です。