사용자 도구

사이트 도구


memcached:moxi

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
memcached:moxi [2015/04/08 11:12]
kwon37xi [Memcached 사용시 권장 설정]
memcached:moxi [2015/11/08 23:28] (현재)
kwon37xi [moxi의 역할]
줄 1: 줄 1:
 ====== Moxi ====== ====== Moxi ======
   * Memcached를 지원하는 Proxy   * Memcached를 지원하는 Proxy
-  * [[https://github.com/couchbase/moxi|moxi github]]+  * [[https://github.com/couchbase/moxi|moxi couchbase github]]
   * [[http://docs.couchbase.com/moxi-guide/|moxi-guide]]   * [[http://docs.couchbase.com/moxi-guide/|moxi-guide]]
   * [[https://code.google.com/p/moxi/|구 moxi 홈페이지]]   * [[https://code.google.com/p/moxi/|구 moxi 홈페이지]]
   * [[http://www.slideshare.net/northscale/moxi-memcached-proxy|Moxi - Memcached Proxy]]   * [[http://www.slideshare.net/northscale/moxi-memcached-proxy|Moxi - Memcached Proxy]]
 +
 +===== moxi의 역할 =====
 +moxi는 죽은 memcached서버를 인식해서 일정시간 동안 요청을 안보내긴 하지만, 죽은 서버에 대한 요청을 다른쪽으로 자동으로 redistribute하지는 않는다.
 +
 +따라서 memcached가 죽으면 빠르게 살리거나(그러면 moxi가 다시 서버군에 넣어줌), moxi에서 죽은 서버를 빼서 재설정해야 한다.
 +
 +==== 주의점 ====
 +여러대의 memcached가 받아야할 대역폭을 moxi 가 혼자 감당해야 하기 때문에 해당 망의 대역폭과 moxi 가 설치된 서버의 대역폭을 충분히 확보해야만 한다.
 +
 +
 +===== High Availability(HA, Fail Over) =====
 +  * Moxi 자체를 여러대로 구성하고 
 +  * 클라이언트가 직접 Moxi에 붙지 말고 Moxi들 앞에 Load Balancer를 둘 것.
 +  * Moxi는 여러대 이더라도 일관성있는 Hashing을 하여 동일 Memcached에 동일 키가 접속 된다.
  
 ===== Ubuntu 설치 ===== ===== Ubuntu 설치 =====
줄 13: 줄 27:
     * 설정 : ''/opt/moxi/etc''     * 설정 : ''/opt/moxi/etc''
     * 실행 : ''/etc/init.d/moxi-server start''     * 실행 : ''/etc/init.d/moxi-server start''
- +
 ===== Memcached 사용시 권장 설정 ===== ===== Memcached 사용시 권장 설정 =====
-  * memcached 사용시에는 cluster 설정이 없고, 접속할 memcached 서버 목록을 실행시 제공한다.<code sh>+memcached 사용시에는 cluster 설정이 없고, 접속할 memcached 서버 목록을 실행시 제공한다. 
 + 
 +<code sh>
 ./moxi -z LISTEN_PORT=MEMCACHED_HOST1[:PORT1][,MEMCACHED_HOSTN[:PORTN]] ./moxi -z LISTEN_PORT=MEMCACHED_HOST1[:PORT1][,MEMCACHED_HOSTN[:PORTN]]
 ./moxi -z 11811=mc1:11211,mc2:11211 ./moxi -z 11811=mc1:11211,mc2:11211
줄 21: 줄 37:
  
 ===== Options ===== ===== Options =====
-  * ''-B'' : 바이너리 프로토콜만 허용. 기본은 클라이언트의 요청을 분석하여 ASCII와 BINARY 자동반응. +  * ''-B [binary|ascii|auto]'' : 바이너리 프로토콜만 허용. 기본은 클라이언트의 요청을 분석하여 ASCII와 BINARY 자동반응. ''binary''로 지정할 경우 ''stats'', ''stats proxy'' 작동 안함
 +  * ''-t [쓰레드갯수]'' : 작업 쓰레드 갯수를 지정한다. CPU Core 갯수보다 같거나 작게 지정한다.
 ===== 상태보기 ===== ===== 상태보기 =====
   * ''%%echo "stats" | nc moxihostname 11811 | sort%%''   * ''%%echo "stats" | nc moxihostname 11811 | sort%%''
   * ''%%echo "stats proxy" | nc moxihostname 11811%%''   * ''%%echo "stats proxy" | nc moxihostname 11811%%''
 +  * ''%%echo "stats proxy config" | nc moxihostname 11811%%'' : 프록시 설정 보여줌<code>
 +# 아래 명령으로 moxi를 띄웠을 때
 +./dev/moxi/moxi -z 11211=127.0.0.1:11411,127.0.0.1:11511
  
 +# 다음과 같이 출력됨. 
 +echo stats proxy config | nc 127.0.0.1 11211 
 +STAT 11211:default:config 127.0.0.1:11411,127.0.0.1:11511 
 +END 
 +</code> 
 +  * ''%%echo "stats proxy timings" | nc moxihostname 11811%%'' : ''-Z time_stats=1'' 옵션으로 moxi를 실행했을 때
 ===== CouchBase 사용시 권장 설정 ===== ===== CouchBase 사용시 권장 설정 =====
   * **Standalone Moxi Component** 항목   * **Standalone Moxi Component** 항목
줄 53: 줄 77:
   * moxi 자체를 관리하고 설정하는 REST URL. 기본 ''8091'' 포트   * moxi 자체를 관리하고 설정하는 REST URL. 기본 ''8091'' 포트
  
-===== High Availability(HA, Fail Over) ===== + 
-  * Moxi 자체를 여러대로 구성하고 client가 그 중에 살아있는 Moxi에 접속게 할 것. +==== memcached 무응답시 ==== 
-  * 클라이언트가 직접 Moxi에 붙지 말고 Moxi들 앞에 Load Balancer를 둘 것+  * Blacklist/Backoff : 특정 memcached가 응답이 없을 경우 일시적으로 더이상 해당 memcached에 요청을 보내지 않고 곧바로 오류를 리턴하는 기능. 
-  * Moxi는 여러대 이더라도 일관성있는 Hashing을 하여 동일 Memcached에 동일 키가 접속 된다.+  * 아예 해당 memcached를 목록서 빼버리는 행동은 지 않고, 다만 해당 memcached로 전달해야할 Key가 오면 즉각 오류를 리턴해서 성능상 불이익만 줄여주는 컨셉인 으로 보임따라서 클라이언트는 빠르게 오류 메시지를 받게 된다. 어차피 캐시 이므로 오류 발생시 실 데이터소스로 부터 정보를 읽는다
 +  * 꼭 원하면 설정을 변경하여 fail나는 memcached 빼고 재실행 해야 한다. 
 +  * ''connect_max_errors=횟수''에 지정된 값 이상의 커넥션 오류가 발생하면 Blacklist에 넣고 더이상 요청 보내기 중단. 
 +  * ''connect_retry_interval=시간 ms''로 blacklist로 지정한 뒤 다시 해당 서버로 요청을 재시도하기까지의 기간을 지정한다. 
 +  * ''connect_max_errors''는 ''downstream_conn_max(기본값 4)''보다 큰 값으로 지정해야 한다. 
memcached/moxi.1428459167.txt.gz · 마지막으로 수정됨: 2015/04/08 11:12 저자 kwon37xi