物理メモリのサイズに応じた多いなファイル
maxheapを調整
Windows版のRedisの場合、maxheapの値を設定しないと巨大なdatファイルが作成され続け、ディスク容量を圧迫するトラブルが発生します。
トラブルの現象
約6GBのRedisQFork_****.datファイルが蓄積されます。
画像で確認できるように、Redisをインストールして運用を続けていると、ディスクの容量がほとんど無くなっていることに気づくことになります。
巨大なファイル群が保存されているディレクトリを確認したところ、以下の階層であることが分かりました。
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Redis
この階層をエクスプローラで開いたのが下の画像です。
約6GBのファイルが大量に作成され、その結果ディスク容量を圧迫することになりました。
6GBとは物理メモリのサイズ
Windows版Redisを使用している環境の物理メモリが6GBなのですが、標準の設定だとそのサイズ分のファイルがハードディスク内に蓄積されていきます。
このファイルは、Redisのheap領域にマッピングされたファイルということで、Windowsのプロセスによって利用されているということです。詳しくは、MSOpenTechのページで解説されています。
Redis 2.8.4 creates a 8GB file on startup named “RedisQFork_1628.dat”
対処法
Redisのconfでmaxheap値を設定可能。
この値をセットすることで、RedisQFork_****.datのファイルサイズを指定することができる。
maxheap 2000000000
上の例は、maxheapを2GBに設定した例になります。
この値を大きくしすぎるとRedisがうまく起動しなくなります。仮想メモリのサイズを拡張することで、大きな値を設定できる見込みはありますが、小さい値をセットしておいて、ディスク容量を圧迫しないように適宜削除する運用で様子をみることにしました。