해외에서는 제휴 프로그램을 통한 블로그 수익화가 활발히 이루어지고 있지만, 국내에서는 제휴 프로그램이 활성화되지 않다가 쿠팡이 파트너스 프로그램을 시작하면서 많은 블로그와 뉴스 사이트 등에서 쿠팡 제휴 프로그램을 통해 수익화를 시도하고 있습니다.
저는 비교적 초기에 쿠팡 상품을 소개하는 워드프레스 블로그로 몇 달 정도는 제법 괜찮은 수익을 얻었지만, 구글에서 저품질로 색인이 사라지면서 수익이 폭망한 경험이 있습니다. 해당 블로그에 현재 만 개가 넘는 포스트가 있는데, 과도한 DB 쿼리로 인해 서버 과부하 문제가 간헐적으로 발생하고 있습니다.

과도한 워드프레스 DB 쿼리로 인한 서버 과부하 문제 대응하기
과도한 DB 쿼리로 인해 서버 리소스 문제가 발생하는 경우 문제의 원인을 파악하여 사이트를 최적화하는 시도를 해야 합니다. 저는 해당 사이트가 사실상 망했기 때문에 클라우드웨이즈에서 케미클라우드로 이전했습니다. 하지만 케미클라우드에서 알림이 날아왔습니다.
During our investigation into recent server performance issues, we identified that MySQL activity associated with your account is causing elevated disk I/O, leading to overall performance degradation on the server and I/O faults on your account.
최근 서버가 느려지는 문제를 조사한 결과, 고객님의 계정에서 실행되는 데이터베이스 작업이 디스크에 과부하를 일으켜 서버 전체 성능이 떨어지고 고객님 사이트에도 오류가 발생하고 있습니다.
이 알림을 무시했더니 48시간 안에 답변을 하지 않으면 문제가 해결될 때까지 사이트 접속을 일시적으로 차단한다는 경고성 이메일을 보내왔습니다.😥
Please note that if we don’t hear back from you in the next 48 hours, we will be forced to temporarily disable the web to your website until the matter is addressed.
케미클라우드와 협의하여 문제의 원인을 파악하여 문제 해결을 시도했습니다.
사이트에서 검색을 하면 전체 DB 테이블을 스캔하면서 I/O 리미트를 초과하는 문제가 발생하고 있었습니다. 저는 글이 1만 개가 넘어서 이런 현상이 발생하는 것이 아닌가 생각했지만, 케미클라우드에 의하면 단순히 글 개수가 많다고 해서 이런 문제가 발생하는 것은 아니라고 하네요.
이 문제는 단순히 포스트 개수가 많아서 발생한 것이 아니라, 비효율적인 검색 쿼리와 데이터베이스 구조가 주된 원인입니다. 11,000개의 포스트 자체는 문제가 아니지만, Yoast SEO의 검색 기능이 매 검색마다 전체 테이블을 스캔하고 복잡한 정렬 작업을 수행하면서 과도한 디스크 I/O를 발생시켰습니다.
SQL_CALC_FOUND_ROWS와 ORDER BY CASE WHEN 구문은 MySQL이 임시 인덱스를 생성하고 모든 행을 검토하도록 강제하여, 대량의 데이터가 있을 때 성능 저하를 심화시킵니다.
공유 호스팅 환경에서는 리소스가 제한되어 있어 이러한 문제가 더욱 두드러집니다. 검색 요청이 들어올 때마다 post_title, post_excerpt, post_content 필드를 동시에 검색하고 관련성 순으로 정렬하는 작업은 CPU와 I/O 자원을 급격히 소모합니다. 특히 크롤러나 봇이 사이트를 방문할 때 이러한 쿼리가 연속적으로 실행되면 서버 전체의 성능에 영향을 미치게 됩니다.
추가로, WP-Cron의 자동 실행, 과도한 크롤링, 그리고 캐싱 최적화 부족 등이 복합적으로 작용하여 리소스 사용량을 증가시켰습니다. 멀티사이트 환경에서는 각 서브사이트의 리소스 사용이 누적되므로, 단일 사이트보다 더 신중한 최적화가 필요합니다.
검색 기능이 중요하지 않아서 Disable Search라는 플러그인을 설치하여 검색 기능을 비활성화했습니다. 이 조치로 유의미한 진전이 있었지만, 여전히 문제가 발생한다면서 ChemiCloud에서 다음과 같은 조치를 추가로 제안했습니다.
- 워드프레승서 WP-Cron 비활성화
- robots.txt에서 Crawl-Delay 설정
- LiteSpeed Cache Heartbeat 비활성화 또는 제한
- 클라우드플레어 활성화
케미클라우드는 가성비 좋은 해외 공유호스팅으로 방문자 수가 많지 않거나 소규모 사이트 운영에 적합합니다. 과도한 트래픽이 발생하거나 최적화가 되지 않아서 서버 과부하가 발생하는 사이트의 운영에는 적합하지 않습니다.
과도한 DB 쿼리 작업으로 인해 서버에 과도한 부담을 주거나 디도스 공격 등이 발생하여 트래픽이 폭등할 경우 서버 내의 다른 호스팅 사용자들에게 피해를 주므로 호스팅 업체에서는 해당 계정을 제한하거나 퇴출시킬 수밖에 없습니다.
그래도 케미클라우드는 문제 해결에 적극적으로 도움을 주려고 노력하네요. 이 과정에서 사이트 최적화와 관련하여 많은 것을 배우게 되었습니다.😄
블루호스트와 비슷한 레벨의 해외 공유호스팅 서비스 업체인 케미클라우드는 지난해 서울 서버를 도입하여 우리나라에서도 빠른 속도를 제공합니다. 이 때문에 우리나라에서 사용자들이 크게 증가했습니다.