Je me demande quelle est la différence entre la création d'un fichier d'échange avec
fallocate -l 1G /swapfile
et
dd if=/dev/zero of=/swapfile bs=1024 count=1024
les deux semblent bien fonctionner, mais l'un a-t-il un avantage sur l'autre?
La seule chose que j'ai pu trouver en ligne est que fallocate
cela ne fonctionne pas sur tous les systèmes de fichiers.
fallocate
est généralement plus rapide (car il ne remplit pas le fichier créé avec des zéros) - sinon aucune différence cependant, le résultat final est le même. Voir: antipaucity.com/2017/08/31/…Réponses:
Depuis la
mkswap
page de manuel :Et à partir de la
swapon
page de manuel :Il s'ensuit que, bien que
fallocate
plus rapide quedd
cela, il ne convient pas pour créer des fichiers d'échange et n'est pas pris en charge par les outils liés à l'échange.la source
fallocate --length 8GiB swapfile
je suis confus.fallocate
serait un problème. Il semble, bien, allouer l'espace. (Comme il est dit sur l'étiquette.) Et fairefallocate -l 1g /swaptest && mkswap /swaptest && swapon /swaptest
surext4
ne se plaint de rien.truncate -l 1g
serait différent, car il définit simplement la taille du fichier mais n'alloue aucun bloc.Fallocate est plus rapide, à partir de la page de manuel fallocate:
fallocate est utilisé pour manipuler l'espace disque alloué pour un fichier, soit pour le désallouer, soit pour le préallouer. Pour les systèmes de fichiers qui prennent en charge l'appel système fallocate, la préallocation se fait rapidement en allouant des blocs et en les marquant comme non initialisés, ne nécessitant pas d'E / S sur les blocs de données. C'est beaucoup plus rapide que de créer un fichier en le remplissant de zéros.
fallocate(1)
la source