Quoi de mieux pour la performance? Une partition plus proche de l'intérieur du disque aura des temps d'accès plus lents, et nous devons attendre que le lecteur bascule entre le système d'exploitation et les partitions d'échange.
D'autre part, une partition de swap contourne tout le système de fichiers, ce qui permet des écritures directement sur le disque, ce qui peut être plus rapide qu'un fichier.
Quel est le compromis de performance?
À quel point avoir un fichier d'échange de taille fixe fait-il une différence?
Est-il un cas où il sera plus long de passer à la partition de swap, mais les performances seront meilleures pendant qu'il est sur la partition de swap que s'il s'agissait d'un fichier d'échange?
Réponses:
Sur les disques durs, le débit et la recherche sont souvent plus rapides vers le début du disque, car ces données sont stockées plus près de la zone externe du disque, qui contient plus de secteurs par cylindre. Ainsi, la création de la permutation au début du disque peut améliorer les performances.
Pour un noyau Linux 2.6, il n'y a pas de différence de performances entre une partition de swap et un fichier de swap non fragmenté . Quand un fichier / partition de swap est activé par swapon, le noyau 2.6 trouve le disque sur lequel le fichier swap est stocké . Ainsi, lorsqu’il est temps d’échanger, il n’a pas à gérer le système de fichiers.
Ainsi, si le fichier d'échange n'est pas fragmenté, c'est exactement comme s'il y avait une partition d'échange au même endroit. Autrement dit, vous obtiendriez des performances identiques si vous utilisiez une partition swap brute ou si vous la formatiez avec un système de fichiers, puis créez un fichier swap remplissant tout l'espace. Dans les deux cas, une zone contiguë est utilisée pour l'échange, que le noyau utilise directement.
Ainsi, si l'on crée le fichier d'échange lorsque le système de fichiers est récent (en s'assurant ainsi qu'il n'est pas fragmenté et au début du volume), les performances doivent être identiques à celles d'une partition de swap située juste avant le volume. En outre, si vous créez le fichier d'échange, par exemple au milieu du volume, avec des fichiers situés de chaque côté, vous obtiendrez de meilleures performances car le nombre de fichiers échangés est moindre.
Sous Linux, si le fichier d'échange est créé non fragmenté et jamais développé, il ne peut pas être fragmenté, du moins avec les systèmes de fichiers normaux tels que ext3 / 4. Il utilisera toujours les mêmes blocs de disque, qui sont contigus.
Je conclus que le seul avantage d’une partition d’échange dédiée est la non-fragmentation garantie lorsque vous devez l’étendre; si votre échange ne sera jamais étendu, un fichier créé sur un nouveau système de fichiers ne nécessite pas de partition supplémentaire.
la source
En réalité, cela ne fait pas beaucoup de différence tant que vous n'utilisez pas de fichiers fragmentés .
Créer un fichier "normal" avec dd allouera le fichier (si possible) en une seule exécution, tandis que la création d'un fichier fragmenté vous indiquera que vous avez un fichier de 10 Go qui traîne mais n'utilise pas réellement tout l'espace. Je ne sais pas si mkswap n'allouera pas l'espace de toute façon, mais généralement, un fichier d'échange augmentera avec le temps et n'allouera donc pas un secteur continu (comme une partie du disque), mais allouera plutôt des blocs en fonction des besoins, ce qui entraînera fragmentation dans le temps (bien sûr en fonction de votre utilisation du disque)
En interne, le noyau Linux accédera plus ou moins directement aux blocs sous-jacents d'un fichier d'échange. Je ne trouve pas le lien en ce moment, il faut me faire confiance, à moins que quelqu'un ne trouve quelque chose de plus officiel. Tout ce que je peux trouver pour l'instant, c'est:
Tout cela ne concerne que la ligne 2.6 des noyaux Linux.
Si vous voulez des performances optimales (et qu'est-ce que c'est vraiment? ... le swap est lent, point. Augmentez la mémoire RAM pour ne pas permuter les meilleures performances), vous voudriez utiliser une partition.
la source
C'est une question intéressante et j'ai beaucoup lu sur le même sujet. En règle générale, une partition de swap est préférable à un fichier en raison du système de fichiers sous-jacent. Mais si vous avez toujours besoin d'augmenter la taille de votre échange, le fichier est une meilleure option. Jusqu'au noyau 2.4, on considérait qu'une partition de swap était plus rapide qu'un fichier, mais maintenant, avec les améliorations du noyau 2.6, les performances sont presque les mêmes.
Quelque chose que j'ai trouvé sur internet aussi.
http://www.go2linux.org/swap-file-vs-swap-partition
et
http://www.sunmanagers.org/pipermail/summaries/2005-November/006913.html
la source
Je pense qu'au stade où nous en sommes, à moins que vous n'utilisiez un ordinateur portable avec une configuration qui enregistre les données sur le swap lorsqu'il suspend / dort, le swap devrait vraiment être considéré comme "dernier recours". Votre meilleur pari est de mettre assez de RAM dans une boîte pour qu’elle ne mette jamais les pages sur le disque.
Cela dit, une partition est probablement la meilleure solution en termes de performances, bien qu'un fichier soit plus flexible. Assurez-vous simplement que c'est sur une broche de 7 200 tr / min.
la source
Dans notre travail, nous pensons que, dans la mesure où un fichier d'échange peut devenir fragmenté et que la fragmentation ralentit l'accès au swap, une partition constitue une meilleure approche. Bien sûr, définir un fichier d'échange de taille statique revient à peu près à la même chose, mais cela semble subjectivement plus net.
Cette approche est-elle la seule vraie voie? Probablement pas, car la pratique a été établie il y a près de 10 ans. Le seul changement majeur survenu dans la technologie des disques au cours des années écoulées est la complexité des contrôleurs RAID que nous utilisons (nous ne sommes pas encore assez riches pour les disques SSD). L'augmentation de la taille des disques signifie que la partition swap que nous créons est plus proche de son début qu'elle ne l'était à l'époque où les disques de 18 Go étaient livrés en standard. Les vitesses de swap sont donc encore plus rapides qu'auparavant.
Bien entendu, sur nos systèmes Windows basés sur ESX, la position du fichier d'échange est complètement inutile. Il y a tellement de couches de virtualisation entre le fichier d'échange et les plateaux de disques physiques que cela n'a pas d'importance. Mais nous le conservons sur une partition séparée car ce n'est que la norme.
la source
L'utilisation d'un fichier d'échange peut utiliser un peu plus de mémoire pour la traduction de fichier à mémoire. Nous parlons de moins de 1 Mo de mémoire par échange de 1 Go. Le cache du système de fichiers NE met PAS en cache les données échangées, mais uniquement les données d'organisation, ce qui devrait représenter l'essentiel de la mémoire supplémentaire requise.
En outre, je doute que vous perdiez toute performance raisonnable, sauf peut-être une fois sur 1 000 fois la tête cherchée de plus.
Fait amusant, l’utilisation de zswap avec un fichier d’échange à extension dynamique permet d’obtenir une vitesse impressionnante lors des opérations d’échange, à un coût minime, sans être utilisé.
la source