Varnishはストレージの不足にどのように対処しますか?


9

私は多かれ少なかれデフォルトのインストールでVarnish 3.0.3(この記事の執筆時点で最新)を使用しており、次のストレージを使用しています。

# # Cache file location
VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin
#
# # Cache file size: in bytes, optionally using k / M / G / T suffix,
# # or in percentage of available disk space using the % suffix.
VARNISH_STORAGE_SIZE=4000M
#
# # Backend storage specification
VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}"
#

キャッシュできるページのほとんどは、TTLが非常に長くなります。私が作業しているサイトは巨大で、数百万のページがあり、上記のストレージサイズ(4 GB)に収まらない可能性があります。

質問のための準備:

  • ストレージスペース全体が満杯で、キャッシュ内の期限がまだ切れていないとします(TTLはキャッシュ内のすべてのアイテムで2週間です)。

  • Ban Lurkerは、期限切れのアイテムのみを削除し、期限切れのアイテムは削除しないため、ここでは役に立たないと想定しています。

質問:

  • 上記のシナリオで、まだキャッシュにないものに対して追加のリクエストがあった場合、Varnishはどうなりますか?Varnishは、それらのアイテムのTTLに関係なく、キャッシュから古いアイテムを削除しようとしますか?Varnishはクラッシュしますか?ハング?

  • Varnishがシナリオを処理しない場合、シナリオをより適切に処理するように構成する方法はありますか?(キャッシュ内のアイテムのTTLを明らかに下げることはできますが、追加の提案があるかどうか疑問に思っています)。

このシナリオでは、ワニスがリクエストへの応答を効果的に停止することがわかりました。これが発生した時点で、私はボックスのメモリやCPUが不足していません。

ありがとう。


ファローアップ:

私もこの投稿を見ました

それは私を

これはすべてが「発生する」ことを示しているようです...しかし、実際にはURLのPURGEリクエストを送信しているようです。VCLに適切なものを追加する必要がある場合があります(https://www.varnish-cache.org/を参照) docs / 3.0 / tutorial / purging.html

私はそれを試すつもりです、そしてそれが問題を解決するならばフォローアップします。


3
私たちに関する限り、私たちは大量のデータのキャッシュにもVarnishを使用しています。具体的には、30ギガのVarnishファイルのような、約280万のイメージのイメージリポジトリです。ワニス塗りは30ギガを埋め、新しいものがキャッシュに追加されるとすぐに、「最も長い間アクセスされなかった」キャッシュエントリを削除します。すべてのキャッシュエントリには時間が関連付けられています。これは、最後のアクセスのタイムスタンプです。最終アクセスのタイムスタンプが最も低いエントリが表示されます。(ところで:画像をキャッシュするのはなぜですか?HDDが画像を処理するには遅すぎて、SSDはすべてのコストがかかりすぎるためです)
sinni800

回答:


1

設定によると、ワニスキャッシュの保存にディスクを使用しているようです。

(sinni800のような)正当な理由がない限りこれは(パフォーマンスのために)推奨さません。

ワニスキャッシュの保存にRAMを使用して(「ファイル」ではなく「malloc」)、問題を再現してみてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.