Anomalie #1085
fermécrash 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
Fichiers
Mis à jour par Loïc Dachary il y a environ 12 ans
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..
Mis à jour par Loïc Dachary il y a environ 12 ans
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
Mis à jour par Loïc Dachary il y a environ 12 ans
- Fichier daemon.log daemon.log ajouté
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
Mis à jour par Loïc Dachary il y a environ 12 ans
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
Mis à jour par Loïc Dachary il y a environ 12 ans
(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 :)
Mis à jour par Loïc Dachary il y a environ 12 ans
Dans /var/log/apache2/error.log
[Mon Dec 10 04:42:23 2012] [error] (12)Cannot allocate memory: fork: Unable to fork new process
Mis à jour par Loïc Dachary il y a environ 12 ans
- Sujet changé de www.april.org ne fonctionne pas à crash mysql sur lsd : www.april.org down
Mis à jour par Loïc Dachary il y a environ 12 ans
/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
Mis à jour par Loïc Dachary il y a environ 12 ans
- Difficulté changé de 2 Facile à 3 Moyen
Mis à jour par Loïc Dachary il y a environ 12 ans
- Echéance changé de 10/12/2012 à 14/12/2012
Mis à jour par Loïc Dachary il y a environ 12 ans
(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: ----------------------------------------------------------------------------------
Mis à jour par Loïc Dachary il y a environ 12 ans
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/">
Mis à jour par Loïc Dachary il y a environ 12 ans
- Fichier vserver_rss-day.png vserver_rss-day.png ajouté
Mis à jour par Loïc Dachary il y a environ 12 ans
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.
Mis à jour par Loïc Dachary il y a environ 12 ans
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.
Mis à jour par Loïc Dachary il y a environ 12 ans
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:{} | +--------------------------------------------------------------+---------+-----+------+---------------------+----------+------+-----------------------------------+---------+-----------+------------+-----------+
Mis à jour par Loïc Dachary il y a environ 12 ans
http://www.april.org/admin/reports/status
Tâches de maintenance cron Dernière exécution il y a 23 heures 11 min
Mis à jour par Loïc Dachary il y a environ 12 ans
nouvelle demande a l'aide à mongolito404
Mis à jour par Loïc Dachary il y a environ 12 ans
- Version cible changé de Décembre 2012 (1/2) à Backlog
Mis à jour par Loïc Dachary il y a environ 12 ans
- Fichier vserver_rss-day-2012-12-15.png vserver_rss-day-2012-12-15.png ajouté
Mis à jour par theo _ il y a environ 12 ans
Limite passée à 3G :
vlimit -c 42 --rss 750000 vlimit -c 42 -S --rss 750000
Mis à jour par Loïc Dachary il y a environ 12 ans
- Version cible changé de Backlog à Décembre 2012 (1/2)
Mis à jour par Loïc Dachary il y a environ 12 ans
- Version cible changé de Décembre 2012 (1/2) à Décembre 2012 (2/2)
Mis à jour par Loïc Dachary il y a environ 12 ans
- Statut changé de En cours de traitement à Fermé
- % réalisé changé de 90 à 100
puppet agent sur lsd.ns1.vm.april-int et nagios.vm.april-int