Dans CentOS 7, comment définir le memory.swappiness par défaut pour tous les groupes de contrôle systemd ? Je peux le faire par groupe de contrôle via l'option ControlGroupAttribute, mais je voudrais remplacer la valeur par défaut de 60 pour tous les groupes de contrôle.

answer

Si vous voulez le faire pour TOUS les groupes de contrôle, voulez-vous le faire pour l'ensemble du système ? Si c'est le cas, vous pouvez définir le swappiness à l'échelle du système dans "/etc/sysctl.conf". La ligne que vous modifieriez est "vm.swappiness=" que vous pouvez définir sur n'importe quoi de 0 à 100.

En guise d'avertissement juste à quiconque déplace cette valeur afin d'éviter complètement l'échange, définir ce paramètre très bas désactivera presque entièrement la pagination à la demande, ce qui est un moyen très utile d'extraire les pages inactives de la RAM et de les échanger. Oui, c'est "l'échange", mais ce n'est pas une chose aussi désespérée que l'ancien sens traditionnel de l'échange lorsque nous manquons de mémoire. La pagination à la demande est particulièrement utile dans les bases de données volumineuses et ne devrait pas vraiment ralentir quoi que ce soit. Cela vaut certainement mieux que d'échanger des éléments lorsque nous n'avons plus de mémoire à la dernière seconde, car la pagination à la demande aide à empêcher que cela ne se produise en premier lieu alors que le système ne l'est pas.s'arrêter, plutôt qu'après. Un paramètre de 0 pour vm.swappiness à l'échelle du système peut amener un système à tuer les processus OOM lorsqu'il est soumis à une forte pression, ce qui peut entraîner la panne de l'ensemble du système dans une panique du noyau.

A noter également, vous devez faire appel au fichier sysctl.conf pour être lu après l'avoir modifié. # sysctl -plit les lignes qui ont été modifiées dans /etc/sysctl.conf. vm.swappiness peut être modifié sur un système en cours d'exécution de cette façon, ou en utilisant procfs ainsi : # echo 50 > /proc/sys/vm/swappinessoù 50 est un nombre compris entre 0 et 100.