web-dev-qa-db-fra.com

Est-il prudent de désactiver le swap de manière permanente?

Mon système devenait de plus en plus lent, en particulier lorsque j'utilisais des navigateurs tels que Firefox/Chromium et Virtual Machines. J'ai remarqué que j'avais au moins 3,2 Go de mémoire libre RAM (avec le moniteur système Gnome) et qu'il n'y avait pas de permutation.

Ce que j’ai fait à présent est swapoff -a et les performances du système sont en hausse de 30%. Ma question est donc la suivante: est-il prudent d’utiliser swapoffname__? Le redémarrage de mon ordinateur avec swapoffsera-t-il sécurisé?

enter image description here

53
One Zero

Le noyau Linux fournit un paramètre ajustable qui contrôle la fréquence d'utilisation du fichier d'échange, appelé swappiness.

Un paramètre swappiness de zéro signifie que le disque sera évité sauf en cas d'absolue nécessité (mémoire insuffisante), tandis qu'un paramètre swappiness de 1 signifie que les programmes seront échangés sur disque presque instantanément.

Le système Ubuntu est livré avec un défaut de 60, ce qui signifie que le fichier d'échange sera utilisé assez souvent si l'utilisation de la mémoire est environ la moitié de ma mémoire vive. Vous pouvez vérifier la valeur de swappiness de votre propre système en exécutant:

one@onezero:~$ cat /proc/sys/vm/swappiness
60

Comme je dispose de 4 Go de RAM, j'aimerais donc ramener ce chiffre à 10 ou 15. Le fichier d'échange ne sera alors utilisé que lorsque mon utilisation de RAM tournera autour de 8 ou 9 pour cent. Pour modifier la valeur de swappiness du système, ouvrez /etc/sysctl.conf as root. Ensuite, modifiez ou ajoutez cette ligne au fichier:

vm.swappiness = 10

Redémarrez pour que le changement prenne effet

Vous pouvez également modifier la valeur pendant que votre système est toujours en cours d'exécution

sysctl vm.swappiness=10

vous pouvez également effacer votre échange en exécutant swapoff -a puis swapon -a en tant que root au lieu de redémarrer pour obtenir le même effet.

Pour calculer votre formule d'échange

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

le total est donc 3950/100 = 39,5 * 10 = 395

donc ce que cela signifie, c’est que quand 10% il reste 395 Mo de RAM alors il commence à utiliser swapiness

93
One Zero

Probablement. Vous devriez lire la partie "Pourquoi ai-je besoin d’échanger?" D’Ubuntu page FAQ ici , et juger par vous-même.

Si vous privilégiez la rapidité par rapport au filet de sécurité, vous devez le désactiver.

Si vous ne suspendez jamais sur le disque, arrêtez et redémarrez toujours, vous pouvez le désactiver en toute sécurité.

Si vous avez beaucoup de RAM (vos 4 Go + machines virtuelles en cours d'exécution est un appel proche), vous pouvez le faire.

Pour moi, j'ai mon système d'exploitation sur un SSD, 8 Go RAM et ne jamais suspendre. Je n'ai pas besoin d'échange, je ne l'ai jamais vu en cours d'utilisation, et je viens de l'installer par défaut.

En guise d'alternative, voici un sujet: config Tweak pour Firefox de Lifehacker qui explique comment utiliser RAM uniquement pour le cache du navigateur. Lisez la réfutation liée au bas de l'article avant de l'essayer.

17
Tom Brossman

Non ce n'est pas sûr. La raison en est que lorsque le système est à court de RAM et qu’il est impossible d’en échanger une partie, il risque de se figer sans autre possibilité de récupération qu’une réinitialisation matérielle. Il ne s'agit pas seulement de pouvoir suspendre ou non.
Source: mon 14.04 fait cela.

Vous devez conserver un minimum d'espace de swap. Consultez le FAQ Ubunt pour obtenir des chiffres.

0
Przemek D