0
about MEMCACHED        afool     Kim Sinhyub    sinhyub@gmail.com
1_ memcached 가 뭔가요? (항상) 메모리에 올라가 있는 map (Key – Value) dictionary map : Key-Value pair를 가지는 자료구조. dictionary 등으로도 불려요.   ...
2_ memcached 를 왜 사용하나요? _ 메모리 레벨 캐싱 (손쉽게) 메모리 레벨에서 원하는 값을 캐싱할 수 있음! 캐싱 : 자원을 읽고 쓰는 작업에서, 성능 향상을 목적으로       자원을 (접근 속도가 더 ...
2_ memcached 를 왜 사용하나요? _ 메모리 레벨 캐싱           GET 556 NAME                           (Memory)                             ...
2_ memcached 를 왜 사용하나요? _ 분산 캐시 서버 구축  메모리 캐시 서버를   (손쉽게)  분산하여 구축할 수 있음! memcached client 에서 해시 테이블을 사용하여  해당 자원의 memcac...
3_ memcached 사용 팁 _ installmemcached server : brew install memcachedmemcached client : pip install python-memcachedmemcach...
3_ memcached 사용 팁 _ setting memcached 에 필요한 cpu costs는 매우 작음.  default 4개의 thread로 동작함. 하지만 여러개의 코어가  달린 고성능 CPU를 필요로 하지는...
3_ memcached 사용 팁 _ setting 사용 중인 서버 머신에서, WebServer, App이 사용하지  않아 남는 메모리만큼을 Memcached에 할당해서  사용해도 좋음 DB Host에 Memcache...
3_ memcached 사용 팁 _ setting 사용하는 자원이 다 차면, LRU order로 object를 제거 .  가장 자주(최근에)쓰이는 것들이 캐시에 남아있게됨!  메모리 용량을 넘어서는 범위를 이터레이션하...
3_ memcached 사용 팁 _ 추가 라이브러리 동기화 관련한 기능이 필요하다면 다른 녀석과 함께  사용하라.  ex) get + set 을 atomic하게 처리해야 하는 트랜젝션 redis : memcached...
4_ memcached 얼마나 좋나요? (쉽게 말해서) (이름만 대면 알만한) 큰 서비스에서 사용하고 있음!
4_ memcached 얼마나 좋나요?   (쉽게 말해서)   (이름만 대면 알만한)  큰 서비스에서 사용하고 있음!징가의 경우 하나의 세션마다, 세션이 유지되는 동안의 유저 플레이데이터를 memcached에 저장하고,...
4_ memcached 얼마나 좋나요? (이름만 대면 알만한)PAS에서는 API를 주고 서비스로제공해 주고 있음!
5_ memcached 사용 후기는afool프로젝트 끝나고올려 드림
Upcoming SlideShare
Loading in...5
×

About memcached

2,520

Published on

afool에서 사용할 memcached에 대한
간략한 내부 공유자료입니다.

Published in: Technology

Transcript of "About memcached"

  1. 1. about MEMCACHED afool Kim Sinhyub sinhyub@gmail.com
  2. 2. 1_ memcached 가 뭔가요? (항상) 메모리에 올라가 있는 map (Key – Value) dictionary map : Key-Value pair를 가지는 자료구조. dictionary 등으로도 불려요. Key를 사용하여 Value 를 빠르게 찾아 주는 특징을 가집니다. (항상)메모리에 올라가 있는 것은 아니구요. 물리적 메모리를 넘어선 만큼을 memcached에 할당하면, 당연히 하드디스크로 virtual memory 페이징이 일어나게 됩니다.
  3. 3. 2_ memcached 를 왜 사용하나요? _ 메모리 레벨 캐싱 (손쉽게) 메모리 레벨에서 원하는 값을 캐싱할 수 있음! 캐싱 : 자원을 읽고 쓰는 작업에서, 성능 향상을 목적으로 자원을 (접근 속도가 더 빠른) 다른 차원의 저장소에 저장해 두고 자원에 대한 요청이 왔을 때 빠르게 반환해 주는 방법.
  4. 4. 2_ memcached 를 왜 사용하나요? _ 메모리 레벨 캐싱 GET 556 NAME (Memory) (Disk) (김개똥)Contents Server GET 555 NAME memcached DB (박주영)1. Memory Access Time <<< Disk Access Time2. 자주 찾는 데이터일 수록 memcached레벨에서 처리 가능* memcached 는 LRU order로 자원을 삭제함
  5. 5. 2_ memcached 를 왜 사용하나요? _ 분산 캐시 서버 구축 메모리 캐시 서버를 (손쉽게) 분산하여 구축할 수 있음! memcached client 에서 해시 테이블을 사용하여 해당 자원의 memcached server에 접근 할 수 있도록 지원함 (key 값에 대한 hash값으로 해당 key-value가 저장될 memcached server를 결정하여 데이터를 분산시켜 저장하고, key 값에 대한 value를 찾을 때에도 해당 hash값으로 저장되어 있는 memcached server를 통해 데이터를 가져옴.) 물론, 이러한 내부적인 메커니즘을 몰라도 쉽게 사용할 수 있음! 단, 이러한 분산 메커니즘이 클라이언트 사이드에서 진행되므로 memcached client의 버전을 꼭 동일한 것으로 사용하는 것이 좋음.
  6. 6. 3_ memcached 사용 팁 _ installmemcached server : brew install memcachedmemcached client : pip install python-memcachedmemcached server : key-value map을 저장하는 저장소. 서버머신에서구동시킬 서버 어플리케이션.memcached client : memcached server로 요청을 보내어 원하는 key-value값을 저장하거나 읽어올 수 있는 작업을 하는 클라이언트. 물론,클라이언트는 각 환경마다 여러가지 버전이 존재 하니 입맛에 맞게골라쓰면 됨!
  7. 7. 3_ memcached 사용 팁 _ setting memcached 에 필요한 cpu costs는 매우 작음. default 4개의 thread로 동작함. 하지만 여러개의 코어가 달린 고성능 CPU를 필요로 하지는 않음. 셋팅 시 memcached에 할당할 메모리는 실제 머신의 물리메모리(에 조금의 여유를 남긴)만큼만 할당하는 것이 좋음. 메모리를 사용하여 퍼포먼스의 향상을 얻는 것이 memcached의 기본 컨셉으로, 물리메모리를 넘어서는 만큼의 메모리를 할당할 경우swapping(가상 메모리 페이징)으로 오히려 성능 하락이 발생할 수 있음.참고자료)http://code.google.com/p/memcached/wiki/NewHardware
  8. 8. 3_ memcached 사용 팁 _ setting 사용 중인 서버 머신에서, WebServer, App이 사용하지 않아 남는 메모리만큼을 Memcached에 할당해서 사용해도 좋음 DB Host에 Memcached를 사용하는 것은 어리석은 짓. 메모리를 최대한 DBMS로 주도록.참고자료)http://code.google.com/p/memcached/wiki/NewHardwarehttp://code.google.com/p/memcached/wiki/NewConfiguringServer
  9. 9. 3_ memcached 사용 팁 _ setting 사용하는 자원이 다 차면, LRU order로 object를 제거 . 가장 자주(최근에)쓰이는 것들이 캐시에 남아있게됨! 메모리 용량을 넘어서는 범위를 이터레이션하게 된다면, 한번씩만 쓰고, 캐시에서 빠져나가게 되는 object들로 인해 연이은 cache miss 가 일어날 수 있다. 따라서 어플리케이션에서 날리는 쿼리를 잘 파악하여, 매우 큰 범위(memcached capacity를 넘어서는)를 iteration하게 되는 set에 대해서는 바로 db로부터 retrieving받는 것이 더 낫다.참고자료)http://code.google.com/p/memcached/wiki/NewUserInternals
  10. 10. 3_ memcached 사용 팁 _ 추가 라이브러리 동기화 관련한 기능이 필요하다면 다른 녀석과 함께 사용하라. ex) get + set 을 atomic하게 처리해야 하는 트랜젝션 redis : memcached 와 같이 메모리 레벨 캐싱과 함께 유용한 atomic operation들을 제공해 줌!
  11. 11. 4_ memcached 얼마나 좋나요? (쉽게 말해서) (이름만 대면 알만한) 큰 서비스에서 사용하고 있음!
  12. 12. 4_ memcached 얼마나 좋나요? (쉽게 말해서) (이름만 대면 알만한) 큰 서비스에서 사용하고 있음!징가의 경우 하나의 세션마다, 세션이 유지되는 동안의 유저 플레이데이터를 memcached에 저장하고, 추후에 이를 DB에 저장하는방법으로 DB차원의 자원을 memcached를 이용하여 성능향상을얻었다고 함!youtube : http://video.google.com/videoplay?docid=-6304964351441328559Facebook : http://www.facebook.com/note.php?note_id=39391378919&ref=mfZynga-farmville : http://gigaom.com/2010/06/08/how-zynga-survived-farmville/
  13. 13. 4_ memcached 얼마나 좋나요? (이름만 대면 알만한)PAS에서는 API를 주고 서비스로제공해 주고 있음!
  14. 14. 5_ memcached 사용 후기는afool프로젝트 끝나고올려 드림
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×