Anomalie #1085
closedcrash mysql sur lsd : www.april.org down
Description
Symptome: la page de garde dit que le serveur mysql est cassé
Cause: il n'y a plus assez de mémoire disponible. Ce n'est pas du a une consomation excessive mais plutot a une quantité de RAM insuffisante ( 800MB ).
Fix: augmenter la RAM pour mettre 3GB. Le host ns1 a suffisament de RAM pour ça : il y a 5GB dans le cache.
Ajouter une remonté d'alerte nagios via munin : ça avertit des congestions de ressources.
On voit un pic de consomation mémoire:
Interruption de service entre 4:00 et 8:10 le 10 décembre 2012.
Interruption de service entre 12:00 et 14:00 le 15 décembre 2012.
Bien que rien n'apparaisse dans les logs mysql, les logs apache montrent dans le même temps:
[Mon Dec 10 04:42:23 2012] [error] (12)Cannot allocate memory: fork: Unable to fork new processTODO:
drupal a une sorte de crontab interne. Peut-etre qu'il décide de faire qqc a 4:00 ?followup thread avec mongolito404 sur les cron drupal- ajouter une alerte nagios
Files
Updated by Loïc Dachary almost 12 years ago
ssh -t -A root@ns1.april.org vserver lsd enter # april.org root@lsd:/# /etc/init.d/mysql start Starting MySQL database server: mysqld. Checking for corrupt, not cleanly closed and upgrade needing tables..
Updated by Loïc Dachary almost 12 years ago
root@lsd:/# ls -ld /var/log/mysql* drwxr-s--- 2 mysql adm 4096 14 juil. 2010 /var/log/mysql -rw-r----- 1 mysql adm 0 18 juil. 12:03 /var/log/mysql.err -rw-r----- 1 mysql adm 0 10 déc. 06:25 /var/log/mysql.log -rw-r----- 1 mysql adm 20 9 déc. 06:26 /var/log/mysql.log.1.gz -rw-r----- 1 mysql adm 20 8 déc. 06:25 /var/log/mysql.log.2.gz -rw-r----- 1 mysql adm 20 7 déc. 06:25 /var/log/mysql.log.3.gz -rw-r----- 1 mysql adm 20 6 déc. 06:25 /var/log/mysql.log.4.gz -rw-r----- 1 mysql adm 20 5 déc. 06:26 /var/log/mysql.log.5.gz -rw-r----- 1 mysql adm 20 4 déc. 06:26 /var/log/mysql.log.6.gz -rw-r----- 1 mysql adm 20 3 déc. 06:26 /var/log/mysql.log.7.gz
aucun logs mysql
Updated by Loïc Dachary almost 12 years ago
- File daemon.log daemon.log added
mysql s'est arreté plusieurs fois et réclame que ses bases soient réparées ( voir attachement:daemon.log )
Dec 10 04:02:46 lsd mysqld_safe: Number of processes running now: 0 Dec 10 04:02:46 lsd mysqld_safe: mysqld restarted
vers 4h00 du matin mysql_safe semble avoir abandonné et n'a pas relancé a 8h00
Updated by Loïc Dachary almost 12 years ago
re-démarrages des 15 derniers jours, toujours vers 4h00
daemon.log:Dec 10 04:02:46 lsd mysqld_safe: Number of processes running now: 0 daemon.log:Dec 10 04:10:19 lsd mysqld_safe: Number of processes running now: 0 daemon.log:Dec 10 04:10:26 lsd mysqld_safe: Number of processes running now: 0 daemon.log:Dec 10 04:10:52 lsd mysqld_safe: Number of processes running now: 0 daemon.log:Dec 10 04:11:50 lsd mysqld_safe: Number of processes running now: 0 daemon.log:Dec 10 04:12:09 lsd mysqld_safe: Number of processes running now: 0 daemon.log:Dec 10 04:17:29 lsd mysqld_safe: Number of processes running now: 0 daemon.log:Dec 10 04:17:50 lsd mysqld_safe: Number of processes running now: 0 daemon.log:Dec 10 04:43:52 lsd mysqld_safe: Number of processes running now: 0 daemon.log.1:Dec 3 04:01:16 lsd mysqld_safe: Number of processes running now: 0 daemon.log.1:Dec 3 04:02:25 lsd mysqld_safe: Number of processes running now: 0 daemon.log.1:Dec 3 04:02:28 lsd mysqld_safe: Number of processes running now: 0 daemon.log.1:Dec 3 04:02:54 lsd mysqld_safe: Number of processes running now: 0 daemon.log.1:Dec 3 04:07:31 lsd mysqld_safe: Number of processes running now: 0 daemon.log.1:Dec 3 04:07:38 lsd mysqld_safe: Number of processes running now: 0 daemon.log.1:Dec 3 04:08:05 lsd mysqld_safe: Number of processes running now: 0 daemon.log.1:Dec 3 04:08:19 lsd mysqld_safe: Number of processes running now: 0 daemon.log.3.gz:Nov 26 04:11:58 lsd mysqld_safe: Number of processes running now: 0 daemon.log.3.gz:Nov 26 04:20:24 lsd mysqld_safe: Number of processes running now: 0 daemon.log.4.gz:Nov 19 04:19:41 lsd mysqld_safe: Number of processes running now: 0
Updated by Loïc Dachary almost 12 years ago
(09:58:26 AM) dachary: il doit se passer un truc vers 4h00 (09:58:32 AM) dachary: qui lui plait pas du tout (10:00:00 AM) benj: bah c'est pas cron.daily ? (10:00:32 AM) Sp4rKy: 3 et 10 decembre (10:00:35 AM) Sp4rKy: 19 et 26 nov (10:00:38 AM) Sp4rKy: c'est le weekly je pense :)
Updated by Loïc Dachary almost 12 years ago
Dans /var/log/apache2/error.log
[Mon Dec 10 04:42:23 2012] [error] (12)Cannot allocate memory: fork: Unable to fork new process
Updated by Loïc Dachary almost 12 years ago
- Subject changed from www.april.org ne fonctionne pas to crash mysql sur lsd : www.april.org down
Updated by Loïc Dachary almost 12 years ago
/etc/cron.weekly/apt-xapian-index
# time bash -x /etc/cron.weekly/apt-xapian-index + CMD=/usr/sbin/update-apt-xapian-index + egrep -q '(envID|VxID):.*[1-9]' /proc/self/status + which on_ac_power + on_ac_power + ON_BATTERY=255 + '[' 255 -eq 1 ']' + '[' -x /usr/sbin/update-apt-xapian-index ']' + '[' -x '' ']' + nice -n 19 /usr/sbin/update-apt-xapian-index --update --quiet real 0m10.149s user 0m7.152s sys 0m0.360s
Updated by Loïc Dachary almost 12 years ago
- Difficulté changed from 2 Facile to 3 Moyen
Updated by Loïc Dachary almost 12 years ago
- Due date changed from 12/10/2012 to 12/14/2012
Updated by Loïc Dachary almost 12 years ago
(10:29:30 AM) dachary: harmine:/etc/backuppc/ns1.april.org.pl appelle /home/backuppcnode/backup/backup.sh backup.cf sur ns1.april.org (10:45:48 AM) ***dachary lit ns1.april.org:/srv/backup/log qui s'est lancé a ... 4:00 (10:47:10 AM) dachary: mais rien de probant (10:47:23 AM) dachary: ---------------------------------------------------------------------------------- (10:47:23 AM) dachary: Vserver lsd (10:47:23 AM) dachary: No backup script (10:47:23 AM) dachary: ----------------------------------------------------------------------------------
Updated by Loïc Dachary almost 12 years ago
Les logs www.april.org sont sur ns1.april.org vserver nginx /var/log/nginx/www.april.org/www.april.org.access_log
Author: Loic Dachary <loic@dachary.org> Date: Mon Dec 10 11:31:25 2012 +0100 indication sur l'emplacement ou trouver les logs www.april.org diff --git a/apache2/sites-available/default-drupal6 b/apache2/sites-available/default-drupal6 index 5ec3ab5..02ab0dc 100644 --- a/apache2/sites-available/default-drupal6 +++ b/apache2/sites-available/default-drupal6 @@ -34,6 +34,7 @@ # alert, emerg. LogLevel warn + # Les logs www.april.org sont sur ns1.april.org vserver nginx /var/log/nginx/www.april.org/www.april.org.access_log CustomLog /dev/null combined Alias /doc/ "/usr/share/doc/"
commit 185796d78be37985d9cb7ed67a9c3fc9c6cb575c Author: root <root@template-lenny.april-int> Date: Sun Oct 31 11:27:18 2010 +0100 No more apache access log. All access logs are handeled by nginx. diff --git a/apache2/sites-available/default-drupal6 b/apache2/sites-available/default-drupal6 index 2318e2e..120e5a0 100644 --- a/apache2/sites-available/default-drupal6 +++ b/apache2/sites-available/default-drupal6 @@ -27,7 +27,7 @@ # alert, emerg. LogLevel warn - CustomLog /var/log/apache2/access.log combined + CustomLog /dev/null combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/">
Updated by Loïc Dachary almost 12 years ago
- File vserver_rss-day.png vserver_rss-day.png added
Updated by Loïc Dachary almost 12 years ago
mongolito404:
Sur un serveur correctement configuré pour Drupal, il y a normalement une tâche cron unique pour Drupal qui roule entre toutes les heures et les 10min selon les besoins et les préférences du sysadmin qui l'a configuré.
La tâche cron elle même est assez simple. Soit un appel HTTP vers cron.php, soit une commande Drush. Dans les deux cas le résultat est le même, Drupal execute toutes les implementations de hook_cron() de tous les modules actifs.
Updated by Loïc Dachary almost 12 years ago
mongolito404:
Par défaut, le watchdog Drupal met ses message en DB (dans la tabel watchdog, grace au module dblog activé par défaut). Ces logs sont accessibles depuis une page d'administration (appelée rapport d'événements en fr). Ou directement en DB via une requete genre de "SELECT DATE_FORMAT(FROM_UNIXTIME(timestamp), '%Y %c %d - %H:%i:%s'), watchdog.* FROM watchdog WHERE type = 'cron' ORDER by timestamp" Le module syslog est aussi souvent utilisé pour envoyer les logs vers le syslog sytème, et dans ce cas les logs sont dans les fichiers dans lesquels syslog est configuré pour les mettre.
Updated by Loïc Dachary almost 12 years ago
root@lsd:/# mysql -e "SELECT DATE_FORMAT(FROM_UNIXTIME(timestamp), '%Y %c %d - %H:%i:%s'), watchdog.* FROM watchdog WHERE type = 'cron' ORDER by timestamp" drupal6 +--------------------------------------------------------------+---------+-----+------+---------------------+----------+------+-----------------------------------+---------+-----------+------------+-----------+ | DATE_FORMAT(FROM_UNIXTIME(timestamp), '%Y %c %d - %H:%i:%s') | wid | uid | type | message | severity | link | location | referer | hostname | timestamp | variables | +--------------------------------------------------------------+---------+-----+------+---------------------+----------+------+-----------------------------------+---------+-----------+------------+-----------+ | 2012 12 12 - 00:00:37 | 4069093 | 0 | cron | Cron run completed. | 5 | | http://localhost/drupal6/cron.php | | 127.0.0.1 | 1355266837 | a:0:{} | | 2012 12 12 - 00:01:05 | 4069100 | 0 | cron | Cron run completed. | 5 | | http://localhost/drupal6/cron.php | | 127.0.0.1 | 1355266865 | a:0:{} | +--------------------------------------------------------------+---------+-----+------+---------------------+----------+------+-----------------------------------+---------+-----------+------------+-----------+
Updated by Loïc Dachary almost 12 years ago
http://www.april.org/admin/reports/status
Tâches de maintenance cron Dernière exécution il y a 23 heures 11 min
Updated by Loïc Dachary almost 12 years ago
nouvelle demande a l'aide à mongolito404
Updated by Loïc Dachary almost 12 years ago
- Target version changed from Décembre 2012 (1/2) to Backlog
Updated by Loïc Dachary almost 12 years ago
Updated by theo _ almost 12 years ago
Limite passée à 3G :
vlimit -c 42 --rss 750000 vlimit -c 42 -S --rss 750000
Updated by Loïc Dachary almost 12 years ago
- Target version changed from Backlog to Décembre 2012 (1/2)
Updated by Loïc Dachary almost 12 years ago
- Target version changed from Décembre 2012 (1/2) to Décembre 2012 (2/2)
Updated by Loïc Dachary almost 12 years ago
- Status changed from En cours de traitement to Fermé
- % Done changed from 90 to 100
puppet agent sur lsd.ns1.vm.april-int et nagios.vm.april-int