web-dev-qa-db-fra.com

L'utilisation de fichiers d'échange augmente-t-elle la charge d'E / S du disque et de la CPU?

Quelqu'un m'a fait remarquer que si une application utilise un fichier d'échange (lorsque le système RAM est très faible), cela augmente le I/0 du disque et, par conséquent, l'utilisation de l'UC% et la charge de l'UC.

Est-ce vrai ou ce type était-il complètement hors piste?

4
Ubuntuser

Swap est la pagination de la mémoire sur le disque. Si quelque chose est en train de dériver des éléments de la RAM, vous verrez:

  • Utilisation de la CPU pour déterminer ce qui peut être échangé
  • Disque IO et CPU en passant de physique à permutation
  • Utilisation de la CPU pour mapper l'espace d'adressage des applications en cours d'exécution sur son emplacement d'échange
  • Disque IO de l'application accédant à leur espace mémoire permuté.

Leur quantification ou leur effet sont discutables, mais suivez la règle d'or de Barney: Plus RAM c'est toujours mieux.

6
Oli

L'espace d'échange est la zone du disque dur ou du disque SSD qui fait partie de la mémoire virtuelle de votre PC. La mémoire virtuelle est simplement une combinaison de votre mémoire physique appelée RAM et de l'espace de swap appelé call SWAP. L'espace de permutation contient, temporairement, la mémoire inactive. En effet, votre système décide qu'il a besoin de mémoire physique pour les processus actifs et que la mémoire physique inutilisée est insuffisante. S'il s'avère que le système a besoin de plus de mémoire ou d'espace, les pages inactives de la mémoire physique sont ensuite déplacées vers l'espace de permutation, ce qui libère cette mémoire physique pour d'autres utilisations.

Étant donné que la mémoire physique ou RAM est beaucoup plus rapide que SWAP, qui se trouve sur un disque dur ou un disque SDD, généralement en tant que partition, le temps d'accès est plus lent. Vous pouvez cependant obtenir une vitesse plus rapide si vous utilisez un SSD (Solid State Drive) au lieu d’un disque dur (Hard Disk Drive, Mechanical).

Dans cet esprit, la réponse à votre question est, dans les deux cas, oui. Oui, l’utilisation de SWAP augmentera l’utilisation de votre CPU et de l’E/S de disque. Bien sûr, l'utilisation du processeur sera minimale, mais celle du disque ne le sera pas. La raison en est que la CPU n’est utilisée que pour voir où et ce qui peut être stocké/récupéré à partir de swap (ce qui est une procédure très rapide).

Pour le Disk I/O, c'est différent. Puisque l’échange se trouve sur le disque dur ou le disque dur SSD, il utilisera également l’E/S de disque pendant que vous utilisez d’autres programmes, et sa priorité sera probablement supérieure à celle des autres programmes utilisateur.

Donc, pour votre question, vous n'avez pas à vous soucier beaucoup de l'utilisation du processeur que de l'utilisation du disque.

Pour améliorer les performances et réduire l'utilisation du disque, vous pouvez effectuer plusieurs opérations:

  • Passez d'un disque dur (typiquement de 5 400 tr/min à 7 200 tr/min) à un SSD. La différence est de 2x à 10x plus rapide que les performances du disque. Cela modifiera radicalement les performances globales de votre système.

  • Ajoutez plus de RAM. Si vous disposez de plus de mémoire RAM, le système devra probablement moins de mémoire, ce qui augmentera les performances globales tout en utilisant toute la mémoire RAM disponible.

  • Utilisez un bureau qui utilise moins de RAM. Cela s'étend également à d'autres applications. Ce n'est pas la même chose d'utiliser KDE ou Gnome que d'utiliser LXDE ou XFCE. Ce n’est pas non plus pareil d’utiliser abiword ou même nano o vim que d’utiliser LibreOffice.

Passons maintenant au dernier point. Ce que vous avez entendu sur l'augmentation d'E/S de disque augmentant la charge du processeur. C'est vrai, tout simplement parce que:

Moins vous avez RAM, plus vous aurez besoin d'espace SWAP pour vos applications. Plus vous utilisez d'espace SWAP, plus vous aurez besoin de temps processeur pour stocker/récupérer les informations Swap.

L'un dépend de l'autre. Donc, augmenter la quantité de RAM vous aidera directement à réduire l'utilisation de SWAP et du processeur.

Voici une image pour illustrer l'effet:

enter image description here

Chaque fois que la charge du processeur augmentait, c'était parce que le swap avait été lu/écrit.

2
Luis Alvarado

Il y aura une certaine augmentation (car le noyau doit suivre l’emplacement de la mémoire paginée entre RAM et le stockage secondaire), mais je doute que le système accède directement au disque, en ignorant la mise en cache et les fichiers. -système lors de la pagination vers/depuis le fichier/la partition d'échange. La IO exécutée est asynchrone. Par conséquent, la CPU n'attend pas (ce qui ralentit inutilement les autres processus).

Pour une description complète de la gestion du swap, lisez https://www.kernel.org/doc/gorman/html/understand/understand014.html vous verrez que ce n’est pas un processus gourmand en ressources processeur, du travail concerne la gestion des mappages de pages, pas le transfert de données.

0
NGRhodes

En réalité, c'est l'inverse qui se produit: lorsque les programmes doivent s'arrêter et attendre l'entrée/la sortie du disque, l'utilisation du processeur baisse (car ils ne l'utilisent pas en attente). Évidemment, beaucoup de données échangées sur le disque est disque IO.

0
psusi