X-Received: by 2002:adf:bbc8:: with SMTP id z8mr2877210wrg.281.1633171373130; Sat, 02 Oct 2021 03:42:53 -0700 (PDT) Path: ...!news-out.google.com!nntp.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!cleanfeed3-a.proxad.net!nnrp4-2.free.fr!not-for-mail Subject: Re: configuration du swap Newsgroups: fr.comp.os.linux.configuration References: <60a69788$0$27422$426a34cc@news.free.fr> <61556cc8$0$20245$426a34cc@news.free.fr> From: Pascal Hambourg Date: Sat, 2 Oct 2021 12:42:52 +0200 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: Lines: 56 Message-ID: <615837ac$0$6460$426a74cc@news.free.fr> Organization: Guest of ProXad - France NNTP-Posting-Date: 02 Oct 2021 12:42:52 CEST NNTP-Posting-Host: 213.41.155.166 X-Trace: 1633171372 news-3.free.fr 6460 213.41.155.166:46780 X-Complaints-To: abuse@proxad.net Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Bytes: 3766 Le 02/10/2021 à 11:58, Marc SCHAEFER a écrit : > > D'ailleurs, pourquoi ne pas créer un fichier de swap qui aurait des > trous? (sparse file) Parce que ce n'est pas supporté. Tous les blocs doivent être alloués et mappables. Extrait de swapon(8) : ================================================== Files with holes The swap file implementation in the kernel expects to be able to write to the file directly, without the assistance of the filesystem. This is a problem on files with holes or on copy-on-write files on filesystems like Btrfs. Commands like cp(1) or truncate(1) create files with holes. These files will be rejected by swapon. Preallocated files created by fallocate(1) may be interpreted as files with holes too depending of the filesystem. Preallocated swap files are supported on XFS since Linux 4.18. The most portable solution to create a swap file is to use dd(1) and /dev/zero. ================================================== > Toutefois, `swapon /tmp/bla' ne va pas fonctionner sous root Ah, swapon fonctione sous un utilisateur non root ? > car il > estime que les fichiers à trous, c'est mal: forcer de l'allocation > d'espace dans le filesystem au moment même où on est probablement bas > dans la disponibilité de la mémoire vive n'est, à son avis, pas une > bonne idée. Non, ce n'est pas la raison principale. Tout swap est utilisé comme un périphérique bloc, même quand c'est un fichier ; la seule différence, c'est qu'au lieu d'utiliser tous les blocs du périphérique le swap va utiliser seulement les blocs alloués au fichier en y accédant directement sans passer par le système de fichiers. C'est pour cela que les blocs doivent être alloués et mappables. C'est aussi pour cela que lorsqu'on utilise un fichier de swap pour l'hibernation, on ne spécifie pas le fichier de swap pour la reprise mais le périphérique bloc sous-jacent et l'offset du début du fichier dans celui-ci. > Si l'on le veut vraiment, on peut le faire quand même: sous root: > > sw=$(losetup -f) > losetup $sw /tmp/bla > chmod 600 $sw > mkswap $sw > swapon $sw Bonjour les performances pourries. Et effectivement on est à la merci des besoins en mémoire du système de fichiers.