Sử dụng Memcache hiệu quả với Drupal 7 Multisite


12

Tôi đang đặt tỷ lệ lần truy cập là 55% trên phiên bản memcache của chúng tôi (v1.4.4) và tôi tự hỏi có thể làm gì để cải thiện tỷ lệ trúng. Chúng tôi đang ở trong một thiết lập nhiều trang (hơn 30 trang web), với hai máy chủ web cân bằng tải; có một ví dụ của memcached trên mỗi máy chủ web.

Trong settings.php, tôi có:

$conf['memcache_servers'] = array(
         '11.22.33.44:11211' => 'default',
         '11.22.33.45:11211' => 'default',
      );
$conf['memcache_bins'] = array('cache' => 'default');
$conf['memcache_key_prefix'] = $_SERVER['SERVER_NAME'];

Tôi đang xem xét việc sử dụng các thùng để cải thiện tỷ lệ trúng, nhưng đã gặp một số gợi ý rằng mô-đun memcache mới nhất đã làm điều này rồi, nhưng tôi không chắc vì các hướng dẫn với mô-đun chứa các hướng dẫn về cách thiết lập thùng.

Nếu các thùng được chuyển đi, làm thế nào để bạn xác định những gì (bảng?) Cần có thùng riêng? Đây là các bảng bộ đệm mà tôi có trong các trang web của mình:

cache
cache_admin_menu (empty)
cache_block (empty)
cache_bootstrap
cache_field
cache_filter (empty)
cache_form (empty)
cache_image (empty)
cache_media_xml (empty)
cache_menu
cache_page (empty)
cache_path (empty)
cache_token (empty)
cache_update (empty)
cache_views
cache_views_data (empty)
ctools_css_cache (empty)
ctools_object_cache (empty)

Ngoài thùng, tôi có thể làm gì khác để cải thiện việc sử dụng memcached?

Cảm ơn nhiều!


30 trang web? Bạn có thể vui lòng chia sẻ chi tiết về Môi trường, mem mem PHP và MySql max_allowed_packet, cũng đang có kế hoạch khởi chạy nhiều trang web phụ, đã có 4 kế hoạch để có 10, nhưng không chắc chắn liệu drupal có thể xử lý được không.
GoodSp33d

@Kantu - Tôi muốn giữ chủ đề này về memcached với Drupal. Nếu bạn đăng một câu hỏi mới, tôi sẽ vui lòng cân nhắc ... hoặc xem các cuộc thảo luận tương tự ở đây hoặc trên drupal.org.
KM.

Tôi chỉ muốn biết cấu hình máy chủ của bạn, vì việc chạy 30 trang web phụ là rất hiếm
GoodSp33d

Câu trả lời:


13

Sau nhiều nghiên cứu, đây là những gì đã giúp tỷ lệ trúng và sử dụng memcached của chúng tôi:

  • Nâng cấp memcached lên 1.4.10 (phiên bản mới nhất có cải tiến hiệu suất)
  • Định dạng nhị phân được bật và nén
  • Sử dụng mặc định cho thùng

Confcached conf của chúng tôi trong settings.php bây giờ trông giống như thế này:

$conf['memcache_bins'] = array('cache' => 'default');
$conf['memcache_options'] = array(
  Memcached::OPT_COMPRESSION => TRUE,
  Memcached::OPT_BINARY_PROTOCOL => TRUE,
  );
$conf['memcache_persistent'] = TRUE;
$conf['memcache_key_prefix'] = $_SERVER['SERVER_NAME'];

Lợi nhuận lớn nhất

Lợi ích lớn nhất đối với chúng tôi là cho phép nén, mặc dù các tài liệu nói rằng nó làm tăng chu kỳ CPU. Chúng tôi có 4 CPU được phân bổ cho VM của chúng tôi và không nhận thấy sự khác biệt. Thời gian cho các cuộc gọi memcached đã tăng từ ~ 1250ms đến ~ 150ms (thu được từ NewRelic) để tạo một phần nội dung (Điều tùy chỉnh trong trường hợp của chúng tôi).

Tỷ lệ trúng

Tỷ lệ trúng của chúng tôi hiện là ~ 70% - tốt hơn nhiều so với 55% trước đó, nhưng không làm im lặng 90% + mà một số người đã báo cáo ... nhiệm vụ vẫn tiếp tục (-:

Hy vọng điều này sẽ giúp người khác. Nếu bạn gặp các cải tiến khác hoặc có chỉnh sửa / đề xuất, vui lòng gửi bình luận hoặc câu trả lời.

Cập nhật - Phiên bản mô-đun memcahe

Chúng tôi đã chuyển từ phiên bản 1.0-beta4 sang 1.0 và tỷ lệ trúng của chúng tôi hiện là 87%. Tôi đã phải khởi động lại memcached vì tỷ lệ trúng không vượt quá 70%. Hiện tại chúng tôi có 64 MB được phân bổ cho memcached, vì vậy đây không phải là vấn đề lớn với chúng tôi.


1
Tôi sẽ đặt tiền tố khóa thành một cái gì đó được mã hóa cứng và không phụ thuộc vào tên máy chủ đã cho. Ví dụ: nếu ai đó truy cập trang web của bạn có hoặc không có www. (mà bạn có thể chuyển hướng hoặc một cái gì đó, chỉ là một ví dụ), bạn sẽ kết thúc bằng một tiền tố khóa khác cho bộ đệm. Tuy nhiên, bạn sẽ phải thay đổi settings.php cho từng trang web.
Berdir

1
Ngoài ra, tỷ lệ trúng phụ thuộc rất nhiều vào trang web của bạn .. nếu bạn có nhiều lần xóa bộ nhớ cache rõ ràng hoặc nếu memcache đang chạy đầy đủ và phải vứt bỏ mọi thứ thường xuyên, thì tốc độ nhấn của bạn rõ ràng sẽ giảm.
Berdir

Cảm ơn bạn đã cân nhắc trong @Berdir. Tôi đã kiểm tra các tấm và cho đến nay tên máy chủ không phải là một vấn đề, nhưng tôi có thể thấy nó có thể ở đâu. Chứng cứ thấp ~ 170 và có 25% (~ 17MB) phòng còn lại trong memcached. Có cách nào để theo dõi nguyên nhân của việc bỏ lỡ bộ nhớ cache 30% không? Xóa bộ nhớ cache hoặc cái gì khác ...?
KM.

Không dễ dàng. Vào thời điểm bộ đệm bị lỗi, bạn không thể tạo lại những gì đã xảy ra với nó. Những gì bạn có thể thử là ghi nhật ký các cuộc gọi xóa bộ nhớ cache bao gồm một backtrace để xem chúng đến từ đâu nhưng không chắc điều đó có giúp ích gì nhiều không.
Berdir
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.