WPチューニング

WordPressの性能チューニング(cron)

  

ご注意下さい

この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。

0
(0)

久々にWordPressにアクセスしてみたら、異様に初期表示までに時間がかかることが判明し@ITの「とにかく速いWordPress」の一連の記事を見ながらチューニングを実施してきました。

その中でab(apache bench)を使って性能測定していたのですが、異様にレスポンスが早い時と、遅い時があったので、ログをtail -fで表示させながらabを実行していたところ、どうもwp-cron.phpというものが定期的に実行されており、この実行に体感で5秒程度かかっていそうなことが判明しました。

218.45.184.224 - - [06/Nov/2016:11:55:21 +0900] "POST /wp-cron.php?doing_wp_cron=1478400921.7104580402374267578125 HTTP/1.1" 200 - "https://blog.kamata-net.com/wp-cron.php?doing_wp_cron=1478400921.7104580402374267578125" "WordPress/4.6.1; https://blog.kamata-net.com"
218.45.184.224 - - [06/Nov/2016:11:55:21 +0900] "GET / HTTP/1.0" 200 102759 "-" "ApacheBench/2.3"
218.45.184.224 - - [06/Nov/2016:11:55:21 +0900] "GET / HTTP/1.0" 200 102759 "-" "ApacheBench/2.3"
218.45.184.224 - - [06/Nov/2016:11:55:21 +0900] "GET / HTTP/1.0" 200 102759 "-" "ApacheBench/2.3"
218.45.184.224 - - [06/Nov/2016:11:55:21 +0900] "GET / HTTP/1.0" 200 102759 "-" "ApacheBench/2.3"

連続して同じURLにアクセスがあった場合には実行されないので、abのように同一URLにアクセスを繰り返す場合には一発目が遅いのみですが、都度違うURLにアクセスがあるような場合は毎回wp-cron.phpが実行されパフォーマンスにも影響しますし、リソースの無駄遣いとなります。

そこでまずはwp-config.phpをいじってwp-cronが実行されないように強制的に停止することとします。以下のように7行目を追加しましょう。

/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

define('DISABLE_WP_CRON', 'true');

停止してしまったwp-cron.phpは定期的に実行してあげないと、バックアップや自動投稿などができなくなってしまいますので、OSの機能(cron)で実行することとします。CentOS7の場合は、/etc/cron.hourly配下に0wp-cron.cronファイルとして以下のファイルを作成します。

#!/bin/bash

# Action!
exec /usr/bin/wget -q -O - https://blog.kamata-net.com/wp-cron.php

これで「だいたい」1時間に1回wp-cron.phpが実行されることとなります。さらに頻度を短くしたい場合には以下の続編もご覧ください。

WordPress
WordPressの性能チューニング(cron)続編
WordPressのパフォーマンスに大きな影響を及ぼすwp-cron.phpをOSから定期的に起動する設定方法のご紹介です。今回は1時間ごとではなく、 …

続きを見る

記事は以上!

この記事は役に立ちましたか? | Is this article useful for you?

評価をお願いします | Please leave your rating.

平均 | Av.: 0 / 5. 投票数 | Votes: 0

最初の評価を下さい | Please vote for the first rating.

-WPチューニング
-, , , ,

© 1999 - 2021 蒲田ネット