서버 지식은 1도 없지만 클라우드웨이즈를 이용해서 서버 직접 세팅했습니다. 문제가 생겼는데요, 워드프레스에 페이지를 3만개째 만들 때부터 https://krpages.com/wp-admin/edit.php?post_type=page에 병목현상이 발생해 에러가, 백만개째 만들면서 대부분의 페이지에 타임아웃 에러가 나서 16GB로 업스케일했습니다. 업스케일 및 RAM리밋을 서버와 어플리케이션 양쪽에 올려준 후에도 https://krpages.com/find/nose-bridge-filler/gwangyang-city/ 등 특정 계층구조 페이지는 무한로딩이 걸리고 https://krpages.com/wp-admin/edit.php?post_type=page에 병목현상은 그대로인 상태입니다.

카톡방에 여쭈었더니 DB랑 어플리케이션을 분리하라고 하시는데요. 어떻게 하는건가요? 또 계층구조로 페이지를 3.6mil까지 만들 때 필요한 서버 용량은 어느정도가 될까요?

  • profile

    서버 사양을 높인다고 해결되는 문제가 아닐 겁니다. 모든 프로그램은 용도에 맞게 쓰셔야 합니다.

     

    워드프레스는 애초에 블로그를 운영하라고 만든 프로그램이지, 페이지는 보조적인 수단에 불과하기 때문에 그 부분에서 대량의 데이터를 처리할 수 있도록 설계하지 않았을 거예요. 워드프레스 기반으로 게시판이나 그 밖의 다른 기능을 구현해 놓은 플러그인들도 성능이 영 시원찮다는 평이 나오곤 하지요. XE 같은 게시판 중심의 프로그램들도 마찬가지입니다. 게시판에 글을 수백만 개 등록하는 것은 괜찮지만, 페이지는 수천 개만 만들어도 관리자 화면이 먹통이 되더군요.

     

    꼭 페이지를 이용해서 사이트를 구성하셔야겠다면 DB의 슬로우 쿼리 기능과 PHP-FPM 자체의 슬로우 로그 기능을 사용하여 어디에 있는 어떤 쿼리가 가장 많은 시간을 잡아먹는지 파악한 후, 해당 부분을 직접 개조하셔야 합니다. 한 줄만 잘못 써도 세상의 모든 서버가 부족할 만큼 수억 배, 수조 배 더 비효율적인 구조를 만들어낼 수 있고, 반대로 한 가지 부가기능만 포기해도 로딩 시간을 1/100로 줄일 수 있는 것이 서버 튜닝의 세계입니다.^^

  • profile profile
    답변 감사합니다..! pages가 아닌 post에 등록하면 좀 나을까요? post도 hierarchical url structure을 설정하기 힘든 것을 제외하면 마음대로 레이아웃을 설정할 수 있긴 합니다. 클라우드웨이즈에서는 딱히 시간을 잡아먹는 쿼리가 없다고 합니다. 페이지 갯수를 포기하는 것도 가능하긴 하지만 꼭 3.6mil개 만들어보고 싶습니다.