このブログがあるレンタルサーバーのCPU負荷を下げた話です。
まず、このグラフをご覧ください。
これは、レンタルサーバーのサービスが提供している、CPU負荷のグラフです。WordPressで使いまくってる「PHP」でサーバーにCPU負荷をかけると上昇します。
12月3日から、いきなりほぼ0になってますよね。これ、何をしたかというと・・・
![](https://hombre-nuevo.com/wp-content/uploads/2014/07/wordpress-logo-notext-rgb.png)
・WordPressのcronを無効にする
(既定の設定では、アクセスがあるたびに wp-cron.php が動く)
・代わりにレンタルサーバーの提供しているcronを使って、1日数回 wp-cron.php を呼び出すようにする(以下のようなシェルスクリプトを動かす)
#!/bin/sh
cd /virtual/○○/public_html/
printf “\n—cron.sh akira-dq.net start—\n” > cron.log
curl -i -s http://akira-dq.net/wp-cron.php >> cron.log
printf “\n—cron.sh akira-dq.net end—\n” >> cron.log
「http://akira-dq.net/wp-cron.php」にはアクセス制限をかけてて、レンタルサーバー自身のIPアドレス以外は拒否しています。
<Files wp-cron.php>
Order deny,allow
Deny from all
Allow from ○○.○○.○○.○○
</Files>
.htacces にこれ書いてる(○○.○○.○○.○○はレンタルサーバーのIPアドレス)
その結果が冒頭のグラフ。
もう完全に wp-cron.php のせいだったとしか。
元々は、負荷対策というより、wp-cron.php にアクセスしてる人(BOT)がいて気持ち悪いなぁ、と思ってアクセス制限するところから始めて、予約投稿をちゃんと動かしながら制限する方法は・・・という流れで調べました。
![あきら](https://akira-dq.net/wp-content/uploads/2023/06/cropped-akira.jpg)
1日に1万回アクセスあったら、それなりに重い処理が1万回動いてたのかなぁ?それなら、1万回→8回(現在の設定)に減って劇的に改善したのも分かる。頻度を減らすような簡単なオプション設定でもあれば・・・