Pour autant que je sache, la limite théorique pour un fichier d'échange est incroyablement grande selon qu'un système 32 bits ou 64 bits est utilisé.
J'ai créé un fichier d'échange de 16 Go sur un système RAM 64 bits de 4 Go avec des spécifications par ailleurs bas, car j'ai plus qu'assez d'espace sur mon disque dur interne de 1 To ...
Mais le gros fichier d'échange fait-il vraiment une différence de vitesse / performances?
Réponses:
Vous pouvez avoir jusqu'à 32 zones d'échange (fichiers ou partitions) avec jusqu'à ~ 4 milliards (2 ^ 32) pages chacune, où une "page" fait 4 Ko sur un système traditionnel (par exemple x86 ou x86_64) mais peut être plus grande sur d'autres architectures ou si vous avez spécialement configuré de grandes pages.
Cela donne un maximum théorique de 16 To par zone de swap et jusqu'à 32 zones de swap. Il peut y avoir d'autres limitations qui s'appliquent avant que vous n'atteigniez cela, mais c'est une zone de swap aussi importante que vous
mkswap
pouvez créer pour vous.Quant à la quantité que vous souhaitez, toute zone d'échange au-delà du maximum que vous utilisez réellement ne contribue en rien aux performances ou à la stabilité du système. L'astuce consiste à estimer la quantité maximale d'utilisation qui se produira dans une situation normale ou même anormale, et à l'utiliser comme taille de fichier d'échange et pas plus.
Au moment de la rédaction, un espace d'échange supérieur à environ 4 Go de plus que la taille de votre mémoire physique est très peu susceptible d'être utilisé, sauf si votre système est très anormal. Sur un système typique tel qu'un système de bureau utilisé par une seule personne à la fois, vous pouvez même vous arrêter à un maximum de 6 Go à 8 Go, même si votre mémoire physique est supérieure.
la source
Cela ne fait aucune différence en termes de vitesse ou de performances. Il vous permet simplement d'utiliser jusqu'à 20 Go de mémoire virtuelle avant que le tueur OOM ne commence à tuer les processus de récupération de mémoire.
Si vous voulez de meilleures performances:
swappiness
si vous n'utilisez pas plus de 4 Go souventla source
D'après la réponse de Gilles
De plus, il cite une page de manuel pour
mkswap
:Dans la bibliothèque linux / swap.h, il y a une
MAX_SWAPFILES
entrée, il y a donc une limite sur le nombre de fichiers d'échange au niveau du noyau, mais ce n'est apparemment pas une zone définitive non plus. Selon le document lié:Ce que je comprends a un maximum de 64 fichiers d'échange sur les architectures 32 bits. Cependant, je n'ai pas remarqué dans le document mentionner ce qui se passerait sur une architecture 64 bits. Il convient également de noter que dans ce cas , les efforts d'OP pour créer des fichiers d'échange ont échoué à la 30e entrée.
En ce qui concerne les partitions de swap, il semble n'y avoir aucune limite pour cela dans le noyau, en plus des constats mentionnés précédemment, mais le nombre de partitions serait toujours limité par le BIOS sous-jacent et la disposition du disque .
la source
Cette réponse peut ne pas être appropriée pour Ubuntu 18.04 (merci à @Chai T. Rex de l'avoir signalé dans les commentaires).
Quoi qu'il en soit pour les versions précédentes, c'est parti (il n'y a toujours pas de mise à jour proposée LTS> LTS, donc cela pourrait toujours être pertinent):
Ce n'est pas un fichier, c'est une partition, et oui, c'est à cause de la permutation
Donc, fondamentalement, si votre partition de swap est beaucoup plus grande que la RAM que vous avez, le système aura tendance à swap plus, provoquant une lenteur générale.
la source
Il n'y a pas beaucoup de différence de vitesse ou de performances lorsque vous augmentez arbitrairement la partition de swap.
Il existe plusieurs facteurs liés au swap qui peuvent affecter les performances telles que le type de
swappiness
disque dur (SDD ou HDD).Le swap est assez lent et l'augmentation du swappiness réduit les performances. Cependant, cela n'a d'effet que s'il n'y a pas assez de RAM. Mais c'est mieux que de ne pas avoir de swap. Ma recommandation est de rendre la taille de la partition de swap deux fois plus grande que votre RAM.
la source
J'arrive au fait qu'un fichier d'échange ou une partition d'échange n'ont pratiquement aucune limite. De plus, mon fichier d'échange de 16 Go est assez gros mais la taille n'affecte pas la vitesse.
Cependant, ce que je comprends, c'est que ce qui affecte la vitesse est que le système utilise réellement cet espace d'échange par opposition au matériel physique.
Ma solution est de créer une valeur de swappiness élevée afin que le swap ne soit pas trop utilisé par opposition au matériel plus rapide. alors j'ai fait:
Ajouté au fichier:
enregistrer
pour rafraîchir (ou pourrait juste avoir redémarré)
la source
#vm.swappiness = 50
à/etc/sysctl.conf
n'a aucun effet, le début#
fait de cette ligne un commentaire, supprimez-la. Vous pouvez vérifier la permutation aveccat /proc/sys/vm/swappiness
.