Project

General

Profile

Anomalie #1085

crash mysql sur lsd : www.april.org down

Added by Loïc Dachary over 9 years ago. Updated over 9 years ago.

Status:
Fermé
Priority:
Immédiate
Assignee:
Category:
Task
Target version:
Start date:
12/10/2012
Due date:
12/14/2012
% Done:

100%

Estimated time:
Spent time:
Difficulté:
3 Moyen

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.
vserver_rss-day
Interruption de service entre 12:00 et 14:00 le 15 décembre 2012.
vserver_rss-day 15 decembre 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 process

TODO:

Files

daemon.log (20.5 KB) daemon.log daemon.log Loïc Dachary, 12/10/2012 09:50 AM
vserver_rss-day.png (54.8 KB) vserver_rss-day.png vserver_rss-day Loïc Dachary, 12/10/2012 11:41 AM
vserver_rss-day-2012-12-15.png (55.9 KB) vserver_rss-day-2012-12-15.png vserver_rss-day 15 decembre 2012 Loïc Dachary, 12/15/2012 02:34 PM

Related issues

Has duplicate Admins - Anomalie #1109: base gdtc inaccessibleRejeté12/15/2012

Actions

History

#1

Updated by Loïc Dachary over 9 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..
#2

Updated by Loïc Dachary over 9 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
#3

Updated by Loïc Dachary over 9 years ago

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

#4

Updated by Loïc Dachary over 9 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

#5

Updated by Loïc Dachary over 9 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 :)
#6

Updated by Loïc Dachary over 9 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

#7

Updated by Loïc Dachary over 9 years ago

  • Subject changed from www.april.org ne fonctionne pas to crash mysql sur lsd : www.april.org down
#8

Updated by Loïc Dachary over 9 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

#9

Updated by Loïc Dachary over 9 years ago

  • % Done changed from 100 to 90
#10

Updated by Loïc Dachary over 9 years ago

  • Difficulté changed from 2 Facile to 3 Moyen
#11

Updated by Loïc Dachary over 9 years ago

  • Due date changed from 12/10/2012 to 12/14/2012
#12

Updated by Loïc Dachary over 9 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: ----------------------------------------------------------------------------------
#13

Updated by Loïc Dachary over 9 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/" 
     &lt;Directory "/usr/share/doc/">

#15

Updated by Loïc Dachary over 9 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.

#16

Updated by Loïc Dachary over 9 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.

#17

Updated by Loïc Dachary over 9 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:{}    |
+--------------------------------------------------------------+---------+-----+------+---------------------+----------+------+-----------------------------------+---------+-----------+------------+-----------+
#18

Updated by Loïc Dachary over 9 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

#19

Updated by Loïc Dachary over 9 years ago

nouvelle demande a l'aide à mongolito404

#20

Updated by Loïc Dachary over 9 years ago

  • Target version changed from Décembre 2012 (1/2) to Backlog
#22

Updated by theo _ over 9 years ago

Limite passée à 3G :

vlimit -c 42 --rss 750000
vlimit -c 42 -S --rss 750000

#23

Updated by Loïc Dachary over 9 years ago

  • Target version changed from Backlog to Décembre 2012 (1/2)
#24

Updated by Loïc Dachary over 9 years ago

  • Target version changed from Décembre 2012 (1/2) to Décembre 2012 (2/2)
#25

Updated by Loïc Dachary over 9 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

Also available in: Atom PDF