Có thể chạy véc ni với cả bộ nhớ và lưu trữ đĩa?


8

Tôi quan tâm đến việc tối đa hóa lượt truy cập bộ nhớ cache và hiệu quả cho một trang web thay đổi chậm. Máy chủ ảo không có dung lượng RAM lớn, nhưng tôi muốn sử dụng những gì có sẵn cho véc ni, nhưng quay lại bộ nhớ cache của đĩa nếu không đủ bộ nhớ.

Có thể làm điều này với một ví dụ duy nhất của véc ni? Các tài liệu mô tả lưu trữ "tập tin" và "malloc" là các tùy chọn riêng biệt.

Câu trả lời:


9

Sử dụng mallocphương pháp. Nó sẽ cố gắng đưa mọi thứ vào RAM và kernel sẽ trao đổi nó nếu cần. Bằng cách này, bạn đang sử dụng bộ nhớ và đĩa cùng nhau.

Đồng thời filethực hiện tốt hơn nhiều so với mallockhi bạn bắt đầu nhấn đĩa. Để biết thêm thông tin, xem:


Cảm ơn, điều này làm việc. Tôi nghĩ rằng tôi sẽ chỉ sử dụng phương thức malloc với RAM có sẵn và dựa vào máy chủ để thực hiện lưu trữ đĩa (ví dụ: apache mod_disk_cache).
dùng67641

1
Có cách nào để cắm Varnish vào các phụ trợ dựa trên bộ nhớ khác không?
CMCDragonkai

1
Lưu ý rằng bạn thực sự có thể làm ngược lại: chỉ sử dụng filephụ trợ và dựa vào bộ nhớ đệm đĩa của Linux sử dụng tất cả bộ nhớ có sẵn theo mặc định. Có, bạn luôn ghi vào đĩa (có thể là vấn đề nếu bạn không sử dụng SSD), nhưng khi đọc nhiều lần cùng một tệp, bạn sẽ chỉ đọc được rất nhiều từ bộ nhớ.
Benjamin

7

Bạn cần đặt tên lưu trữ tương ứng như sau và trong vcl bạn chỉ định lưu trữ phụ trợ nào bạn muốn sử dụng beresp.storage = storage_name. .

Varnish 3. * tùy chọn quy trình

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s foo=malloc,512m \
             -s bar=file,/var/lib/varnish/varnish_storage.bin,512m"

vcl v3

sub vcl_fetch {
    if (req.url ~ "html") {
       set beresp.storage = "foo";
       set beresp.http.x-storage = "foo";
    } else {
       set beresp.storage = "bar";
       set beresp.http.x-storage = "bar";
    }
    return (deliver);
}

Đối với Varnish v4, bạn có thể làm theo hướng dẫn của bài đăng trên blog chính thức https://info.varnish-software.com/blog/partitioning-your-varnish-cache


Điều if (req.url ~ "html")kiện làm gì? Tôi nghĩ rằng OP muốn sử dụng cả hai phụ trợ lưu trữ theo cách hiệu quả nhất cho tất cả các yêu cầu.
kontextify
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.