2010-06-18 1 views
6

디스크 캐싱을 사용하는 원격 서버 (동일한 LAN상의)에서 Memcached의 성능을 알고 싶습니다 .Memcached는 확장 가능한 캐시 솔루션이므로, 관련하여 Memcached를 사용할 때의 이점이 있습니까? 성능을 디스크 캐싱과 비교할 때MemCached와 디스크 캐싱의 성능 비교

감사합니다. Mugil.

답변

7

내 개인적인 경험을 통해 memcached가 디스크 캐시만큼 빠르지 않은 것으로 나타났습니다. 나는 이것이 OS의 디스크 입출력 캐싱 때문이라고 생각하지만, memcached는 "확장 가능한"캐쉬를 허용합니다. 즉, 동일한 캐시 데이터에 액세스하는 서버가 두 개 이상인 경우 (특히 memcached가 PHP로). 하나 이상의 컴퓨터가 동시에 디스크 캐시에 액세스 할 수있게하는 유일한 방법은 네트워크 마운트이며 이는 액세스 속도를 떨어 뜨릴 것입니다. 또한 파일 캐싱에 대해 걱정해야 할 또 하나의 사항은 디스크가 포화되지 않도록 가비지 수집입니다.

사이트 규모에 따라 나중에 선택 사항을 변경하려는 경우 캐시 래퍼를 사용하여 쉽게 방법을 변경할 수 있습니다. Zend는 good API을 제공합니다.

2

읽기는 OS가 자주 액세스하는 파일을 캐시하므로 거의 동일한 속도가됩니다. 차이점은 쓰기와 관련이 있습니다. memcached를 사용하면 램을 작성해야합니다. 그러나 파일 저장 장치를 사용하면 조금 더 까다로워집니다. 쓰기 캐싱을 사용하도록 설정하면 속도가 빨라집니다. 그러나 대부분의 서버는 정전이 발생한 경우보다 안정적인 쓰기를 위해 전원이 꺼져 있습니다 (배터리 백업 캐시가없는 한). 따라서 쓰기 캐시를 사용하지 않는 경우 디스크에 쓰기 작업이 완료되어야합니다 (서버 등급 드라이브에서는 5+ ms 이상, 데스크톱 등급 하드웨어에서는 가능할 수도 있음). 따라서 파일을 쓰는 것은 memcached보다 훨씬 느릴 수 있습니다.

하지만 또 다른 캐비닛이 있습니다. 파일을 쓸 때는 파일을 잠글 필요가 있습니다. 즉, 두 프로세스가 동일한 파일에 쓰려고하면 쓰기가 순차적으로 완료되어야합니다. memcached를 사용하면 두 개의 쓰기가 대기열에 푸시되고받은 순서대로 처리되지만 쓰기 프로세스 (PHP)는 실제 커밋을 기다릴 필요가 없습니다.