memcached 최적화

3000 단어

memcached 분포식


Memcached는'분포식'캐시 시스템이지만 서버 측은 분포식 기능이 없습니다.각 Memcached는 정보를 공유하기 위해 서로 통신하지 않습니다.분포식은 완전히 클라이언트의 실현에 달려 있다.Memcached의 분포식 클라이언트 클라이언트는 SockIOPool의 서버 파라미터를 설정하여 서버 주소 목록을 저장하고weight 파라미터를 통해 모든 서버의 권한을 설정할 수 있습니다.SockIOPool은 연결 탱크의 서비스를 제공합니다. SockIOPool을 통해memcahce 서버 관련 정보, 예를 들어 최대 연결 수, 최소 연결 수 등을 설정할 수 있습니다.
하나의 키는memcache 서버에만 저장할 수 있고 여러 서버에 여러 개의 복사본이 없을 것입니다. 그러면 리셋이 동기화되지 않는 상황을 방지할 수 있을 뿐만 아니라 디스크 공간의 낭비도 피할 수 있습니다
Memcached의 분포식 특징
  • 1: 서버 측에서 분산에 무관심..
  • 2: 클라이언트에 의한 분산..
  • 3: 클라이언트는 접근할 수 있는Memcached 서버 목록을 저장하고 있습니다..
  • 4: 클라이언트에서 알고리즘으로 보증합니다. 같은 키 값의 데이터에 대해 읽기와 쓰기는 모두 같은 서버를 조작합니다..

  • Memcached의 개선 목표

  • 1, 메모리 활용도 향상, 메모리 낭비 감소..
  • 2, 적중률 향상..

  • 조정 방법:
  • 1, f 매개 변수:factor성장인자, 기본값은 1.25이고 2,값이 적을수록slab에서chunksize의 차이가 적을수록 메모리 낭비가 적다.1.25는 수백 바이트를 캐시하는 대상에 적합하다.건의: 데이터의 예상 평균 길이를 계산하고factor를 조정하여 가장 적절한 설정을 얻습니다.
  • 2, n 매개 변수:chunk 초기값
  • 3, slab 꼬리 부분 잉여 공간 해결 방법: 계획 slab=chunk*n 정수 배
  • slab 중chunk 이용률이 낮다. 신청한 slab는 하나의 Item 해결 방법만 저장했다. 계획slab=chunk
  • chunk 저장 Item 낭비 예를 들어 Item이 100이고 128 바이트 chunk에 저장하면 28 바이트 낭비 해결 방법이 있다:chunk=Item을 기획한다

  • Memcached의 제한 사항

  • Memcached에 저장할 수 있는 item 데이터량은 제한이 없습니다. 메모리만 충분하면..
  • Memcached 단일 프로세스의 최대 사용 메모리는 2G입니다. 더 많은 메모리를 사용하려면 여러 포트로 나누어 여러 Memcached 프로세스를 열 수 있습니다
  • Memcached 설정 아이템은 최대 30일의 만료 기간이며, 영구적으로 설정해도 이 시간에 만료됩니다. 상량 REALTIME_MAXDELTA는 606024*30으로 제어됩니다
  • Memcached 자체는 캐시를 위한 서버이기 때문에 데이터의 영구성을 지나치게 고려하지 않고 내용 용량이 지정된 값에 도달하면 LRU(Least Recently Used) 알고리즘을 바탕으로 사용하지 않는 캐시를 자동으로 삭제합니다..
  • 최대 키 길이는 250바이트로 이 길이보다 커서 저장할 수 없습니다. 단일 item의 최대 데이터는 1MB이고 1MB가 넘는 데이터는 저장하지 않습니다

  • Memcached의 사용 목적

     , 
    

    세다그리고 핫스팟 데이터를 캐시하여 웹 응용 프로그램의 속도를 높이고 확장성을 높인다.
  • 1, 캐시 간단한 검색 결과: 검색 캐시는 주어진 검색 문장에 대응하는 전체 결과 집합을 저장하고 자주 사용되지만 변하지 않는 SQL 문장에 대응하는 검색 결과 집합을 저장합니다. 예를 들어 특정한 필터 내용을 불러오는 것입니다..
  • 2, 캐시가 간단한 줄 기반 조회 결과..
  • 3 캐시는 SQL 데이터뿐만 아니라 자주 사용하는 핫스팟 데이터, 예를 들어 페이지를 캐시하여 CPU 시간을 절약하고 층별 캐시를 사용할 수 있습니다
  • 4, 특히 주의: 데이터가 업데이트될 때 캐시를 업데이트해야 합니다..

  • Memcached의 전형적인 사용 장면

  • 1, 분포식 응용..
  • 2, 데이터베이스 전면 캐시..
  • 3, 서버 간 데이터 공유..
  • 4, 변화가 빈번하고 조회가 빈번한 데이터지만 반드시 데이터베이스에 쓰지 않는다. 예를 들어 사용자의 온라인 상태..
  • 5, 변화가 빈번하지 않고 조회가 빈번하여 입고하든 말든 사용하기에 비교적 적합하다

  • Memcached는 Memcached를 사용하는 장면에 적합하지 않습니다.

  • 1: 변화가 빈번하고 변화가 있으면 입고류의 응용, 예를 들어 주식, 금융..
  • 2:'분포'가 필요하지 않고 공유할 필요가 없거나 아예 한 대의 서버만 있을 정도로 규모가 작은 응용 프로그램은memcached가 아무런 이익을 가져오지 않을 뿐만 아니라 시스템 효율을 늦출 수 있다. 왜냐하면 네트워크 연결 역시 자원이 필요하기 때문이다
  • 3: 1MB 이상의 캐시 객체 크기..
  • 4: 키 길이가 250자보다 큽니다..

  • 관련 문장
    Memcached 설치 사용 저장소http://www.jianshu.com/p/2b3c43c1778c
    java 사용memcached 및spring 설정memcachedhttp://www.jianshu.com/p/6f264bf5d9f9
    memcached 최적화http://www.jianshu.com/p/789d208036f5

    좋은 웹페이지 즐겨찾기