Drupal 7 Multisite에서 효과적으로 Memcache 사용


12

memcache 인스턴스 (v1.4.4)에서 적중률을 55 %로 설정하고 있으며 적중률을 개선하기 위해 수행 할 수있는 작업이 궁금합니다. 우리는 2 개의로드 밸런스 웹 서버를 갖춘 다중 사이트 설정 (30 개 이상의 사이트)에 있습니다. 각 웹 서버에는 memcached 인스턴스가 있습니다.

에서 settings.php, 나는 :

$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'];

히트 비율을 높이기 위해 bin을 사용하는 방법을 찾고 있지만 최신 memcache 모듈이 이미이 작업을 수행한다는 몇 가지 제안이 있지만 모듈에 대한 지침에 bin 설정 지침이 포함되어 있는지 확실하지 않습니다.

쓰레기통이 나아갈 경우, 자신의 쓰레기통이 필요한 것이 무엇인지 어떻게 판단합니까? 다음은 내 사이트에있는 캐시 테이블입니다.

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)

저장소 외에도 memcached 사용을 개선하기 위해 무엇을 할 수 있습니까?

많은 감사합니다!


30 + 사이트? 환경 세부 사항, PHP mem 및 MySql max_allowed_packet을 공유하고 많은 하위 사이트를 시작할 계획이며 이미 10 개의 계획을 가지고 있지만 drupal이 처리 할 수 ​​있는지 확실하지 않았습니다.
GoodSp33d

@Kantu-Drupal과 함께 memcached에 대한이 스레드를 유지하고 싶습니다. 새로운 질문을 게시하면 여기에서 또는 drupal.org에서 비슷한 토론을 확인하게되어 기쁩니다.
KM.

30 개의 하위 사이트를 실행하는 것은 매우 드물기 때문에 서버 구성을 알고 싶었습니다
GoodSp33d

답변:


13

많은 연구 끝에 다음은 적중률과 memcached 사용량에 도움이 된 것입니다.

  • memcached를 1.4.10으로 업그레이드 (성능이 개선 된 최신 버전)
  • 활성화 된 이진 형식 및 압축
  • 출력 함의 기본값 사용

settings.php의 memcached conf는 다음과 같습니다.

$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'];

가장 큰 이익

문서에 따르면 CPU 사이클이 증가한다고 말하지만 압축을 사용하는 것이 가장 큰 이점이었습니다. VM에 4 개의 CPU가 할당되어 있으며 차이가 없습니다. memcached 통화 시간은 콘텐츠 조각 (이 경우 사용자 정의 아티클)을 만들기 위해 ~ 1250ms에서 ~ 150ms (NewRelic에서 획득)까지 소요되었습니다.

적중률

우리의 적중률은 현재 ~ 70 %로 55 %보다 훨씬 빠르지 만 일부는 90 % 이상을 조용히하지 않습니다. 퀘스트는 계속됩니다 (-:

잘하면 이것은 다른 누군가를 돕습니다. 다른 개선 사항이 있거나 수정 / 제안이있는 경우 의견이나 답변을 게시하십시오.

업데이트-memcahe 모듈 버전

버전 1.0-beta4에서 1.0으로 이동했으며 적중률은 87 %입니다. 적중률이 70 %를 넘지 않아 memcached를 다시 시작해야했습니다. 현재 memcached에 64MB가 할당되었으므로 큰 문제는 아닙니다.


1
키 접두어를 하드 코딩 된 것으로 설정하고 주어진 서버 이름에 의존하지 않습니다. 예를 들어 누군가가 www가 있거나없는 사이트에 액세스하는 경우. (예를 들어 리디렉션 또는 무언가 일 수 있음) 캐시의 다른 키 접두사로 끝납니다. 그러나 각 사이트마다 settings.php를 변경해야합니다.
Berdir

1
또한 적중률은 사이트에 따라 크게 달라집니다. 명시 적 캐시 지우기가 많거나 memcache가 가득 차서 정기적으로 물건을 버려야하는 경우 적중률은 분명히 떨어집니다.
Berdir

@Berdir의 무게를 측정 해 주셔서 감사합니다. 슬래브를 확인했으며 지금까지 키로 서버 이름은 문제가되지 않았지만 어디에 있는지 볼 수 있습니다. 퇴거는 ~ 170으로 낮으며 memcached에 25 % (~ 17MB)의 공간이 남아 있습니다. 30 % 캐시 누락의 원인을 추적하는 방법이 있습니까? 캐시가 지워지거나 다른 것 ...?
KM.

쉽지 않습니다. 캐시가 실패 할 때까지 발생한 일을 재현 할 수 없습니다. 당신이 시도 할 수있는 것은 백 트레이스를 포함하여 캐시 캐시 호출을 호출하여 어디에서 왔는지 알지만 그것이 도움이되는지 확실하지 않습니다.
Berdir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.