드루팔 성능/속도 올리기 제4탄 - 이건 필살기다. 파일형 캐쉬 fastpath_fscache 모듈

드루팔 성능/속도 올리기 제4탄 - 이건 필살기다.
파일형 캐쉬 fastpath_fscache 모듈을 소개한다.

이전부터도 여러번 드루팔의 성능향상책을 알려왔지만,
이번 것은 커다란 부하가 걸리는 사이트에 아주 특효약이다.

웹 성능향상을 위한 캐쉬 방법으로는,
DB에 임시 저장형,
파일에 임시 저장형,
메모리에 임시 저장형이 있을 수 있는데...

아시다시피 가장 빠른 것은 메모리 캐슁이다.
하지만 드루팔의 관련모듈 Memcache API and Integration 모듈
http://drupal.org/project/memcache 은 설정이 번거롭고 시스템 전체를 거의 까뒤집는 수준이라 다음 기회로...

드루팔의 기본적인 캐쉬 기능 admin/settings/performance 은,
DB에 cache 이름이 붙은 임시 테이블 저장방식이다.
이건 거의 기본적으로 애용하는 것이지만, 대용량에 있어서는 한계가 있어 보인다.
한계치에 이르면(Devel 모듈을 이용해서 느린 Query를 하이라이트로 살펴보라) 이 캐쉬 조회가
더 무거워지는 경우도 있다고 한다. 이쯤 되면 서버를 갈아타던지 사이트를 나누던지 해야한다.

그래도 한가지 더 남은 방법.
파일 베이스의 캐슁이다. 크론과 함께 이용되면서 일정 기간마다
특정 페이지나 기능들을 파일 형태로 캐쉬해 놓는 방식이다. 개발현장에서도 곧잘 적용하는 형태이다.
이 간단한 원리의 캐슁이 그 어느 것보다도 유용하다. 설정도 크게 번거롭지 않고, 성능 향상은 예상을 넘는다.

대표적으로 소개하자면, fastpath_fscache 모듈이 있다.
설치법은 다음과 같다.

1. http://drupal.org/project/fastpath_fscache 에서 모듈을 다운로드, 설치/활성화한다.
2. INSTALL.txt 의 내용을 꼼꼼히 확인한다.
3. 해당 사이트의 settings.php 의 맨 아래에 다음을 추가한다.
$conf = array(
'page_cache_fastpath' => 1,
'cache_inc' => './sites/all/modules/fastpath_fscache/cache.fs.inc',
'file_cache' => '/tmp',
);
/*** 캐쉬폴더 /tmp는 상황에 맞게 설정해 주세요.
예) C:\VAR\bulabula.net-fscache 폴더에 쓰기 권한 설정을 잊지 마시고.
4. 드루팔의 기본적인 캐쉬 기능 admin/settings/performance 을 노멀(Normal)로 설정한다.
5. CRON을 반드시 활동토록 한다. 5분에서 15분 사이에 한번씩 호출 바란다.

적용하고 나서 캐쉬폴더를 살펴보면 아래와 같은 하위 폴더들이 저절로 생긴다.

파일형 캐쉬 fastpath_fscache 모듈파일형 캐쉬 fastpath_fscache 모듈

어떤가? 빨라졌는가? 혹 관리자로 로그인한 상태라면 그다시 효과가 없을 것이다.
익명 유저로 접근해 보면 확실히 빨라진 페이지 출력 속도를 경험할 것이다.

* 수정 : 2010년 8월 현재, 이 모듈은 드루팔 버전 6에서 베타판만 존재한다. 버전 5는 정식판을 지원한다.

Your rating: None 평균 : 5 (3 votes)

댓글

기쁜 소식이 하나

기쁜 소식이 하나 들어왔다.
본 fastpath_fscache모듈을 이용해서 한 커뮤니티 사이트를 튜닝했는데,
운영자로부터 속도가 빨라진 것 이외에 PV(페이지 뷰)가 많이 늘었다고 연락이 왔다.

아마도 평소에 방문자가 많아 페이지 열람이 늦었던 것이 이탈요인이었는데,
그것이 fscache모듈로 인해 해결된 것이 페이지 열람수 증가에도 도움이 된 것이다.

이와 비슷한 기능의 속도향상 모듈은, 이제 드루팔에서 필수 도입 요소인 셈이다!

고생고생하다가 발견한 팁 입니다. 드루팔 멀티사이트에

고생고생하다가 발견한 팁 입니다.

드루팔 멀티사이트에 적용시키실 때에는
(혹시나해서 사이트별로 tmp폴더를 따로 만들었습니다.)

기본 setup.php 설정
$conf = array(
'page_cache_fastpath' => 1,
'cache_inc' => 'sites/all/modules/fastpath_fscache/cache.fs.inc',
'file_cache' => '/tmp',
);
멀티 사이트용 setup.php 설정
$conf = array(
'page_cache_fastpath' => 1,
'cache_inc' => 'sites/all/modules/fastpath_fscache/cache.fs.inc',
'file_cache' => 'sites/[사이트명]/tmp',
);

이 글 보시는 다른 님들께 도움 되었으면 좋겠습니다.

taisei516님. 좋은 정보 공유해 주셔서

taisei516님. 좋은 정보 공유해 주셔서 감사합니다.

boost 모듈도 조사

boost 모듈도 조사 대상입니다.
http://drupal.org/project/boost