Bagaimana cara Varnish menangani kehabisan penyimpanan?

9

Saya menggunakan Varnish 3.0.3 (terbaru dari tulisan ini) dengan kurang lebih menginstal default, menggunakan yang berikut ini untuk penyimpanan:

# # 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}"
#

Sebagian besar halaman yang bisa di-cache akan memiliki TTL yang sangat panjang. Situs tempat saya bekerja sangat besar, dan memiliki jutaan halaman, yang tidak mungkin masuk ke dalam ukuran penyimpanan yang tercantum di atas (4 GB).

Atur untuk pertanyaan:

  • Mari kita asumsikan seluruh ruang penyimpanan penuh, dan tidak ada dalam cache yang kedaluwarsa (TTL saya adalah 2 minggu untuk setiap item dalam cache).

  • Saya berasumsi Ban Lurker tidak berguna di sini, karena hanya akan menghapus item yang kedaluwarsa, dan tidak ada yang kedaluwarsa.

Pertanyaan:

  • Dengan skenario di atas, apa yang terjadi pada Varnish ketika permintaan tambahan datang untuk sesuatu yang belum ada dalam cache? Apakah Varnish berupaya menghapus item yang lebih lama dari cache, terlepas dari TTL item itu? Apakah Varnish crash? Menggantung?

  • Jika Varnish tidak menangani skenario, adakah yang bisa saya lakukan untuk mengkonfigurasinya agar menangani skenario dengan lebih baik? (Saya jelas bisa menurunkan TTL item dalam cache, tapi saya ingin tahu apakah ada saran tambahan).

Saya melihat dalam skenario ini bahwa Varnish yang efektif berhenti merespons permintaan. Pada saat ini terjadi, saya tidak kehabisan memori atau CPU di kotak.

Terima kasih.


Mengikuti:

Saya juga melihat posting ini

yang menunjuk saya ke arah

yang tampaknya menunjukkan semuanya "terjadi begitu saja" ... tetapi sepertinya itu benar-benar mengirimkan permintaan PURGE untuk URL, yang mungkin memerlukan penambahan hal-hal yang sesuai ke VCL Anda (lihat https://www.varnish-cache.org/ docs / 3.0 / tutorial / purging.html )

Saya akan mencobanya dan akan menindaklanjuti jika itu menyelesaikan masalah.

pengguna174548
sumber
3
Sejauh yang kami ketahui, kami menggunakan Varnish untuk menyimpan data dalam jumlah besar juga, khususnya, repositori gambar sekitar 2,8 juta gambar dengan seperti file Varnish 30 manggung. Isi pernis, isi hingga 30 pertunjukan dan segera setelah hal-hal baru ditambahkan ke cache, hapus entri cache yang "tidak diakses untuk waktu yang lama". Setiap entri cache memiliki waktu yang terkait dengannya, itu cap waktu akses terakhir. Entri dengan cap waktu akses terakhir terakhir masuk. (Btw: Mengapa kita
men-

Jawaban:

1

Menurut pengaturan Anda, Anda tampaknya menggunakan disk untuk menyimpan tembolok pernis.

Ini tidak disarankan ( untuk kinerja ) kecuali Anda memiliki alasan yang bagus (seperti sinni800).

Coba gunakan RAM untuk menyimpan varnish cache ("malloc", bukan "file") dan mereproduksi masalah.


sumber