2010-12-20 33 views
98

Tôi đang cố gắng tăng tốc điểm chuẩn (kiến trúc web 3 tầng) và tôi có một số câu hỏi chung liên quan đến Memcache (d) và Varnish.Memcache (d) so với véc ni để tăng tốc kiến ​​trúc web 3 tầng

  • Sự khác biệt là gì?
    Dường như với tôi rằng Varnish ở phía sau máy chủ web, lưu vào bộ nhớ cache các trang web và không yêu cầu thay đổi mã, chỉ cần cấu hình.
    Ở phía bên kia, Memcached là hệ thống bộ nhớ đệm đa mục đích và chủ yếu được sử dụng cho kết quả bộ nhớ cache từ cơ sở dữ liệu và yêu cầu thay đổi theo phương pháp get (tra cứu bộ nhớ cache đầu tiên).

  • Tôi có thể sử dụng cả hai? Varnish trong máy chủ web phía trước và Memcached cho bộ đệm ẩn cơ sở dữ liệu?

  • Tùy chọn tốt hơn là gì?

    (kịch bản 1 - chủ yếu là viết,
    kịch bản 2 - chủ yếu là đọc,
    kịch bản 3 - đọc và ghi tương tự)

Trả lời

249
  • Varnish là ở phía trước của máy chủ web; nó hoạt động như một proxy http ngược lại lưu trữ.
  • Bạn có thể sử dụng cả hai.
  • Chủ yếu là viết - Varnish sẽ cần phải có các trang bị ảnh hưởng bị xóa. Điều này sẽ dẫn đến một lợi ích trên không và ít cho các trang đã sửa đổi.
  • Chủ yếu là đọc - Varnish có lẽ sẽ bao gồm hầu hết trong số đó.
  • Tương tự đọc & ghi - Varnish sẽ phục vụ nhiều trang cho bạn, Memcache sẽ cung cấp thông tin cho các trang có hỗn hợp dữ liệu đã biết và mới cho phép bạn tạo trang nhanh hơn.

Ví dụ có thể áp dụng cho stackoverflow.com: thêm nhận xét này đã vô hiệu hóa bộ đệm trang, vì vậy trang này sẽ bị xóa khỏi Varnish (và trang tiểu sử của tôi, có thể không đáng để lưu vào bộ nhớ đệm để bắt đầu với. Nhớ để làm mất hiệu lực tất cả các trang bị ảnh hưởng có thể là một chút của một vấn đề). Tất cả các bình luận, tuy nhiên, vẫn còn trong Memcache, do đó, cơ sở dữ liệu chỉ phải viết bình luận này. Không có gì khác cần phải được thực hiện bởi cơ sở dữ liệu để tạo ra trang. Tất cả các nhận xét đều được Memcache kéo và trang được thu thập lại cho đến khi ai đó ảnh hưởng đến nó một lần nữa (có lẽ bằng cách bỏ phiếu cho câu trả lời của tôi). Một lần nữa, cơ sở dữ liệu viết phiếu bầu, tất cả các dữ liệu khác được lấy từ Memcache, và cuộc sống nhanh chóng.

Memcache lưu DB của bạn khỏi thực hiện nhiều công việc đọc, Varnish lưu máy chủ web động của bạn khỏi tải CPU bằng cách làm cho bạn tạo các trang ít thường xuyên hơn (và làm nhẹ tải db một chút nếu không dùng cho Memcache).

+8

+1 câu trả lời xuất sắc. – AlienWebguy

+0

Bản đồ đất, cảm ơn bạn! – Silopolis

+3

điều này: "(có lẽ bằng cách bỏ phiếu cho câu trả lời của tôi)" khiến tôi bỏ phiếu cho câu trả lời của bạn – Cesc

24

Trải nghiệm của tôi đến từ việc sử dụng Varnish với Drupal. Theo cách đơn giản nhất có thể, dưới đây là cách tôi trả lời:

Nói chung, công việc Varnish cho lưu lượng truy cập không được xác thực (qua cookie) và ghi nhớ sẽ lưu lượng truy cập được xác thực.

Vì vậy, hãy sử dụng cả hai.

+4

Bạn đóng đinh nó, bằng cách tôi nghĩ rằng Varnish hoạt động tốt hơn trên bộ nhớ đệm người dùng ẩn danh ... –

Các vấn đề liên quan