Project

General

Profile

Actions

Anomalie #1085

closed

crash mysql sur lsd : www.april.org down

Added by Loïc Dachary almost 12 years ago. Updated almost 12 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 1 (0 open1 closed)

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

Actions
Actions #1

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..
Actions #2

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
Actions #3

Updated by Loïc Dachary almost 12 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

Actions #4

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

Actions #5

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 :)
Actions #6

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

Actions #7

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
Actions #8

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

Actions #9

Updated by Loïc Dachary almost 12 years ago

  • % Done changed from 100 to 90
Actions #10

Updated by Loïc Dachary almost 12 years ago

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

Updated by Loïc Dachary almost 12 years ago

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

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: ----------------------------------------------------------------------------------
Actions #13

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/" 
     &lt;Directory "/usr/share/doc/">

Actions #15

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.

Actions #16

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.

Actions #17

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:{}    |
+--------------------------------------------------------------+---------+-----+------+---------------------+----------+------+-----------------------------------+---------+-----------+------------+-----------+
Actions #18

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

Actions #19

Updated by Loïc Dachary almost 12 years ago

nouvelle demande a l'aide à mongolito404

Actions #20

Updated by Loïc Dachary almost 12 years ago

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

Updated by theo _ almost 12 years ago

Limite passée à 3G :

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

Actions #23

Updated by Loïc Dachary almost 12 years ago

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

Updated by Loïc Dachary almost 12 years ago

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

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

Actions

Also available in: Atom PDF