본문 바로가기

지적자본/워드프레스

워드프레스 트랙픽이 높아 버벅거릴때 cron 을 변경하라?

by 디런치 2025. 8. 28.

코딩을 전공한것도, 웹디자인을 전공한것도 아니기 때문에 매번 배우면서 워드프레스를 알아가고 있다. 필자가 운영하는 웹사이트의 리소스가 많아지고, 접속자들도 늘어나다보니 웹사이트가 버벅거리거나 CPU 점유율이 높아져 먹통이 되는 경우가 종종 있다.

 

예전에는 특정 해커나 공격자들의 봇의 공격인 경우가 많았고, 그 접속자들의 아이피를 알아내어서 차단하는 수준에서 처리하였다. 그러나 이제 그러한 접속자들을 처리하는 노하우가 생겼고, 잘 처리하고 있다고 생각했지만, 특별히 공격자가 없어도 버벅거림이 발생하기 시작했다.

 

그래서 쳇지피티와 제미나이에게 열심히 물어본 결과 워드프레스의 경우는 WP-cron을 비활성화하고 시스템 Cron으로 대체하면 웹사이트 성능을 크게 개선하고 안전성을 높일 수 있다고 한다. 필자도 잘 모르지만, WP-cron의 역할은 백업이나 스케줄러 같은 반복적인 자동화 역할을 하는 것인데, 일반적으로 워드프레스 사용자들이 호스팅을 임대해서 쓰거나 서버를 가지고 있지 못해서 시스템 Cron이 아닌 워드프레스 자체 Cron을 사용하라는 배려는 해준것인데, 이게 접속할 때마다 계속 리소스를 잡아먹어서 트래픽이 높으면 이것 때문에 버벅거린다는 것이다. 

 

그래서 이를 해결하기 위해서는 WP-cron을 비활성화하고 시스템 Cron으로 대체하는데, 그러면 워드프레스의 다양한 플러그인들이 WP-cron를 기반으로 작업되기 때문에 이것이 비활성화됨으로 5분간격으로 WP-cron를 실행시켜서 이 문제를 해결하면 된다는 것이다.

 

방법은 그렇게 어렵지 않다.

 

1. 자신의 wp-config.php에 아래를 추가

 

define('DISABLE_WP_CRON', true);

 

2. 터미널로 가서 ssh에 접속한다. (ssh admin@자신의 주소)

3. 패스워드 넣어서 ssh 접속

4. crontab -e 명력어 입력

5. 가장 하단으로 가서 'i'키를 누르면 편집모드로 들어감

6. 가장 하단에 자신의 WP-cron 경로를 포함한 아래 명령어를 추가한다.(/share/Web/wordpress/wp-cron.php)

 

*/5 * * * * /usr/bin/php /share/Web/wordpress/wp-cron.php > /dev/null 2>&1

 

7. ESC를 누르고 :wq 명령어를 누르면 된다.

8. 마지막으로 아래 명령어를 눌러 재시작한다.

 

crontab -l > /etc/config/crontab
/etc/init.d/crond.sh restart

 

 

반응형


댓글