일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 시마지로
- 영단어
- 라면
- youtuber
- 돼지갈비
- 전철
- TOY
- 리눅스
- 자동차
- paypay
- 칸칸
- 동경 모터쇼
- 스테이크
- 신쥬쿠
- 원탭바이
- Sekai Entertainment
- 코라쿠엔
- 점심
- しまじろう
- one tab buy
- Shimajirou
- fish
- 일본
- 명령어
- 돈까스
- 米沢、팽이
- 사이타마
- 토익
- 여름
- 시스템관리
- Today
- Total
IT Japan
Memcached 본문
Memcached는 고성능의 분산 메모리 캐싱 시스템 이다. 사용량이 많은 동적 웹 어플리케이션에서 디비의 부하를 줄이기 위해 사용한다. Memcached는 LiveJournal?을 운영하는 Danga Interactive사에서 개발된 소프트웨어 이다. 현재는 일본의 mixi, 하테나, 그리고 SNS인 facebook, Vox, LiveJournal?, 위키피디어 등의 서비스에서 웹 어플리케이션의 확장을 향상하는 중요한 수단으로 사용하고 있다.
개발 목적
이 소프트를 개발하게 된 계기는 Danga사가 운영중인 LiveJournal?의 속도를 항샹 시키기 위해서 였다. Danga사는 Memcached를 사용 하므로써 디비의 부하를 줄일 수 있었고, 웹 페이지의 속도를 개선하고 캐싱되지 않는 테이터를 디비로 부터 신속하게 쿼리 할 수 있었다.
Memcached의 특징
- 단순한 프로토콜 ( 그래서 API 개발이 용이하다 )
- Libevent에 의한 이벤트 핸들링
- 온 메모리 스토리지
- memcached서버간 통신을 수행하지 않는 분산 방식
왜 공유 메모리를 사용이 중요한가
사람들이 사용하는 기초적인 캐싱의 방법은 로컬 영역의 메모리나 파일 시스템에 캐싱을 하는 방법이다. 하지만 이 방법은 어려 대의 서버가 각각의 캐싱을 수행하기 때문에 동일한 캐싱 데이터를 여러대가 가지고 있는 문제가 있다. Memcached를 사용하면 하나의 공유 메모리 영역을 캐싱 공간으로 사용할 수 있다.
Memcached의 메모리 관리
Memcached는 메모리를 할당할 때 고정 크기로 할당을 하기 때문에 단편 형상이 발생하지 않는다. 이는 서버의 시작시에 알맞은 크기로 지정이 가능하다
Memcached가 왜 빠른가?
Memcached는 libevent 라이브러리를 내부적으로 사용한다. Libevent 라이브러리는 현재의 시스템에 최적화된 쓰레드 방식을 적용하여 이벤트 방식의 프로그래밍을 쉽고, 고성능으로 수행할 수 있게 C라이브러이다.
경쟁상태의 해결
저장 시스템에서 가장 우려되는 경쟁상태는 발생하지 않는다. Memcached는 하나의 통로로만 테이터에 접근하기 때문이다.
Memcashed 시스템은 보통의 심플한 캐싱 개념을 심플한 API로 분산/확장 가능하게 이용할 수 있는 방법을 제공하다. 내부동작은 아주 쉬운 개념으로 구성되어있기 때문에 시스템에 전문적인 지식이 없이도 고성능의 캐싱 서비스를 이용 할 수 있다. 또한 여러 가지 언어로 API를 제공하기 때문에 개발 접근성도 좋다.