드루팔 속도 , 서버와의 통신 및 응답속도 문제

안녕하세요. 약 2년간의 드루팔 사이트 운용결과
접속속도가 너무 느리다는 결론에 도달했습니다.
boost 등 속도관련 모듈을 사용해봐도
일단 기본적인 서버 응답속도 쪽에서 너무 많은 시간이 소요됩니다.
데이터가 많이 쌓이면 쌓일수록 더 느려지는것 같네요.
하지만 drupal.org 에 가보면 딱히 느리다는 생각이 들지 않습니다.
글작성이나 그 수많은 DB 검색시에도 아주 빠른데..
Drupal 의 속도를 느리게 하는 직접적인 모듈이나 원인을 찾아보고 싶습니다.

1. field 구성은 하나의 필드로 여러 컨텐트타입에서 쓰는것이 빠른지? 아니면 컨텐트타입마다 다른 field 명을 만들어 내는것이 빠른것인지요?
2. home 화면은 빠른데 특정 컨텐트 타입이 느리다면 그때 작동하는 모듈을 보는 방법이 따로 있을까요?
3. 특정 모듈때문에 사이트가 느리다면.. 요놈을 좀 찾고 싶은데.. 현재 약 40여개의 모듈이 설치가 되어있어 하나하나 찾기가 힘이듭니다.
워드 프레스 같은경우 P3 (Plugin Performance Profiler) 같은 플러그인이 있어 어떤 플러그인이 느린지 찾을수 있는데 드루팔에도 혹시 그런모듈이 있을까요?

제대로 된 답변을 드리기 어려울 정도로 경험많고

제대로 된 답변을 드리기 어려울 정도로
경험많고 난이도 높은 질문인 것 같습니다.

질문 3개 모두 손발 다 들고, 나름 생각하는 별도 방향으로 접근해 보렵니다.

본 팔팔오알지 사이트의
http://palpal.org/taxonomy/term/167/all
"드루팔 성능/속도 올리기 끝판 - 드루팔 성능 향상에 대한 모듈 비교 문서"
는 이미 살펴보셨을 것 같은데 혹시나 해서 다시 기록해 둡니다.

cotnal2님의 문제해결 접근 방식은 올바른 방향인 것 같습니다.
먼저 현상을 조사하기 위해 여러 프로파일링 툴을 찾는 것 같군요.

좋은 모듈을 알게 되면 기록해 놓도록 하겠습니다.

며칠동안 저희 사이트의 여러부분에 대해서 속도를

며칠동안 저희 사이트의 여러부분에 대해서 속도를 측정해 보았습니다.
Apache 서버에서 NGINX 로도 바꿔보고
모듈을 하나하나 제거해 가면서 속도도 측정해 보고 (APACHE 의 AB 툴 사용) 해 봤습니다만
아직 왜 속도가 현저하게 떨어지는지 정확히 잘 모르겠습니다.
일단 그 동안 찾은 병목현상의 원인은
1. 각 테마파일에서 커스텀으로 작성된 쿼리요청이 너무 많음 (user_load , node_load)
2. View 에서 쿼리요청이 너무 많음 ( view 리스트에 많은 내용과 기능이 들어가 있을수록 느려짐 )
3. 각 UI 모듈이 DOM 갯수를 현저하게 늘림
4. JS 및 CSS 파일들을 테마파일에 넣었을 경우 드루팔에서 이것들을 하나로 합치지 못함
이 정도 입니다. 추가적으로 업데이트 되는 내용이 있으면 더 적어놓도록 하겠습니다.

cotnals2님. 답변이 너무 늦었습니다만, 올리신

cotnals2님. 답변이 너무 늦었습니다만, 올리신 귀한 경험과 사례를 접하고, 나름 드는 생각이 있어 기재해 봅니다.
다소 포커스가 맞지 않을 가능성이 있는 코멘트입니다만, 혹시나 해서 기록해 봅니다.

>> 1. 각 테마파일에서 커스텀으로 작성된 쿼리요청이 너무 많음 (user_load , node_load)

드루지기도 오픈소스계 CMS 사이트 작성시에 이 문제로 고민한 적인 있습니다.
Drupal뿐만 아니라 워드프레스 등의 유명 CMS들이 테마에 많은 로직기능을 넣는 구조라
MVC 패턴에 위배되는 상황이 빈번, 성능 저하를 유발하고 있는 것 같습니다.

최근에 지인이 워드프레스 MVC(커스터마이징)를 구현해 너무 부러워하고 있습니다만,
하루 속히 드루팔도 MVC 개념이 대폭 반영된 버전이 나오기를 기대하고 있습니다.
(본 글 읽으시는 여타 분들께 : 왜 저희 드루지기들이 MVC 버전을 직접 안만드냐구요?
죄송하게도, 엄청 게으른 사람들입니다. 또는 본업이 너무 바빠서 여력이 없기도 하구요)

>> 2. View 에서 쿼리요청이 너무 많음 ( view 리스트에 많은 내용과 기능이 들어가 있을수록 느려짐 )

이미 시도해 보셨을 것 같기도 한데요, 뷰 자체의 캐쉬 기능은 이용해 보니 어떠시던가요?

>> 4. JS 및 CSS 파일들을 테마파일에 넣었을 경우 드루팔에서 이것들을 하나로 합치지 못함

클라이언트(브라우저)단에서는 로딩 속도 개선은, 브라우저의 프로파일링 플러그인, 혹은
웹페이지 로딩 분석툴 사이트를 이용해서 진단받곤 합니다. 이것 역시 이미 아실 듯.
예) 구글 인사이트 https://developers.google.com/speed/pagespeed/insights/

어찌됐던, 귀한 경험과 정보의 공유, 감사합니다!

답변감사합니다. 저도 View 에 따로 캐쉬가

답변감사합니다.
저도 View 에 따로 캐쉬가 있다는걸 최근에서야 알게 되었네요. 시도해봤는데, 아직 큰 차이점은 느끼지 못했습니다.
사이트 DB 가 수시로 업데이트되고 바뀌는 터라 캐쉬가 큰 성능을 내기가 힘드네요.
현재 버젼 2 의 사이트를 만들면서 각 모듈을 최소화 하고 직접 DB 에 꼭 필요한 부분들만 추려내서 작업을 하고있습니다.
특히 AJAX MENU CALLBALL 을 이용하여 전체 페이지 호출없이 작업을 하니 그나마 좀 나아져보이는 느낌입니다.
잔기술들만 늘고 있네요..
드루지기님께서 말씀하신 MVC .. 정말 저도 원하는 부분입니다.
Drupal 에 대해 알면 알수록 각 항목에 꼭 필요하지 않은 너무 많은 정보들이 수록되어있다는걸 알게 되네요.
드루팔로 개발되었다는 (놀랍도록 빠른) 사이트들을 보면 꼭 직접 튜닝작업을 했다는 말이 나오곤 합니다만.
어떤식으로 어떻게 했는지에 대한건 꼭 비밀로 부치는것 같습니다.

얼마전 워드프레스로 전향하기 위해 한번 쿼리호출과 커스텀 폼 생성쪽을 봤는데..
많은 사람들이 편하다는 워드프레스가 저에겐 암 걸릴거 같더군요.
드루팔이 정말 위대한 툴이긴 한가봅니다.

하나 좋은 팁을 업데이트 합니다. Menu

하나 좋은 팁을 업데이트 합니다.
Menu callback 을 이용한 Ajax 호출방법 입니다.
사실 드루팔에만 이용되는건 아니지만 데이터가 많은 views 나 컨텐트, 이미지들을
나중에 불러오는 방식으로 설계하면 이용자의 느낌상 사이트가 빠르다는 느낌을 줄수 있습니다
https://www.drupal.org/node/2046693

좋은 팁, 공유해 주셔서 감사합니다.

좋은 팁, 공유해 주셔서 감사합니다.