Eureka : origine des plantages de Tellico (en partie) identifié

Je pense avoir trouvé l’origine des plantages de Tellico sous ma distribution Debian :

J’utilise une architecture 32 bits avec un noyau 32 bits PAE (3.2.0-4-686-pae : = utilise de la mémoire paginée, autorise l’augmentation de la taille maxi de la mémoire allouée aux processus utilisateur).
Source : Wikipedia (Processeur 64 bits)

La mémoire maximum attribuable à un processus utilisateur pour un tel noyau PAE en 32 bits est de 3 Go (sinon c’est 2 Go).

Or, sous Tellico, lorsque je sélectionne des filtres comportant un grand nombre d’enregistrement (de l’ordre de 2000 suffisent), j’observe (via l’utilitaire « Moniteur système ») que la mémoire allouée à Tellico grimpe assez rapidement (en une dizaine de secondes) pour atteindre le seuil fatidique de 2.7 Go – moment précis où il plante systématiquement.
Même s’il n’atteint pas les 3 Go théoriques, je suis à peu près certain qu’il s’agit d’un problème de saturation de l’espace mémoire alloué à l’application qui fasse planter Tellico (le plantage est facile à reproduire).

Le problème est qu’il faudrait que je passe à une architecture 64 bits, ce qui nécessite de réinstaller complètement ma distribution, même si l’on peut accélérer le processus (cette doc sur Linuxpedia me paraît pas mal du tout), çà prendra du temps pour retrouver mon environnement précédent (avec des soucis de conflits de versions de paquets inévitables).
Je n’envisage pas de le faire à court terme (mais il faudra bien que j’y passe).

(suite)

Je progresse …

J’ai creusé davantage le sujet après d’autres plantages de Tellico qui surviennent régulièrement au cours de la saisie (c’est assez pénible). En cherchant des outils de surveillance de la mémoire plus élaborés que le simple utilitaire « Moniteur système » (qui est déjà parfait à mes yeux, mais j’aurai trouvé génial de pouvoir mettre une alarme lorsqu’un processus dépasse une certaine quantité mémoire … j’imagine que vous voyez où je veux en venir :), je suis tombé une nouvelle fois sur le site linuxpedia, qui présente quelques utilitaires sympas.

L’un d’eux – c’est déjà un bon début, va me permettre d’afficher en temps réel l’utilisation de la mémoire de Tellico : smem
L’avantage c’est qu’il affiche en plus les sous-processus :

« Pour analyser rapidement l’utilisation mémoire d’un programme smem est un outil idéal. En plus de reporter des valeurs véritablement significatives (la colonne “rss” pour “Resident Set Size” est sans doute la valeur la plus représentative) il prend en compte l’ensemble des processus appartenant au programme. C’est un gros avantage par rapport à un simple coup d’œil à “top” qui ne reportera que les processus à la plus grosse consommation de ressources à un moment donné.

Et effectivement, j’ai pu constater qu’au plantage de Tellico, il n’affiche non pas 2.7 Go mais 3 Go :)
(la différence est qu’il utilise dans son espace utilisateur la bibliothèque : /usr/lib/kde4/libexec/drkon)

J’ai adapté la ligne de commande comme suit (que je lance sur une console sur le bureau) : $ watch -n1 smem -ntkP [t]ellico
(la commande watch -n1 permet d’exécuter la commande toutes les 1s en boucle)
Linux et le libre c’est GE-NIAL !

(suite)

J’ai cherché une interface évoluée qui me permette de programmer une alarme.
Il me semblait en avoir trouvé une : Sentinella
Problèmes :
– la version n’est dépôts Debian n’est plus installable (problèmes de dépendances),
– j’ai téléchargé la dernière version sur Sourceforge pour tenter une compilation, mais visiblement Sentinella n’est plus maintenu depuis 2013 et nécessite la bibliothèque kdebase-workspace-dev qui n’est plus dans les dépôts Debian (« a dummy transitional package for kde-workspace-dev » – qui lui même n’existe plus) :(
J’ai bien essayé de l’installer manuellement à partir de Debian Jessie mais il y a des tas de dépendances (j’ai laissé tombé après 3 tentatives) qui de toute façon me bloqueront tôt ou tard pour la mise à jour de KDE.
– côté UBUNTU, Sentinella n’est plus installable après trusty (là aussi j’ai essayé à la mano, puis laissé tomber)

Quel dommage tout de même, d’avoir un outil mais de ne pas pouvoir l’installer à cause de dépendances vers une version de gestionnaire de fenêtres :(

(suite)

Lors de la phase actuelle de surveillance de la mémoire utilisée par Tellico, je constate aussi des plantages (au cours de ma saisie) indépendants de la saturation de sa mémoire réservée (moins de 500Mo utilisé) :(
Il y a donc 2 types de bugs (l’un par saturation de la mémoire, l’autre par un autre processus qui plante).

Laisser un commentaire