Désactiver la défragmentation THP et THP Sur l'instance CentOS 7 EC2

Je veux désactiver transparent_hugepage (THP) en copie CentOS 7 EC2, Ce qui est activé par défaut:

# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never

Ce paramètre peut être modifié manuellement:

# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]

... Mais les changements sont perdus après le redémarrage.

J'ai essayé de mettre

echo never [...]

Instructions dans le mien

rc.local

et

cloud.cfg

Fichiers, mais cela n'a pas fonctionné.

J'ai aussi essayé d'ajouter des paramètres

transparent_hugepage=never

À la chaîne de base

/etc/grub.conf

(Comme expliqué
http://docs.mongodb.org/manual ... ages/
), Mais cela ne s'est pas produit mieux.

alors ... Comment puis-je éteindre THP dans CentOS 7, Lancé sur une instance AWS EC2?

edit: Titre modifié ... Je dois éteindre THP

et

THP Défragmentation
Invité:

Dominique

Confirmation de:

La décision est B.
https://access.redhat.com/docu ... .html
, Comme indiqué @ michael-hampton. La complexité est que
https://access.redhat.com/docu ... .html
Le plugin ne peut que configurer

/sys/kernel/mm/transparent_hugepage/enabled

Réglage.

Désactiver

/sys/kernel/mm/transparent_hugepage/defrag

J'ai dû créer un script appelé par le profil au démarrage.

En fin de compte, une solution complète:

étape 1

: Créez un répertoire pour stocker un profil personnalisé:

mkdir /etc/tuned/custom

étape 2

: Créer un profil

/etc/tuned/custom/tuned.conf

:

[main]
include=virtual-guest

[vm]
transparent_hugepages=never

[script]
script=script.sh

Veuillez noter que ce profil est hérité de
https://access.redhat.com/docu ... .html
, qui était mon profil actif convient vraiment à un serveur virtualisé (EC2). Vous pouvez afficher votre profil actif à l'aide de l'équipe.

tuned-adm active

. Si vous êtes intéressé, vous pouvez vérifier le contenu des profils prédéfinis dans

/usr/lib/tuned/

étape 3

: Créer un script

/etc/tuned/custom/script.sh

:

#!/bin/sh

. /usr/lib/tuned/functions

start() {
echo never > /sys/kernel/mm/transparent_hugepage/defrag
return 0
}

stop() {
return 0
}

process $@

Faites-le effectué:

sudo chmod 755 /etc/tuned/custom/script.sh

étape 4

: Activez un nouveau profil:

tuned-adm profile custom

Maintenant, vous devez avoir:

# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]

Il sera sauvegardé après le redémarrage.

Catherine

Confirmation de:

En plus de définir la ligne de commande grub, Vous devez également configurer le fichier. tuned. Mais ne pas utiliser les instructions sur lesquelles vous vous référez, car ils sont si pleins d'erreurs qu'une demi-journée quittera leur explication.

Créer un profil personnalisé (Que je nomme

custom

), Puis réglez le profil. Vous basez-le sur un profil existant, tel que

virtual-guest

Si vous travaillez sur une machine virtuelle (EC2, bien sûr), ou

throughput-performance

Si vous êtes sur une machine physique.

Créez un répertoire pour stocker un profil personnalisé:

mkdir /etc/tuned/custom

Créez votre propre profil

/etc/tuned/custom/tuned.conf

, par exemple:

[main]
include=virtual-guest

[vm]
transparent_hugepages=never

Installez maintenant le profil:

tuned-adm profile custom

Dominique

Confirmation de:

Essayez aussi

Nano /etc/init.d/disable-transparent-hugepages

#!/bin/sh
### BEGIN INIT INFO
# Provides: disable-transparent-hugepages
# Required-Start: $local_fs
# Required-Stop:
# X-Start-Before: mongod mongodb-mms-automation-agent
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Disable Linux transparent huge pages
# Description: Disable Linux transparent huge pages, to improve
# database performance.
### END INIT INFO

case $1 in
start)
if [ -d /sys/kernel/mm/transparent_hugepage ]; then
thp_path=/sys/kernel/mm/transparent_hugepage
elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
thp_path=/sys/kernel/mm/redhat_transparent_hugepage
else
return 0
fi

echo 'never' > ${thp_path}/enabled
echo 'never' > ${thp_path}/defrag

unset thp_path
;;
esac

sudo chmod 755 /etc/init.d/disable-transparent-hugepages

sudo chkconfig --add disable-transparent-hugepages

Agathe

Confirmation de:

Vous pouvez éditer le fichier /etc/rc.local Et ajoutez-y la commande suivante:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

et courir

chmod +x /etc/rc.d/rc.local

Au script sera terminé pendant le téléchargement. Testé sur Amazon Linux 2.

Hannah

Confirmation de:

ÉDITER:

La réponse est plus élevée

mal

, Parce que les poignées transparentes d'énormes pages sont manquantes dans sysctl en ce moment. Désolé pour le bruit.

Vous pouvez entrer les valeurs souhaitées dans

/etc/sysctl.conf

.

De la page de référence sysctl.conf (5):

SYSCTL.CONF(5) File Formats SYSCTL.CONF(5)
NAME
sysctl.conf - sysctl preload/configuration file
DESCRIPTION
sysctl.conf is a simple file containing sysctl values to be read in and set by sysctl. The syntax is simply as follows:
# comment
; comment
token = value
Note that blank lines are ignored, and whitespace before and after a token or value is ignored, although a value can contain whitespace within. Lines which begin with a # or ; are considered
comments and ignored.
EXAMPLE
# sysctl.conf sample
#
kernel.domainname = example.com
; this one has a space which will be written to the sysctl!
kernel.modprobe = /sbin/mod probe

Pour répondre aux questions, connectez-vous ou registre