Linux Embedded

Le blog des technologies libres et embarquées

Tester la stabilité de Linux sur 10 ans en 10 jours

Lors de la dernière conférence CELF à Cambridge, une expérience originale a été présentée par Yoshitake Kobayashi de chez Toshiba. Son objectif était de tester le comportement du kernel ou d’une application tournant sous Linux sur une longue période (plusieurs années) afin de se faire une meilleure opinion de sa stabilité. Problème : comment tester un produit sur plusieurs années quand on a que quelques jours à y consacrer ? Réponse : accélérer le temps !

Concrètement, l’idée de Kobayashi est tout simplement d’accélérer l’horloge interne de Linux. Pour ce faire, la technique la plus simple consiste à multiplier la variable jiffies_64, dans la fonction do_timer() (kernel/timer.c), par un coefficient multiplicateur. Kobayashi est même allé plus loin en créant une interface dans /proc permettant de modifier cette valeur à la volée. Celle-ci ne doit pas être trop élevée puisqu’un coefficient de 40 suffit à utiliser 100% de CPU lorsque la machine est au repos.

Cette méthode a “prouvé” que Linux n’avait aucune difficulté à tourner 10 ans d’affilé, même si un test en conditions réelles aurait bien sur été plus digne de confiance. Elle a surtout permit d’identifier clairement les applications qui n’étaient pas capables de supporter de telles vitesses. A l’inverse, d’autres applications semblent plus rapides avec une horloge accélérée, ce qui montre là aussi un défaut de conception.

Cette expérience n’est est encore qu’à ses débuts, mais a suscité un vive intérêt. Les résultats qu’elle apporte permettrons aux développeurs de mieux identifier les processus artificiellement ralentis par l’horloge, et ainsi, d’optimiser au mieux leurs applications.

La présentation de Yoshitake Kobayashi est disponible sur http://elinux.org/images/6/6d/Linux_Kernel_Acceleration_for_Long-term_Testing.pdf

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *