Cache

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

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

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

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

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

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

드루팔 성능/속도 올리기 제3탄 - 정기적 작업(크론, CRON)은 예상 외로 중요하다

드루팔에서 정기적 작업(크론, CRON)은 의외로 중요하다.

아니... 아주 중요하다.

어제 이와 관련된 글을 하나 댓글로 썼는데...
http://palpal.org/ko/node/287#comment-249

요약하자면, 정기적 작업인 크론이 제대로 작동하지 않아
accesslog와 watchdog테이블이 (오래된 내용을 삭제하는) 정리가 되지 못했다.
이로 인해 해당 드루팔 DB의 용량이 기하급수적으로 늘어나 백업에 문제가 됐다.

하지만 자세히 살펴보면 백업에만 문제가 되는 게 아니다...
팔팔.오알지의 경우에는 하루 하루 자동 백업을 하면서 CPU 부하 및 HDD 용량부담이
나날이 늘어났고 원인을 뒤늦게 발견해서 그 동안에 사이트 응답이 느린 적도 많았다.
(원래부터 한 서버에 11개의 사이트 운용으로 과중한 부하가 있어왔던 터라 위 문제는 더 심했다)

또한 드루팔 사이트 자체의 DB조회 및 그 응답속도에도 조금은 영향을 미치지 않았을까...

정기적인 크론을 설정하기 편한 Linux 박스의 경우에는 비교적 안정되지만,
호스팅 서버가 유저별로 크론을 지원하지 않거나 크론 설정 및 기동이 쉽지 않은
여타 OS서버의 경우, PoormansCron 모듈이나 Cron Plus 모듈을 대신 사용하곤 한다.

PoormansCron 모듈 - http://drupal.org/project/poormanscron
* 시스템적인 crontab 설정이 불필요해서 설정이 비교적 간단한 편이다. 자세히 보기 »

드루팔 성능/속도 올리기 제2탄 - 너도나도 알지만 종종 빼먹는, 성능 향상을 위한 캐싱 관리!

드루팔 속도 올리기 제2탄
- 너도나도 알지만 종종 빼먹는, 성능 향상을 위한 캐싱 관리!

드루팔 관리 > 사이트 설정 > 성능에서
Cache를 ON하고 캐싱 주기를 어느 정도 잡아주면 확실히 좀 더 빨라진다.
다만 이 기능은 갱신이 잦은 페이지에서는 새로운 컨텐츠의 반영이 느릴 수도 있다.

------------------------------------------------------------------

최근에, 예전부터 보유하고 있던 한 일본어판 드루팔 사이트의
테마를 바꾸는 작업에서 Sky 테마 ( http://www.palpal.org/node/157 )
가 엄청나게 느리게 화면에 출력되는 것을 느꼈다. (1번 현상)

다른 테마일 때보다 다소 더 느리게 느껴졌는데 그 원인은 아직 모른다.
하지만 그 와중에 엉뚱한 것을 해결하게 됐다.
원래 그 일본어판 사이트는 제법 PV가 높은 편이라 느린 것으로 생각했는데,
이제 보니... 드루팔의 캐쉬를 활성화하지 않았다는 것을 우연찮게 발견한 것이다.

평상시에 관리 > 사이트 설정 > 성능에서
캐슁 모드를 꼭 활성화했었는데... 아니, 이게 어느 틈에 꺼져 있는 걸까? (2번 현상)
캐싱 모드를 보통 (추천함, 부작용 없음)으로 설정하고 Sky 테마를 다시 보니
사이트의 출력 속도가 10배는 빨라진 것 같았다.

게으른 드루지기는 아직 1번 현상과 2번 현상의 원인을 모른다.
2번 현상은 어쩌면 착각인지도 모르겠다. 하지만 분-명-한 것은!

꺼진 불도 다시 보듯이, 자세히 보기 »

드루팔 성능/속도 올리기 제1탄 - 현상을 확인하고, 느린 원인을 찾아내기

드루팔 속도 올리기 제1탄
- 현상을 확인하고, 느린 원인을 찾아내기

드루팔 사이트가 느려지는 원인은 여러가지가 있을 수 있다.

너무 많은 모듈이 동시에 돈다든가, 서버 자체의 성능이 나쁘거나
DB에 부하가 심하게 걸리거나, 혹은 특정 모듈의 버그로 인해서 느려질수도 있다.

이렇게 다양한 원인을 정확하게 집어내려면,
먼저 문제 현상을 확인하는 것이 중요하다.
아니, 이미 느린 것은 아는데 무슨 현상 확인?

느린 것을 막연히 느리다고 표현하면 전문가가 아니다.
느린 경우의 상황과 해당 페이지 등을 좀 더 구체적으로 알아낼 필요가 있다.
예를 들어 항상 느린가? 아니면 특정 페이지에서 느린가?
아니면 어떤 모듈이 활성화되면 느린가? 언제, 무슨 기능을 추가한 뒤로부터 느려졌을까?
등등에 관한 자세한 정보가 있으면 더 명확한 원인을 진단, 정확한 문제해결까지 이루어 질 수 있다.

이런 경우에 쓸만한 측정툴이나 로그가 있으면 참 좋다.

1. (호스팅 회사에 따라 제공할수도 안할수도 있는데)
    MySQL 로그 중 SLOW QUERY 관련 로그를 보면 어떤 상황/모듈에서 느린지 알 수 있다.

2. Devel 이라는 모듈은 해당 페이지의 세부적인 SQL실행 속도를 모두 알려준다.

3. 특정 모듈은 하나씩 꺼 본다. 비활성화했을 때 사이트가 빨라지면 그 모듈이 원인일 가능성이 높다.

4. 모듈들의 버전과 관련 DB Schema을 확인해 본다.

5. 부하집중/해킹의 가능성은 없는지 웹로그 등을 분석해 본다. 자세히 보기 »

내용묶음