Projet

Général

Profil

Anomalie #1085

crash mysql sur lsd : www.april.org down

Ajouté par Loïc Dachary il y a plus de 11 ans. Mis à jour il y a environ 11 ans.

Statut:
Fermé
Priorité:
Immédiate
Assigné à:
Catégorie:
Task
Version cible:
Début:
10/12/2012
Echéance:
14/12/2012
% réalisé:

100%

Temps estimé:
Temps passé:
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:

Fichiers

daemon.log (20,5 ko) daemon.log daemon.log Loïc Dachary, 10/12/2012 09:50
vserver_rss-day.png (54,8 ko) vserver_rss-day.png vserver_rss-day Loïc Dachary, 10/12/2012 11:41
vserver_rss-day-2012-12-15.png (55,9 ko) vserver_rss-day-2012-12-15.png vserver_rss-day 15 decembre 2012 Loïc Dachary, 15/12/2012 14:34

Demandes liées

Dupliqué par Admins - Anomalie #1109: base gdtc inaccessibleRejeté15/12/2012

Actions

Historique

#1

Mis à jour par Loïc Dachary il y a plus de 11 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..
#2

Mis à jour par Loïc Dachary il y a plus de 11 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
#3

Mis à jour par Loïc Dachary il y a plus de 11 ans

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

Mis à jour par Loïc Dachary il y a plus de 11 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

#5

Mis à jour par Loïc Dachary il y a plus de 11 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 :)
#6

Mis à jour par Loïc Dachary il y a plus de 11 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

#7

Mis à jour par Loïc Dachary il y a plus de 11 ans

  • Sujet changé de www.april.org ne fonctionne pas à crash mysql sur lsd : www.april.org down
#8

Mis à jour par Loïc Dachary il y a plus de 11 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

#9

Mis à jour par Loïc Dachary il y a plus de 11 ans

  • % réalisé changé de 100 à 90
#10

Mis à jour par Loïc Dachary il y a plus de 11 ans

  • Difficulté changé de 2 Facile à 3 Moyen
#11

Mis à jour par Loïc Dachary il y a plus de 11 ans

  • Echéance changé de 10/12/2012 à 14/12/2012
#12

Mis à jour par Loïc Dachary il y a plus de 11 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: ----------------------------------------------------------------------------------
#13

Mis à jour par Loïc Dachary il y a plus de 11 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/" 
     &lt;Directory "/usr/share/doc/">

#15

Mis à jour par Loïc Dachary il y a plus de 11 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.

#16

Mis à jour par Loïc Dachary il y a plus de 11 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.

#17

Mis à jour par Loïc Dachary il y a plus de 11 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:{}    |
+--------------------------------------------------------------+---------+-----+------+---------------------+----------+------+-----------------------------------+---------+-----------+------------+-----------+
#18

Mis à jour par Loïc Dachary il y a plus de 11 ans

http://www.april.org/admin/reports/status

 Tâches de maintenance cron    Dernière exécution il y a 23 heures 11 min

#19

Mis à jour par Loïc Dachary il y a plus de 11 ans

nouvelle demande a l'aide à mongolito404

#20

Mis à jour par Loïc Dachary il y a plus de 11 ans

  • Version cible changé de Décembre 2012 (1/2) à Backlog
#22

Mis à jour par theo _ il y a plus de 11 ans

Limite passée à 3G :

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

#23

Mis à jour par Loïc Dachary il y a plus de 11 ans

  • Version cible changé de Backlog à Décembre 2012 (1/2)
#24

Mis à jour par Loïc Dachary il y a plus de 11 ans

  • Version cible changé de Décembre 2012 (1/2) à Décembre 2012 (2/2)
#25

Mis à jour par Loïc Dachary il y a environ 11 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

Formats disponibles : Atom PDF