# WebP変換キャッシュの保守

WebPへの変換結果は、キャッシュファイルとして保存して変換元の画像が更新されるまで再利用します。

# キャッシュディレクトリのパス

WebP変換キャッシュは、デフォルトではphpwebp/data/webp以下に保存されます。

設定オプションwebp_cache_dir_patを指定することで変更できます。

# キャッシュの定期的な整理

元画像からWebPに変換が行われるたびに、キャッシュディレクトリにはWebP画像ファイルが増加します。

本格運用に向けた追加設定を参考に定期的にキャッシュの整理を実行してディスク容量の圧迫を予防してください。

TIP

小規模なサイトで、画像ファイルの総容量に対しディスク容量が十分にある場合は、定期的な整理は実質的に不要という判断もできます。

キャッシュの整理を実行すると、最終アクセス時刻の古いキャッシュから削除されます。

# キャッシュの最大容量

設定オプションcache_limit_mbcache_cleanup_target_mbにより、キャッシュの最大容量を制御できます。

注意

設定のみでは最大容量の制御はできません。キャッシュの定期的な整理を行っている必要があります。

最大容量の制御の方針により、次のようにパラメータを使い分けます。

# 楽観的なキャッシュ最大容量の制御

ディスクの空き容量に余裕がある場合は、総合的な負荷の軽い楽観的なキャッシュ最大容量の制御をおすすめします。

# cronで毎日午前3時にキャッシュを整理
0 3 * * * /usr/bin/php /var/www/html/phpwebp/job.php cache
<?php
// 設定オプション
$config['cache_limit_mb'] = 5120;

( 毎日午前3時に、5120MB(5GB)を超えたキャッシュファイルを最終アクセス時刻の古い順(再利用される可能性が低い順)に削除します。

キャッシュディレクトリのスキャン(ファイルのリストアップと日付順によるソート)が負荷の低い時間帯の1回で済みますが、キャッシュの新規作成が多い日は5GBの最大容量を大きく超える場合があります。

# 悲観的なキャッシュ最大容量の制御

こまめにキャッシュの使用量をチェックして最大容量を大きく超えることを抑えたい場合は悲観的な最大容量の制御をおすすめします。

# cronで毎時0分にキャッシュを整理
0 * * * * /usr/bin/php /var/www/html/phpwebp/job.php cache
<?php
// 設定オプション
$config['cache_limit_mb'] = 5120;
$config['cache_cleanup_target_mb'] = 4096;

毎時0分にキャッシュディレクトリをスキャン(ファイルのリストアップと日付順によるソート)を行い、5GBを超えていた場合は4GBを下回るまでキャッシュファイルを最終アクセス時刻の古い順に削除します。

頻繁にディレクトリのスキャンが行われますが、5GBを大きく超える事態は最大限予防できます。