WordPress : load important à cause de la tâche cron

Premiers symptômes

Le blog est down!!

Voilà ce que j’ai pu observer sur un serveur hébergeant un site sous WordPress :

$ w

18:21:28 up 104 days, 2:05, 3 users, load average: 121.49, 116.51, 105.74
[...]

$ tail -f access.log | grep_and_awk_magic
[...]
xxx.xxx.xxx.xxx - - [23/Aug/2016:18:16:59 +0200] "POST /wp-cron.php?doing_wp_cron=1471968693.4946770668029785156250 HTTP/1.0" 200 - "-" "WordPress/4.5.3; http://leblog.com" 224/224821178
xxx.xxx.xxx.xxx - - [23/Aug/2016:18:16:59 +0200] "POST /wp-cron.php?doing_wp_cron=1471968692.3692688941955566406250 HTTP/1.0" 200 - "-" "WordPress/4.5.3; http://leblog.com" 224/224903575
xxx.xxx.xxx.xxx - - [23/Aug/2016:18:18:17 +0200] "POST /wp-cron.php?doing_wp_cron=1471968868.4862370491027832031250 HTTP/1.0" 200 - "-" "WordPress/4.5.3; http://leblog.com" 148/148257345
xxx.xxx.xxx.xxx - - [23/Aug/2016:18:17:22 +0200] "POST /wp-cron.php?doing_wp_cron=1471968716.2659339904785156250000 HTTP/1.0" 200 - "-" "WordPress/4.5.3; http://leblog.com" 203/203774409
[...]

Comme c’est bizarre… la machine s’appelle elle-même…

Pour effectuer des tâches périodiques, WordPress utilise un système où à chaque requête il exécute un mécanisme pour vérifier si il y a des tâches à déclencher.

Malheureusement, en cas de fort traffic, il se peut que ce système ce tire une balle dans le pied en augmentant la charge du serveur.

Correction du problème

Pour corriger le problème, vous pouvez désactiver tout simplement ce mécanisme dans la configuration WordPress et mettre en place une tâche cron des familles.

wp-config.php

define('DISABLE_WP_CRON', true);

crontab -e

42 * * * *      cd /blog && php wp-cron.php

 

 

admin