IT Japan

Memcached 본문

카테고리 없음

Memcached

swhwang 2014. 11. 11. 15:57
반응형

Memcached는 고성능의 분산 메모리 캐싱 시스템 이다. 사용량이 많은 동적 웹 어플리케이션에서 디비의 부하를 줄이기 위해 사용한다. Memcached는 LiveJournal?을 운영하는 Danga Interactive사에서 개발된 소프트웨어 이다. 현재는 일본의 mixi, 하테나, 그리고 SNS인 facebook, Vox, LiveJournal?, 위키피디어 등의 서비스에서 웹 어플리케이션의 확장을 향상하는 중요한 수단으로 사용하고 있다.

개발 목적

이 소프트를 개발하게 된 계기는 Danga사가 운영중인 LiveJournal?의 속도를 항샹 시키기 위해서 였다. Danga사는 Memcached를 사용 하므로써 디비의 부하를 줄일 수 있었고, 웹 페이지의 속도를 개선하고 캐싱되지 않는 테이터를 디비로 부터 신속하게 쿼리 할 수 있었다.

Memcached의 특징

  • 단순한 프로토콜 ( 그래서 API 개발이 용이하다 )
  • Libevent에 의한 이벤트 핸들링
  • 온 메모리 스토리지
  • memcached서버간 통신을 수행하지 않는 분산 방식
Memcached가 데이터 베이스와 다른 점은? DBMS와 memcached가 다른점은 ACID 즉 데이터의 무결성을 보장하지 않는다는 것이다. RDBMS에서 무결성을 보장하기 위한 lock을 memcached에서는 사용하지 않는다.

 공유 메모리를 사용이 중요한가

사람들이 사용하는 기초적인 캐싱의 방법은 로컬 영역의 메모리나 파일 시스템에 캐싱을 하는 방법이다. 하지만 이 방법은 어려 대의 서버가 각각의 캐싱을 수행하기 때문에 동일한 캐싱 데이터를 여러대가 가지고 있는 문제가 있다. Memcached를 사용하면 하나의 공유 메모리 영역을 캐싱 공간으로 사용할 수 있다.

Memcached의 메모리 관리

Memcached는 메모리를 할당할 때 고정 크기로 할당을 하기 때문에 단편 형상이 발생하지 않는다. 이는 서버의 시작시에 알맞은 크기로 지정이 가능하다

Memcached가 왜 빠른가?

Memcached는 libevent 라이브러리를 내부적으로 사용한다. Libevent 라이브러리는 현재의 시스템에 최적화된 쓰레드 방식을 적용하여 이벤트 방식의 프로그래밍을 쉽고, 고성능으로 수행할 수 있게 C라이브러이다.

경쟁상태의 해결

저장 시스템에서 가장 우려되는 경쟁상태는 발생하지 않는다. Memcached는 하나의 통로로만 테이터에 접근하기 때문이다.

Memcashed 시스템은 보통의 심플한 캐싱 개념을 심플한 API로 분산/확장 가능하게 이용할 수 있는 방법을 제공하다. 내부동작은 아주 쉬운 개념으로 구성되어있기 때문에 시스템에 전문적인 지식이 없이도 고성능의 캐싱 서비스를 이용 할 수 있다. 또한 여러 가지 언어로 API를 제공하기 때문에 개발 접근성도 좋다.


반응형
Comments