• # On ne plante pas

    Posté par . En réponse au message lecture du load average ? surtout niveau d'alarme ?. Évalué à 2.

    De ma propre expérience c'est tout à fait vrai, des ralentissements (ressenti utilisateur) dès qu'on dépasse les 150%, et vu des pics à plus de 600% sans pour autant planter la machine.

    Une charge importante, même bien au dessus de 6, ne plante pas une machine. Ce qui provoque un plantage, c'est généralement d'atteindre des limites comme la mémoire virtuelle disponible ou le nombre de processus; cas souvent mal gérés; et encore, ces cas ne plantent pas souvent la machine qui se contente de faire du ménage.

    Il y a quand même deux points importants à noter:

    1. Une charge importante a de gros impacts sur le temps de réponse; pour un serveur qui est censé répondre dans un délais raisonnable aux requêtes reçues, ou pour un bureau de travail, ça peut tout à fait devenir inacceptable. La machine n'est pas plantée pour autant.

    2. Une charge importante peut être révélatrice d'une consommation de ressources en croissance qui va aboutir à un plantage de la machine. Par exemple sur une consommation excessive de mémoire, si la machine a beaucoup de swap, elle va passer par une phase de swap intensif qui va dégrader les performances, parfois pendant un moment.

    Ceci étant du aux, système de file d'attente, de nice etc... ce qui est évident, mais ce principe est t il valable sur toutes les architectures ou seulement sur x86 ?? Est ce aussi le cas sur sparc, alpha, arm, rs6000, etc ??

    Le comportement est il identique avec des machines multi-processeurs (physiques) pas simplement des cœurs dans un processeur unique ??

    Si tu es sur GNU/Linux, on considérer que le calcul du loadavg est le même, donc homogène. Tu as quand même le problème du nombre de cœur, un loadavg de 1.2 sur une machine bi-core n'indique pas de problème (1.2 processus a exécuter, 2 cœurs disponibles), sur un monoprocesseur c'est peut-être un problème. L'hyperthreading vient compliquer l'interprétation des valeurs.

    Si tu as un parc d'OS hétérogène, alors la comparaison n'est pas réellement possible. Certains OS comptent ou ne compte pas les taches dans différents états, bloqués sur certaines ressources... Certains vont distinguer les threads et les processus, d'autres pas. Certains vont aussi normaliser la valeur par rapport au nombre de processeur, afin qu'une valeur de 1 indique toujours une occupation complète de tous les CPU, quelque soit le nombre de CPU. Bref, c'est la foire.