ImageMagick で /tmp/magick-xxx というサイズの大きいファイルができたときの解決方法と policy.xml の設定変更
ImageMagick を利用中のサーバーで /tmp/magick-xxx というような名前のサイズの大きいファイルができたときの解決方法と policy.xml の設定変更についてご紹介します。
ngx_small_light で構築した画像処理サーバーで、ImageMagick を使っているのですが、突然 Disk warning や alert が発生していました。
まず、df コマンドでディスクの空き容量を確認します。97% で残り 290MB でした…。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 7.4G 290M 97% /
devtmpfs 3.6G 20K 3.6G 1% /dev
tmpfs 3.6G 0 3.6G 0% /dev/shm
/tmp ディレクトリ以下に ImageMagick が出力した tmp ファイルがあることを確認します。
$ ls -lh /tmp/
total 2.0G
-rw------- 1 nginx nginx 2.0G Mar 3 06:56 magick-9162ZVLalRUJc16h
問答無用で削除しましょう。
$ sudo rm /tmp/magick-9162ZVLalRUJc16h
ImageMagick の設定値を確認したところ Disk: unlimited でした。
$ identify -list resource
Resource limits:
Width: 214.7MP
Height: 214.7MP
Area: 15.31GP
Memory: 7.1292GiB
Map: 14.258GiB
Disk: unlimited
File: 768
Thread: 4
Throttle: 0
Time: unlimited
/usr/local/etc/ImageMagick-6/policy.xml を以下のように修正しました。
policy.xml を修正後、すぐに設定が反映されていることを identify -list resource コマンドから確認できます。
$ identify -list resource
Resource limits:
Width: 214.7MP
Height: 214.7MP
Area: 15.31GP
Memory: 7.1292GiB
Map: 0B
Disk: 0B
File: 768
Thread: 1
Throttle: 0
Time: unlimited
以上、ImageMagick が出力するファイルサイズの大きい tmp ファイルに悩まされていた現場からお送りしました。