SSD et swap sur Linux (Ubuntu et variantes, Manjaro, etc…)

l’Almanet doLys Gnu/Linux – Open Source – Entreprises Forums L’almanet doLys Open Source SSD et swap sur Linux (Ubuntu et variantes, Manjaro, etc…)

Mots-clés : , , , , ,

11 sujets de 1 à 11 (sur un total de 11)
  • Auteur
    Articles
  • #1327
    nam1962nam1962
    Keymaster

      SSD et swap ne sont pas très copains..

      Si vous utilisez un SSD, swapper activement dessus peut-être fatal (même si les SSD modernes sont plus robustes que les premières générations.)

      SSD-logo
      Il est alors judicieux,

      • soit de mettre la partition swap sur un disque dur classique, (dans ce cas, modifiez la swappiness à 5 dans la commande ci-dessous)
      • soit de régler votre swappiness à 1 pour limiter la swap  ça ne devrait pas trop fatiguer votre SSD et éviter de rares blocages : on évite de swapper plutôt qu’interdire de swapper)

      Donc si vous n’avez qu’un SSD, passez :

      echo vm.swappiness=1 | sudo tee /etc/sysctl.d/99-swappiness.conf 
      echo vm.vfs_cache_pressure=50 | sudo tee -a /etc/sysctl.d/99-swappiness.conf
      sudo sysctl -p /etc/sysctl.d/99-swappiness.conf

      N’hésitez pas à indiquer si ce réglage est satisfaisant pour vous.

      Même si vous avez 8Go de RAM ou plus, pensez à ce réglage et à une swap ou /swapfile d’au moins la moitie de votre RAM (sous 4Go, la taille de la RAM, sous 2Go, quasi le double)
      Personnellement, j’utilise systemd-swap, pour régler ce script afin utiliser zram qui peut être judicieux pour un SSD (et désactiver zswap : les deux ne doivent pas cohabiter) il faudra amender ce que je conseille pour /etc/systemd/swap.conf.d/overrides.conf.

      Pour comprendre les cas d’utilisation de zram et zswap : https://askubuntu.com/questions/471912/ … 227#472227

      Un jeune site que j'aime bien, la ferrari du T-shirt ...bio en plus : GoudronBlanc

      #11733
      AvatarRiQ
      Participant

        configuration pour SSD, suite:

        d’ abord,
        pour la convivialité:
        – passer: sudo apt install gedit

        – Dans Menu/Gestionnaire de Paramètres> Applications favorites / Utilitaires / Emulateur de terminal: sélectionner « Terminal Gnome » ( fond blanc, bonne taille de police, copier/coller fonctionne )

        Au boulot !:

        – configurer Trim:
        passer:
        echo -e « #\x21/bin/sh\\nfstrim -v / » | sudo tee /etc/cron.daily/trim
        puis:
        sudo chmod +x /etc/cron.daily/trim

        – il faut laisser au minimum 5% du ssd vide (non formaté)
        Si l’ installation est déjà faite, à l’ aide de GParted, réduire la taille de la partition de droite pour libérer 5% de la capacité du SSD.

        – en passant: sudo gedit /etc/fstab, vérifier si la partition swap est inactive: la dernière ligne devrait être:
        /swapfile none swap sw 0 0

        – profiter de l’ occasion pour accélérer le démarrage:
        compléter errors=remount par noatime,discard,errors=remount

        suivi de:
        sudo gedit /etc/default/grub
        et modifier GRUB_CMDLINE_LINUX_DEFAULT= »elevator=quiet splash »
        à GRUB_CMDLINE_LINUX_DEFAULT= »elevator=deadline quiet splash noresume »
        puis :
        sudo update-grub
        puis: redémarrer

        – La mise en veille ou l’ hibernation sont mortels pour le SSD, donc, supprimer les boutons dans l’ écran de déconnection:
        passer:
        xfconf-query -c xfce4-session -np ‘/shutdown/ShowSuspend’ -t ‘bool’ -s ‘false’
        puis:
        xfconf-query -c xfce4-session -np ‘/shutdown/ShowHibernate’ -t ‘bool’ -s ‘false’
        puis:
        xfconf-query -l
        puis:
        sudo mkdir -v /etc/xdg/xfce4/kiosk
        sudo touch /etc/xdg/xfce4/kiosk/kioskrc
        sudo gedit /etc/xdg/xfce4/kiosk/kioskrc
        copier/coller:
        [xfce4-session]
        SaveSession=NONE
        et sauver

        – Aussi, limiter les écritures inutiles causées par les navigateurs:

        utiliser des bloqueurs de pub genre Ghostery , Adblock Plus, et Privacy Badger ( les 3 fonctionnent parfaitement simultanément ! )

        pour Firefox, taper about:config dans la barre d’ adresse
        « accepter le risque »
        Tout afficher
        chercher: browser.cache.disk.enable
        basculer en « false »
        chercher browser.cache.memory.enable
        basculer en « true »
        chercher chercher browser.cache.memory.capacity
        éditer 75000 au lieu de -1
        fermer Firefox

        pour Chromium ( dorénavant uniquement installable via « snap » ):
        créer un lanceur
        la commande dans le lançeur sera:
        env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/chromium_chromium.desktop /snap/bin/chromium %U
        remplacer par: chromium-browser –disk-cache-size=1 –media-cache-size=1 %U

        Redémarrer….
        et voilà le travail !

        #11767
        andsoandso
        Participant

          salut nam,
          toujours pas d’ accord avec ce réglage du swappiness

          ou le raleur rale

          tu te plantes en supposant que ce réglage est linéaire,
          ce que dit raleur:
          raleur :
          60 est la valeur par défaut du noyau Linux, elle n’est pas spécifique à Debian. Je répète que cette valeur ne correspond pas du tout à un seuil d’occupation de la mémoire. Il suffit d’examiner la sortie de la commande free pour le voir. Cela n’aurait aucun sens de laisser 60% par défaut de la mémoire libre (donc inutilisée), cela reviendrait à avoir 60% de mémoire en moins !

          La mémoire est faite pour être utilisée. TOUTE la mémoire. La mémoire libre est de la mémoire gaspillée.

          La mémoire est divisée en pages. En simplifiant à l’extrême, les pages mémoire se répartissent en deux catégories :

          les pages “anonymes” contenant les données des processus,
          les pages de cache contenant des données liées au système de fichiers, qui se répartissent elles-même en plusieurs catégories (pagecache, dentries, inodes) mais je n’entrerai pas dans les détails.

          Toutes les données lues ou écrites sur le système de fichiers sont mises en cache en mémoire. En lecture, cela permet d’accèder plus rapidement aux données déjà en cache sans avoir besoin de les recharger depuis le disque. En écriture, cela permet de ne pas attendre que les données soient effectivement écrites sur le disque.

          Quand le noyau a besoin d’allouer de la mémoire et que la mémoire libre est en deçà d’un certains seuil (qui n’a rien à voir avec vm.swappiness, je le répète), il va lancer une procédure “d’éviction” pour libérer de la mémoire. L’éviction consiste à décharger des données de la mémoire. Les pages candidates à l’éviction sont dans les deux catégories citées précédemment : les pages anonymes et les pages de cache. Les pages de cache contiennent des données qui sont déjà stockées sur disque ou qui ont vocation à y être stockées (écritures en attente). Les données déjà stockées sur disque peuvent être immédiatement supprimées, et celles en attente d’écriture sur disque peuvent être écrites puis supprimées.

          Les pages anonymes, en revanche, ne sont pas associées au système de fichiers. Avant de les décharger de la mémoire, elles doivent être écrites dans un espace du disque appelé “espace d’échange” ou swap. La encore, les pages qui ont été écrites dans le swap puis rechargées et utilisées sans être modifiées peuvent être immédiatement supprimées, alors que les pages qui n’ont jamais été écrites dans le swap ou qui ont été modifiées depuis leur précédente écriture doivent être écrites sur disque avant d’être supprimées.

          On peut constater une similitude des mécanismes d’échange entre les pages anonymes et le swap d’une part, et les pages de cache et le système de fichiers d’autre part. D’une certaine façon on pourrait dire que les pages anonymes sont le cache du swap.

          La valeur de vm.swappiness n’influe que sur la préférence du noyau à évincer des pages de cache (si valeur basse) ou anonymes (si valeur élevée). Mais ce n’est pas le seul critère qui entre en compte. Le noyau peut préférer swapper une page anonyme qui n’a pas été utilisée depuis longtemps plutôt qu’une page de cache qui a été utilisée récemment et a donc une plus grande probabilité d’être utilisée à nouveau.

          #11769
          Avatarbicounet18
          Participant

            Bonjour,
            Sous Manjaro, le fichier /etc/cron.daily/trim n’est pas nécessaire.
            pour activer Trim :
            sudo systemctl enable fstrim.timer
            Redémarrer pour activer Trim
            Vérification :

            systemctl status fstrim.timer
            fstrim.timer - Discard unused blocks once a week
                 Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; vendor preset: disabled)
                 Active: active (waiting) since Fri 2020-06-05 14:11:03 CEST; 2min 50s ago
                Trigger: Mon 2020-06-08 00:00:00 CEST; 2 days left
               Triggers: ● fstrim.service
                   Docs: man:fstrim

            1 fois par semaine la fonction Trim sera activée pour optimiser le SSD.

            #11770
            AvatarRiQ
            Participant

              les choses évoluent…
              à propos de Chromium, je disais:
              ==================================================================
              pour Chromium ( dorénavant uniquement installable via “snap” ):
              créer un lanceur
              la commande dans le lançeur sera:
              env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/chromium_chromium.desktop /snap/bin/chromium %U

              remplacer par: chromium-browser –disk-cache-size=1 –media-cache-size=1 %U
              ===================================================================
              en fait, je me suis planté dans le cadre de cette évolution ( >explication ), dans la mesure ou j’ ai installé chromium avant la nouvelle contrainte de l’ installation par « snap »

              en fait , dorénavant, si on installe chromium via « snap », la commande du lanceur sera:
              chromium-browser –disk-cache-size=1 –media-cache-size=1 %U
              pour ménager l’ usure du SSD

              à propos du commentaire de bicounet18, c’ est une bonne option…

              à propos du commentaire d’ andso, je pense que si on ne configure pas de swap ( dans fstab ), et avec le réglage que je préconise, il n’ y a aucun souci d’ usure du SSD, y’a qu’à surveiller le plugin « graphique processeur » pour voir qu’ il n’y a pas de « swapping »…., et tout débordement est géré en RAM ( à condition d’en avoir assez )
              je fais du montage vidéo, en gonflant le cache, et je surveille en travaillant….

              Y’a une opacité comment Windoze(10) gère ça, par rapport à l’ usure du SSD, peut-être qu’ on plante le système quand la RAM est saturée ( en fait, je veux pas le savoir, avec leur système NFTS de défragmentation, fatiguant pour le SSD )

              Peut-être, que pour les logiciels d’ édition photo – vidéo, le DD 7200 tpm est toujours plus pérène que le SSD…à voir… Dans ce cas, l’ idéal est d’avoir une « bécane bi » avec un SSD et un DD en parallèle
              ( certains portables font de la place pour 2 disques aussi )

              #11800
              Avatarbicounet18
              Participant

                On peut également supprimer le bouton « Mise en veille Hybride » dans l’écran de déconnexion avec :
                xfconf-query -c xfce4-session -np ‘/shutdown/ShowHybridSleep’ -t ‘bool’ -s ‘false’

                #12079
                andsoandso
                Participant

                  bonjour RiQ post 11733
                  je ne vois pas en quoi le suspend to ram (mise en veille)
                  peut nuire au ssd ?

                  #12082
                  AvatarRiQ
                  Participant

                    Voici,

                    la mécanique de la mise en veille est la suivante:

                    maintien du contenu du RAM, + création d’ une image du système, gardé en RAM, s’ il y a assez de place….

                    S’ il y a un risque de manque de mémoire vive, ou de risque de perte d’ alimentation,

                    provoquant une perte irréversible de données;

                    il vaut mieux configurer le système pour que l’ instantané soit enregistré en swap.

                    Comme il n’ est pas recommandé d’ utiliser un swap avec un SSD, pour ne pas « user » cette partition,

                    l’ alternative est de créer un dossier /swap, + configuration nécessaire, mais cette configuration

                    risque de causer un « mal au casque » au moment du réveil…, et de toute façon compliqué à configurer….

                    Perso, je n’ utilise pas de mise en veille, pour éviter les tracas de ce genre….

                    ça ne coûte que 30 secondes pour sauver et fermer le travail en cours, puis de redémarrer l’ ordi plus tard.

                    Y’ a qu’à lire les articles suivants pour comprendre:

                    https://www.kernel.org/doc/html/latest/power/swsusp.html

                    Straightforward tutorial on how to set up hibernation without a swap partition (swapfile) from linux

                    J’aime le diction:

                    « ça sert à rien de secouer, la dernière goutte est toujours dans la culotte »

                    #12093
                    andsoandso
                    Participant

                      bonjour,
                      je maintiens mon dire:
                      le suspend to ram géle le systéme
                      il y a forcémént assez de ram puisque celà « fonctionne »
                      et pas d’ utilisation du /swap
                      donc le ssd n’ est en aucune maniére sollicité!

                      faut arrêter de raconter des conneries

                      salutations

                      #12427
                      nam1962nam1962
                      Keymaster

                        @andso , @RiQ , @bicounet18 : j’ai résumé ce que j’ai pigé de l’activation de TRIM là : https://dolys.fr/forums/topic/1327/

                        Ok pour vous ?

                        Un jeune site que j'aime bien, la ferrari du T-shirt ...bio en plus : GoudronBlanc

                        #11761
                        Avatarbicounet18
                        Participant

                          5.6.15-1-MANJARO x86_64 – Xfce 4.14.2
                          Au redémarrage du PC
                          sudo dmesg –level err
                          [ 0.163229] DMAR: [Firmware Bug]: No firmware reserved region can cover this RMRR [0x000000007b800000-0x000000007fffffff], contact BIOS vendor for fixes
                          sudo dmesg –level warn

                          [    0.092840] Kernel parameter elevator= does not have any effect anymore.
                                         Please use sysfs to set IO scheduler for individual devices.
                          [    0.163233] DMAR: [Firmware Bug]: Your BIOS is broken; bad RMRR [0x000000007b800000-0x000000007fffffff]
                                         BIOS vendor: American Megatrends Inc.; Ver: E1795IMS.11D; Product Version: REV:1.0
                          [    0.400203] MDS CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html for more details.
                          [    0.400203] TAA CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_async_abort.html for more details.
                          [    0.439777]  #5 #6 #7
                          [    0.528164] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
                          [    0.631780] pci 0000:00:01.0: ASPM: current common clock configuration is broken, reconfiguring
                          [    3.580157] nvidia: loading out-of-tree module taints kernel.
                          [    3.580168] nvidia: module license 'NVIDIA' taints kernel.
                          [    3.580169] Disabling lock debugging due to kernel taint
                          [    3.695347] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  440.82  Wed Apr  1 20:04:33 UTC 2020
                          [    3.768688] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20200110/nsarguments-59)
                          [    4.840313] thermal thermal_zone4: failed to read out thermal zone (-61)
                          [    5.728185] kauditd_printk_skb: 43 callbacks suppressed
                          [    6.151234] uvcvideo 1-11:1.0: Entity type for entity Realtek Extended Controls Unit was not initialized!
                          [    6.151236] uvcvideo 1-11:1.0: Entity type for entity Extension 4 was not initialized!
                          [    6.151238] uvcvideo 1-11:1.0: Entity type for entity Processing 2 was not initialized!
                          [    6.151240] uvcvideo 1-11:1.0: Entity type for entity Camera 1 was not initialized!
                          [   10.768992] kauditd_printk_skb: 18 callbacks suppressed
                        11 sujets de 1 à 11 (sur un total de 11)
                        • Vous devez être connecté pour répondre à ce sujet.