4.5. Implications de la mémoire virtuelle au niveau de la performance

Alors que la mémoire virtuelle permet aux ordinateurs de traiter plus facilement des applications plus grandes et plus complexes, il faut — comme c'est la cas avec tout outil puissant — en payer le prix. Dans le cas présent, le prix à payer se situe au niveau de la performance — un système d'exploitation doté d'une mémoire virtuelle effectue beaucoup plus de tâches qu'un système d'exploitation ne pouvant pas prendre en charge de mémoire virtuelle. Ainsi, en recourant à la mémoire virtuelle, la performance n'est jamais aussi bonne que lorsque l'application est stockée à 100% en mémoire.

Toutefois, il n'y a pas lieu de baisser les bras et d'abandonner. Les avantages liées à la mémoire virtuelle sont trop grands pour agir de la sorte. De plus, avec un peu effort, il est possible d'obtenir une bonne performance. Dans ce contexte, il est important d'examiner les ressources du système sur lesquelles se fait ressentir l'impact d'une utilisation importante du sous-système de mémoire.

4.5.1. Pire scénario de performance

Avec les connaissances que vous avez acquises dans ce chapitre, examinez pour un instant les ressources du système qui sont utilisées pour de très lourdes activités de défaut de page et de swapping :

Étant donné l'interdépendance de ces charges, il est facile de comprendre comment un manque de ressources peut entraîner de graves problèmes de performance.

Pour se trouver dans une telle situation, il suffit d'un système doté d'une mémoire vive trop petite, d'une activité de défaut de page intense et d'un système tournant quasiment à capacité en termes de CPU ou d'E/S de disque. À ce stade, le système effectue des opérations d'écroulement (ou thrashing) entraînant inévitablement une réduction de performance.

4.5.2. Meilleur scénario de performance

Dans le meilleur des cas, le temps de gestion système résultant de la prise en charge de mémoire virtuelle se traduit, dans un système bien configuré, par une faible charge supplémentaire :

Dans de telles circonstance, il est important de se rappeler que l'impact de la mémoire virtuelle sur la performance est minimal, lorsqu'elle est utilisée aussi peu que possible. En d'autres termes, l'élément vital pour obtenir une bonne performance du sous-système de mémoire virtuelle est une quantité de mémoire vive (ou RAM) suffisante.

Également d'une extrême importance (bien que moindre dans notre contexte) sont des capacités suffisantes en matière d'E/S disque et de CPU. Rappelez-vous toutefois que ces ressources aident seulement la performance du système à dégrader plus progressivement lors d'activités importantes de défaut de page et de swapping  ; elles n'apportent pas vraiment d'aide en ce qui concerne la performance du sous-système de mémoire virtuelle (bien qu'elles jouent évidemment un rôle important au niveau de la performance du système en général).

Notes

[1]

Un système relativement actif doit toujours effectuer une certaine activité de défaut de page en raison des défauts de page engendrés par des applications récemment lancées et mises en mémoire.