워드프레스 3백만 페이지 만들 때 wp-admin/edit.php?post_type=page 병목현상 및 에러 질문입니다.
CMS/프레임워크 | WordPress |
---|---|
개발 언어 | PHP 8.2 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
서버 지식은 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까지 만들 때 필요한 서버 용량은 어느정도가 될까요?
댓글 2
서버 사양을 높인다고 해결되는 문제가 아닐 겁니다. 모든 프로그램은 용도에 맞게 쓰셔야 합니다.
워드프레스는 애초에 블로그를 운영하라고 만든 프로그램이지, 페이지는 보조적인 수단에 불과하기 때문에 그 부분에서 대량의 데이터를 처리할 수 있도록 설계하지 않았을 거예요. 워드프레스 기반으로 게시판이나 그 밖의 다른 기능을 구현해 놓은 플러그인들도 성능이 영 시원찮다는 평이 나오곤 하지요. XE 같은 게시판 중심의 프로그램들도 마찬가지입니다. 게시판에 글을 수백만 개 등록하는 것은 괜찮지만, 페이지는 수천 개만 만들어도 관리자 화면이 먹통이 되더군요.
꼭 페이지를 이용해서 사이트를 구성하셔야겠다면 DB의 슬로우 쿼리 기능과 PHP-FPM 자체의 슬로우 로그 기능을 사용하여 어디에 있는 어떤 쿼리가 가장 많은 시간을 잡아먹는지 파악한 후, 해당 부분을 직접 개조하셔야 합니다. 한 줄만 잘못 써도 세상의 모든 서버가 부족할 만큼 수억 배, 수조 배 더 비효율적인 구조를 만들어낼 수 있고, 반대로 한 가지 부가기능만 포기해도 로딩 시간을 1/100로 줄일 수 있는 것이 서버 튜닝의 세계입니다.^^