Làm thế nào để Varnish đối phó với việc hết dung lượng?


9

Tôi đang sử dụng Varnish 3.0.3 (bản mới nhất của bài viết này) với ít nhiều cài đặt mặc định, sử dụng cách sau để lưu trữ:

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

Hầu hết các trang có thể được lưu trong bộ nhớ cache sẽ có một TTL rất dài. Trang web tôi đang làm việc rất lớn và có hàng triệu trang, không thể phù hợp với kích thước lưu trữ được liệt kê ở trên (4 GB).

Thiết lập cho các câu hỏi:

  • Giả sử toàn bộ không gian lưu trữ đã đầy và chưa có gì trong bộ đệm hết hạn (TTL của tôi là 2 tuần cho mỗi mục trong bộ đệm).

  • Tôi cho rằng Ban Lurker là vô dụng ở đây, vì nó sẽ chỉ xóa các mục đã hết hạn và không có mục nào hết hạn.

Câu hỏi:

  • Với kịch bản trên, điều gì xảy ra với Varnish khi các yêu cầu bổ sung xuất hiện đối với một thứ chưa có trong bộ đệm? Varnish có thực hiện bất kỳ nỗ lực nào để xóa các mục cũ khỏi bộ đệm, bất kể TTL của các mục đó không? Varnish có sụp đổ không? Treo?

  • Nếu Varnish không xử lý kịch bản, tôi có thể làm gì để cấu hình nó để xử lý tình huống tốt hơn không? (Tôi rõ ràng có thể hạ thấp TTL của các mục trong bộ đệm, nhưng tôi tự hỏi liệu có bất kỳ đề xuất bổ sung nào không).

Tôi đang thấy trong kịch bản này rằng Varnish thực sự ngừng đáp ứng các yêu cầu. Tại thời điểm điều này xảy ra, tôi không hết bộ nhớ hoặc CPU trên hộp.

Cảm ơn.


Theo sát:

Tôi cũng thấy bài này

mà chỉ cho tôi về phía

có vẻ như chỉ ra mọi thứ "chỉ xảy ra" ... nhưng có vẻ như nó thực sự gửi yêu cầu PURGE cho URL, có thể yêu cầu thêm nội dung phù hợp vào VCL của bạn (xem https://www.varnish-cache.org/ docs / 3.0 / guide / purging.html )

Tôi sẽ thử điều đó và sẽ theo dõi nếu điều đó giải quyết được vấn đề.


3
Theo như chúng tôi quan tâm, chúng tôi cũng sử dụng Varnish để lưu trữ một lượng lớn dữ liệu, cụ thể là một kho lưu trữ hình ảnh gồm khoảng 2,8 triệu hình ảnh với một tệp Varnish 30 gig. Varnish điền vào 30 gig và ngay khi những thứ mới được thêm vào bộ đệm, hãy xóa mục nhập bộ đệm "không được truy cập trong thời gian dài nhất". Mỗi mục lưu trữ có một thời gian liên quan đến nó, đó là dấu thời gian truy cập cuối cùng. Các mục với dấu thời gian truy cập cuối cùng thấp nhất đi. (Btw: Tại sao chúng ta lưu trữ hình ảnh trong bộ nhớ cache!? Vì ổ cứng quá chậm để phục vụ chúng và SSD cho mọi thứ có giá quá cao)
sinni800

Câu trả lời:


1

Theo thiết lập của bạn, bạn dường như sử dụng đĩa để lưu trữ bộ đệm véc ni.

Điều này không được khuyến nghị ( cho hiệu suất ) trừ khi bạn có lý do chính đáng (như sinni800).

Hãy thử sử dụng RAM để lưu trữ bộ đệm vecni ("malloc" thay vì "file") và tái tạo vấn đề.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.