사용자 도구

사이트 도구


memcached:moxi

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
memcached:moxi [2015/04/15 16:41]
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 [binary|ascii|auto]'' : 바이너리 프로토콜만 허용. 기본은 클라이언트의 요청을 분석하여 ASCII와 BINARY 자동반응.+  * ''-B [binary|ascii|auto]'' : 바이너리 프로토콜만 허용. 기본은 클라이언트의 요청을 분석하여 ASCII와 BINARY 자동반응. ''binary''로 지정할 경우 ''stats'', ''stats proxy'' 작동 안함.
   * ''-t [쓰레드갯수]'' : 작업 쓰레드 갯수를 지정한다. CPU Core 갯수보다 같거나 작게 지정한다.   * ''-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에 접속하게 할 것. 
-  * 클라이언트가 직접 Moxi에 붙지 말고 Moxi들 앞에 Load Balancer를 둘 것. 
-  * Moxi는 여러대 이더라도 일관성있는 Hashing을 하여 동일 Memcached에 동일 키가 접속 된다. 
  
 ==== memcached 무응답시 ==== ==== memcached 무응답시 ====
   * Blacklist/Backoff : 특정 memcached가 응답이 없을 경우 일시적으로 더이상 해당 memcached에 요청을 보내지 않고 곧바로 오류를 리턴하는 기능.   * Blacklist/Backoff : 특정 memcached가 응답이 없을 경우 일시적으로 더이상 해당 memcached에 요청을 보내지 않고 곧바로 오류를 리턴하는 기능.
-  * 아예 해당 memcached를 목록에서 빼버리는 행동은 하지 않고, 다만 해당 memcached로 전달해야할 Key가 오면 즉각 오류를 리턴해서 성능상 불이익만 줄여주는 컨셉인다.+  * 아예 해당 memcached를 목록에서 빼버리는 행동은 하지 않고, 다만 해당 memcached로 전달해야할 Key가 오면 즉각 오류를 리턴해서 성능상 불이익만 줄여주는 컨셉인 것으로 보임. 따라서 클라이언트는 빠르게 오류 메시지를 받게 된다. 어차피 캐시 이므로 오류 발생시 실 데이터소스로 부터 정보를 읽는다.
   * 꼭 원하면 설정을 변경하여 fail나는 memcached 빼고 재실행 해야 한다.   * 꼭 원하면 설정을 변경하여 fail나는 memcached 빼고 재실행 해야 한다.
   * ''connect_max_errors=횟수''에 지정된 값 이상의 커넥션 오류가 발생하면 Blacklist에 넣고 더이상 요청 보내기 중단.   * ''connect_max_errors=횟수''에 지정된 값 이상의 커넥션 오류가 발생하면 Blacklist에 넣고 더이상 요청 보내기 중단.
memcached/moxi.1429083660.txt.gz · 마지막으로 수정됨: 2015/04/15 16:41 저자 kwon37xi