Pb IOWait sur VM VirtualBox Jessie 8.2

Bonjour à vous,

Hello,
J’ai un souci qui dure depuis 6 mois sur lequel je voudrais l’avis d’experts.

Voici ma config: MiniPC (en situation de serveur) CPU i3, 1,9GHz, 8Go RAM, SSD 128Go, sous Win 7 64bit avec VM VirtualBox Debian Jessie 8.2 (2Go RAM, 1 CPU) sur laquelle tourne Jeedom (logiciel de domotique; peu gourmand en ressource).

Cet été, j’ai commencé à voir apparaitre des “load average 15min” trop importants; j’etais en VM “VMPlayer” et Ubuntu; il m’a été conseillé de passer sous Debian Jessie, ce que j’ai fait; et j’ai retrouvé mes “load average” trop importants venant bloquer le logiciel Jeedom.

Les symptomes: La VM tourne sans problème pendant 1 ou 2j (rarement plus), avec une charge relativement faible (0,25 en moyenne) et, sans raison déterminée, le load average grimpe (en 30min) jusqu’à son max, venant bloquer Jeedom. Dans cet état, la VM reste accessible par le shell; le PC hote (sous Win7) reste tout à fait opérationnel (avec 25% de charge CPU utilisée par la VM bloquée)… un reboot de la VM permet de revenir à un etat “normal” en attendant la nouvelle crise…

Mes recherches: Si je fais un top, lorsque le CPU Average s’emballe, je m’aperçois que c’est l’IO Wait qui déconne et prend toute la charge (99%); donc, j’ai un pb d’accès fichier/disque. Une commande “atop” me montre que c’est (en général) le process mysqld (utilisé par Jeedom) qui génère cet IOWait; cependant, c’est aussi lui qui est le plus actif qd “tout va bien”; du coup, je suis pas persuadé que le problème vienne de là. Si je fais un check de mon disque SSD, tout parait OK. Si je fais un check de la base mysql, tout parait OK. J’ai fait un CHECKDISK du Windows 7, tout parait OK. Un fsck est lancé à chaque boot de la VM Debian mais je n’ai rien dans les logs (les 2 fichiers sous /var/log/fsck contiennent “nothing has been logged yet”).

Un tour sur le net et ce forum m’ont donné des éléments pour investiguer. Mais je n’ai toujours pas la solution…

La dernière crise en date s’est produite aujourd’hui à 2h30; à mon réveil (7h plus tard), voici ce que j’ai pu observer:

Un IOWait à son maximum:

Un iostat que je ne sais pas interpreter:

Et un iotop qui ne me permet pas d’identifier le processus qui bloque:

Un “ps -eo state,pid,cmd | grep “^D”;” me renvoit “D 10331 [kworker/0:2]”… Je suis pas plus avancé…

J’ai rebooté (une fois de plus) la VM pour refaire tourner le système en attendant la prochaine crise.

Auriez-vous des idées / pistes d’investigation / conseils ?

Merci par avance.

[quote=“Ekinox”]Bonjour à vous,

Hello,
J’ai un souci qui dure depuis 6 mois sur lequel je voudrais l’avis d’experts.

Voici ma config: MiniPC (en situation de serveur) CPU i3, 1,9GHz, 8Go RAM, SSD 128Go, sous Win 7 64bit avec VM VirtualBox Debian Jessie 8.2 (2Go RAM, 1 CPU) sur laquelle tourne Jeedom (logiciel de domotique; peu gourmand en ressource).

Cet été, j’ai commencé à voir apparaitre des “load average 15min” trop importants; j’etais en VM “VMPlayer” et Ubuntu; il m’a été conseillé de passer sous Debian Jessie, ce que j’ai fait; et j’ai retrouvé mes “load average” trop importants venant bloquer le logiciel Jeedom.

Les symptomes: La VM tourne sans problème pendant 1 ou 2j (rarement plus), avec une charge relativement faible (0,25 en moyenne) et, sans raison déterminée, le load average grimpe (en 30min) jusqu’à son max, venant bloquer Jeedom. Dans cet état, la VM reste accessible par le shell; le PC hote (sous Win7) reste tout à fait opérationnel (avec 25% de charge CPU utilisée par la VM bloquée)… un reboot de la VM permet de revenir à un etat “normal” en attendant la nouvelle crise…

Mes recherches: Si je fais un top, lorsque le CPU Average s’emballe, je m’aperçois que c’est l’IO Wait qui déconne et prend toute la charge (99%); donc, j’ai un pb d’accès fichier/disque. Une commande “atop” me montre que c’est (en général) le process mysqld (utilisé par Jeedom) qui génère cet IOWait; cependant, c’est aussi lui qui est le plus actif qd “tout va bien”; du coup, je suis pas persuadé que le problème vienne de là. Si je fais un check de mon disque SSD, tout parait OK. Si je fais un check de la base mysql, tout parait OK. J’ai fait un CHECKDISK du Windows 7, tout parait OK. Un fsck est lancé à chaque boot de la VM Debian mais je n’ai rien dans les logs (les 2 fichiers sous /var/log/fsck contiennent “nothing has been logged yet”).

Un tour sur le net et ce forum m’ont donné des éléments pour investiguer. Mais je n’ai toujours pas la solution…

La dernière crise en date s’est produite aujourd’hui à 2h30; à mon réveil (7h plus tard), voici ce que j’ai pu observer:

Un IOWait à son maximum:
[attachment=2]Top WA eleve2.png[/attachment]

Un iostat que je ne sais pas interpreter:
[attachment=1]iostat2.png[/attachment]

Et un iotop qui ne me permet pas d’identifier le processus qui bloque:
[attachment=0]iotop2.png[/attachment]

Un “ps -eo state,pid,cmd | grep “^D”;” me renvoit “D 10331 [kworker/0:2]”… Je suis pas plus avancé…

J’ai rebooté (une fois de plus) la VM pour refaire tourner le système en attendant la prochaine crise.

Auriez-vous des idées / pistes d’investigation / conseils ?

Merci par avance.[/quote]

Il faudrait analyser les logs de ta Jeedom VM, vérifie en même temps que ton MySQL ne permette pas une optimisation (utilise pour ça mysql-tunner disponible sur le web gratos, c’est un script perl).

Merci.
Sais-tu quel log analyser ? (daemon, debug, dmesg, messages, syslog, etc…)
Et comment faire ? L’ouvrir et rechercher des erreurs/warnings ? des TAGS particuliers ?

[quote=“Ekinox”]Merci.
Sais-tu quel log analyser ? (daemon, debug, dmesg, messages, syslog, etc…)
Et comment faire ? L’ouvrir et rechercher des erreurs/warnings ? des TAGS particuliers ?[/quote]

Je ne joue pas avec Jeedom du coup je te dirais bonne pêche :005

Hello,
Je n’ai rien trouvé dans les logs (j’ai balayé tout ce qui se trouve sous /var/log).
Cependant, une nouvelle crise aujourd’hui a pu me permettre d’analyser le problème en cours.
Je ne trouve rien de spécial avec ATOP. 3 process apparaissent alternativement “en haut de la liste”: rsyslogd, systemd et mysqld.
Mais j’ai trouvé le process qui bloquait; il s’agit du moteur python d’OpenzWave de Jeedom; tuer le process permet de stopper l’IOWait. Je vais voir côté appli Jeedom.

Cependant, sauriez-vous pourquoi “atop” ou “ps -eo state,pid,cmd | grep “^D”” n’a pas permis d’identifier le process python comme étant le souci ? Si il faut, ce n’est qu’un effet de bord…