10
septembre
2020
16:39

«Configuration de la compression de RAM à l'aide de zswap»

10 septembre 2020 16:39

Lorsque la RAM se termine, l'ordinateur devient très lent, car il y a un appel au fichier de pompage (SWap) на жестком диске. Для решения этой проблемы придуман модуль zswaP. Par défaut, il est désactivé dans le système d'exploitation Linux, mais vous pouvez l'utiliser.

ПочEn ai-je besoin pour utiliser ZSWAP? 2 gaines de 2 Go ont été installées, mais physiquement, la carte mère ne prend en charge que 3 Go - c'est la restriction de la carte mère en fonction du chipset Intel 82945. Sur l'autre ordinateur, également sous Linux, 1 Go et 2 Go de supports (seulement 3 Go) sont installés, ils sont généralement suffisants pour travailler sur Internet. Mais parfois, lors de l'ouverture de grands fichiers PDF ou des photos de RAM, cela peut se terminer ...

Choix: Zram или zswaP.

zram применяют для постоянного сжатия страниц - в памяти выделяют раздел swaP, dans lequel les pages de mémoire compressées se produisent sous forme de fichier de pompage ordinaire, mais dans un RAM rapide.

Zswap не выделяет раздел в памяти - лишь динамический объем (пул) в ОЗУ, в который попадают лишь те страницы, которые являются кандидатами для попадания в физический файл swaP. Avant le placement dans la piscine, les pages sont également contractées.

Étant donné que la quantité de mémoire est suffisamment grande, je n'ai pas besoin de compression constante de la RAM, car z fait zram. Il est nécessaire d'assurer un manque de swap sur le disque dans le cas lorsque la RAM est proche du remplissage.

Solution:

  1. Dans la ligne du chargeur de démarrage Grub, qui est responsable de la transmission des paramètres du noyau, j'indique l'appel du module Zswap:

    sudo nano /etc/default/grub

Corrigé la ligne grub_cmdline_linux_default à ce qui suit:

GRUB_CMDLINE_LINUX_DEFAULT="noresume zswap.enabled=1 zswap.zpool=z3fold zswap.compressor=lz4 zswap.max_pool_percent=35"

GRUB_CMDLINE_LINUX=""

  1. Mise à jour de la configuration de Grub:

    sudo update-grub

  2. Autorisé le chargement des modules pour une compression élargie

    sudo nano /etc/initramfs-tools/modules

Lignes supplémentaires:

lz4
lz4_compress
z3fold

Et a conservé les changements.

  1. Lancé la mise à jour du fichier initrd (который содержит iniramfs - начальную файловую систему для загрузки в оперативную память в момент загрузки ОС; второй частью ядра является статический файл vmLinuz, qui ne change pas avec cette commande et contient le noyau lui-même):

    sudo update-initramfs -u

  2. Recharger le système

    sudo reboot

  3. Examen.

  • Il n'y avait pas de compression de la RAM pour configurer le module.

    dmesg | grep zswap

  • Après la première inclusion sans modules LZ4, LZ4COmpress команда dmESG a sorti
    [2.690663] ZSWap: loaded using pool lzo/Zbud

  • Après la teinture finale avec l'inclusion du module LZ4, LZ4COmpress и z3fold вывод команды dmESG est le suivant:
    [2.734842] ZSWap: loaded using pool lz4/Z3fold


Remarques:

  1. La différence entre les méthodes de compression LZO de LZ4 dans les vitesses de compression / déballage - LZ4 a le plus élevé parmi toute la vitesse de compression et de décompression.
  2. Sur les systèmes avec un petit volume de RAM au lieu de ZSWap.zpool=z3fold лучше попробовать zswap.zpool=zsmaLLOC (degré de compression à 7).
  3. La taille maximale de la piscine pour les pages comprimées de Kesha a sélectionné 50%, car selon Free -h на компьютере с 3 Гб озу размер кеша составляет 600 Мбайт и 1.1 Гб свободно (1.7 Гб составляют примерно 50% объёма ОЗУ 3Гб). На системах с малым объёмом ОЗУ предельное значение zswap.max_pool_perCent devrait se réduire à 10 à 15% afin qu'il soit de 200 à 300 Mo. La taille du pool (cache comprimé) est des pages dynamiques.

    Ajout de 10.06.2021 : Après une augmentation du fichier de configuration / etc / default/grub параметра zswap.max_pool_percent с 50 до 70 и выполнения команды sudo update-grub размер свободной оперативной памяти (free) увеличился c 213 до 500 Мбайт, видимо за счет сжатия оперативной памяти. По моему мнению, оптимальный размер max_pool_percent для максимальной экономии ОЗУ лежит диапазоне от 70 до 90%. При параметре max_pool_percent на уровне 90%, я не заметил замедления работы программа и операционной системы в целом. После увеличения zswap.max_pool_percent до 90, размер свободного ОЗУ при запущенном браузере Mozilla Firefox лежит в диапазоне 908...937 Мбайт. Скорость работы браузера Firefox a également augmenté.

Ajout de 10.21.2021: àmax_pool_percent=90 наблюдал на сайте "Госуслуг" при отправке заполненной формы для переписи населения РФ возникновение сильного свопинга. Уменьшил max_pool_percent=35 (около 1 Гбайт ОЗУ), выполнил sudo update-grub и перезагрузил ПК. Видимо, излишнее повышение параметра max_pool_perCent, plus de 50%, n'est pas souhaitable.

Ajouter 2023. Statistiques de travail Conclusion Zswap

Apportez l'écran des paramètres actuels ZSWAP

grep -R . /sys/module/zswaP.

Statistiques de travail ZSWAP (débogage):

sudo grep -R . /sys/kernel/debug/zswap/

Si ZSWap включен, но в статистике нет сжатых страниц (/sys/kernel/debug/zswap/stored_pages:0), это означает, что операционной системе оперативной памяти хватает. В этом случае отладка zswap будет выдавать нули, т.к. ожидающих выгрузку в swaP pages sans mémoire.

Sources:



Publications connexes