Deutsch   English   Français   Italiano  
<sj9afh$5ea$1@shakotay.alphanet.ch>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!news.imp.ch!news.alphanet.ch!alphanet.ch!.POSTED.localhost!not-for-mail
From: Marc SCHAEFER <schaefer@alphanet.ch>
Newsgroups: fr.comp.os.linux.configuration
Subject: Re: configuration du swap
Date: Sat, 2 Oct 2021 09:58:09 -0000 (UTC)
Organization: Posted through ALPHANET (https://news.alphanet.ch/)
Message-ID: <sj9afh$5ea$1@shakotay.alphanet.ch>
References: <fantome.forums.tDeContes-EA7AF4.21193619052021@news.free.fr> <s85ree$1nvh$1@news.gegeweb.eu> <s85s3v$4u4$1@shakotay.alphanet.ch> <60a69788$0$27422$426a34cc@news.free.fr> <fantome.forums.tDeContes-A2E955.22265229092021@news.free.fr> <61556cc8$0$20245$426a34cc@news.free.fr> <fantome.forums.tDeContes-290CB3.15421630092021@news.free.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 2 Oct 2021 09:58:09 -0000 (UTC)
Injection-Info: shakotay.alphanet.ch; posting-host="localhost:127.0.0.1";
	logging-data="5578"; mail-complaints-to="usenet@alphanet.ch"
User-Agent: tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-17-amd64 (x86_64))
Cancel-Lock: sha256:YrqBOyiogQlkl3pNJZdfekAPuFuMBA2E7KiNmodRwa8=
Bytes: 4602
Lines: 88

Thomas <fantome.forums.tDeContes@free.fr.invalid> wrote:
> qu'appelle-t-on "swap dynamique" ?
> 
> ce que j'en ai compris, c'est que ça fait des opérations d'augmentation 
> de la taille totale du swap, mais automatiquement en fonction du besoin

Alors, sous Linux, il est facile d'ajouter des fichiers de swap, lorsque
l'utilisateur perçoit un besoin, comme cela a été déjà dit.

D'ailleurs, pourquoi ne pas créer un fichier de swap  qui aurait des
trous?  (sparse file)

   $ dd if=/dev/zero of=/tmp/bla bs=1024k seek=100000 count=1
   # on peut aussi utiliser truncate(1): truncate -s 100G /tmp/bla

   $ ls -lah /tmp/bla
   -rw-r--r-- 1 schaefer schaefer 98G Oct  2 11:39 /tmp/bla

   $ du -h /tmp/bla
   1.0M    /tmp/bla

il s'agit d'un fichier qui apparaît comme environ 100 GB, mais qui en
fait contient uniquement 1 méga-octet alloué. A chaque écriture à un
endroit non encore alloué, le système allouera les blocs nécessaires.
Toute lecture non allouée retournera des blocs de zéros (ASCII NUL).

Evidemment, s'il n'y a pas de place sur le système de fichiers au moment
de l'allocation, ça finira mal.

Toutefois, `swapon /tmp/bla' ne va pas fonctionner sous 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.

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

Il n'y a pas de contraction: pour faire cela, on peut imaginer de temps
en temps un `swapoff $sw' puis `fallocate -d /tmp/bla', puis `swapon
$sw'. Ou, peut-être mieux: un nouveau fichier à trou de swap,
désactiver l'ancien et supprimer son fichier.

Il y a d'autres solutions pour optimiser le swap sous Linux:

   1) modifier certains paramètres, Linux swappe `trop' par défaut
      à mon avis et en particulier depuis certains kernels
      (il veut garantir qu'il y ait vraiment suffisamment de mémoire
       libre, ce qui est parfois exagéré)

      sur certains serveurs avec vraiment suffisamment de mémoire,
      je configure ainsi dans /etc/sysctl.conf:

         # swapper que si nécessaire
         vm.swappiness = 1

         # en particulier en présence de disques lents
         vm.vfs_cache_pressure=150

      toutefois, réduire l'envie de Linux de swapper peut réduire la
      performance, notamment si c'est aux dépens du cache disque, par
      exemple.

      Dans mon cas, après une analyse à long terme avec munin, ça a
      plutôt été extrêmement bénéfique.

   2) compresser le swap

Une solution intégrée pour 2 c'est:

   https://github.com/Nefelim4ag/systemd-swap

Cela ajoute notamment le support des sparse files (fichiers à trous), de
la compression du swap et d'un ram-disk compressé, et d'un système
d'allocation dynamique.

Il y a des instructions d'installation notamment pour Debian.

Je n'ai pas testé, et il y a une mise en garde sur la qualité du code.

Sauf erreur cela ne fait que d'utiliser des fonctions de Linux, de
manière intégrée.

Il semble même y avoir un script d'adaptation automatique du swap.