das_watchdog est un utilitaire de surveillance d'un système temps-réel.
Site web officiel : http://archive.notam02.no/arkiv/src/.
Version actuelle : 0.9 du 2009 02 14.
Licence : (non définie dans les sources, contacter le/les auteur/s).
Développeur : Kjetil S. Matheussen.
Ce programme n'est pas indispensable, il peut néanmoins s'avérer utile dans certains cas.
Optimiser, donner l'accès temps réels pour une application, c'est bien ... sauf en cas de plantage de celle-ci par exemple !
Das_Watchdog est un programme de surveillance générale pour linux qui tourne en arrière-plan pour s'assurer qu'un processus en temps réel ne va pas bloquer la machine.
Il s'inspire du programme "rt_watchdog" (http://tapas.affenbande.org/?page_id=38 non accessible le 10 septembre 2017) en apportant quelques améliorations :
Elle nécessite les dépendances suivantes :
Pour Gentoo, le plus simple est d'utiliser l'overlay "pro audio production applications" (voir page gentoo).
Pour Ubuntu, il est présent en paquet dans votre gestionnaire de paquets.
Pour les distributions n'en disposant pas en version paquet :
Téléchargez et décompressez la dernière version ici : http://archive.notam02.no/arkiv/src/.
Il s'agit, comme pour rtirq, d'un script d'initialisation. L'intégration dans votre système dépendra donc encore de votre distribution.
Vous aurez peut-être le message suivant après la compilation :
Utilisez la commande suivante pour rectifier la priorité de softirq-timer :
Quand un programme bloque votre machine, das_watchdog bascule temporairement (pendant 8 secondes) les processus "temps-réels" en mode "non-temps-réel". Un message d'avertissement s'affiche à l'écran pour vous prévenir.
Pour tester Das_watchdog, l'archive vous fourni un programme de test, test_rt. Compilez-le (avec un
De plus, avec un kernel temps réel, il se peut qu'il ne serve à rien quand un programme monopolise le système, c'est à dire quand justement on en aurait besoin pour que le système récupère le contrôle... du système pardi!
Heureusement, les kernel récents proposent un ensemble de fonctions appelé CGROUP, ensemble dans lequel figure un agenceur temps réel (CONFIG_CGROUP_SCHED) qui permet de ne plus avoir besoin du watchdog et de garantir le bon fonctionnement du système quelque soit sa charge.
CGROUP est une fonction nouvelle, il faut donc pour le moment avoir une âme de pionnier pour l'utiliser. Cependant, c'est beaucoup plus qu'un watchdog et je pense que d'ici quelques mois son usage se sera généralisé.
Note de rédaction : à voir :
Table des matières
Informations
Site web officiel : http://archive.notam02.no/arkiv/src/.
Version actuelle : 0.9 du 2009 02 14.
Licence : (non définie dans les sources, contacter le/les auteur/s).
Développeur : Kjetil S. Matheussen.
Description
Ce programme n'est pas indispensable, il peut néanmoins s'avérer utile dans certains cas.
Optimiser, donner l'accès temps réels pour une application, c'est bien ... sauf en cas de plantage de celle-ci par exemple !
Das_Watchdog est un programme de surveillance générale pour linux qui tourne en arrière-plan pour s'assurer qu'un processus en temps réel ne va pas bloquer la machine.
Il s'inspire du programme "rt_watchdog" (
- support des noyaux 2.4 et 2.6
- passage temporaire (et non définitif) en mode "non-temps-réel"
- ouverture d'une fenêtre "pop-up" d'avertissement
Installation
Elle nécessite les dépendances suivantes :
- xmessage (intégré à X11)
- libgtop2
Pour Gentoo, le plus simple est d'utiliser l'overlay "pro audio production applications" (voir page gentoo).
echo "sys-apps/das_watchdog ~x86" >> /etc/portage/package.keywords emerge das_watchdog rc-update add das_watchdog default
Pour Ubuntu, il est présent en paquet dans votre gestionnaire de paquets.
Compilation
Pour les distributions n'en disposant pas en version paquet :
Téléchargez et décompressez la dernière version ici : http://archive.notam02.no/arkiv/src/.
tar -zxvf das_watchdog-x.x.x.tar.gz make cp das_watchdog /usr/local/sbin/ echo '/usr/local/sbin/das_watchdog >/dev/null &' >>/etc/rc.sysinit reboot
Il s'agit, comme pour rtirq, d'un script d'initialisation. L'intégration dans votre système dépendra donc encore de votre distribution.
Vous aurez peut-être le message suivant après la compilation :
das_watchdog and test_rt compiled. Now testing IRQ priorities... ./das_watchdog --checkirq ERROR! The "softirq-timer/0" process has only got priority 1. It should be 99. Watchdog will probably not work.
Utilisez la commande suivante pour rectifier la priorité de softirq-timer :
- pour le 1er processeur :
chrt -f -p 99 `ps -A |grep softirq-timer/0 |awk '{print $1}'`
- si vous avez un second processeur :
chrt -f -p 99 `ps -A |grep softirq-timer/1 |awk '{print $1}'`
etc ...
Utilisation
Quand un programme bloque votre machine, das_watchdog bascule temporairement (pendant 8 secondes) les processus "temps-réels" en mode "non-temps-réel". Un message d'avertissement s'affiche à l'écran pour vous prévenir.
Pour tester Das_watchdog, l'archive vous fourni un programme de test, test_rt. Compilez-le (avec un
make
), fermez toutes vos tâches importantes en cours et lancez-le : il freeze votre machine et vous devriez donc voir apparaître un message de das_watchdog :Mise en garde
Le watchdog est destiné aux kernels temps réel. Avec un kernel non temps réel, il ne servira à rien et ne fonctionnera souvent carrément pas.De plus, avec un kernel temps réel, il se peut qu'il ne serve à rien quand un programme monopolise le système, c'est à dire quand justement on en aurait besoin pour que le système récupère le contrôle... du système pardi!
Heureusement, les kernel récents proposent un ensemble de fonctions appelé CGROUP, ensemble dans lequel figure un agenceur temps réel (CONFIG_CGROUP_SCHED) qui permet de ne plus avoir besoin du watchdog et de garantir le bon fonctionnement du système quelque soit sa charge.
CGROUP est une fonction nouvelle, il faut donc pour le moment avoir une âme de pionnier pour l'utiliser. Cependant, c'est beaucoup plus qu'un watchdog et je pense que d'ici quelques mois son usage se sera généralisé.
Note de rédaction : à voir :
- avantage/inconvénient,