無効にするTHP
私たちはすべての635マシンで以下を行いましたRHEL
(私たちはrhel 7.5
そのバージョンを持っていました)。
この行は、私たちがすべてのコンピュータで実行しているbashスクリプトからのものです。
ステップ1
[[ -f /sys/kernel/mm/transparent_hugepage/enabled ]] && echo never > /sys/kernel/mm/transparent_hugepage/enabled
[[ -f /sys/kernel/mm/transparent_hugepage/defrag ]] && 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]
しかし、このステップを考慮せずにマシンが実行されることが知られています。restarted/rebooted
ステップ2
だから私たちは同じことをして、次の行を追加しました。/etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
問題は次のとおりです。
step 1
上記のように本当に即時ですかdisabled
?THP
注 - 一般的な機械の追加情報があります。
sysctl -a | grep hugepage
vm.hugepages_treat_as_movable = 0
vm.nr_hugepages = 0
vm.nr_hugepages_mempolicy = 0
vm.nr_overcommit_hugepages = 0
引用する -透明で巨大なページ構成。
答え1
上記の手順1で実際にTHPはすぐに無効になりますか?
はい、あなたがするすべての事はsysfs
すぐに完了します。カーネル文書に文書化されています/transhuge.html
しかし、、引用https://access.redhat.com/solutions/46111
メモ:上記のコマンドを実行すると、新しいTHPの作成と使用のみが停止されます。上記のコマンドを実行したときに生成され使用されたTHPは、通常のメモリページに分解されません。 THPを完全に削除するには、システムを再起動し、起動時にTHPを無効にする必要があります。
一つある郵便はがきあなたと同じ問題です。そこ、ub3rst4r/etc/rc.local
すべてのサービスが開始された後に実行されるため、これは彼のユースケースでは機能しないと説明します。
したがって、同じカーネル文書に記載されている公式の方法に従うことをお勧めします。transhuge.html
...transparent_hugepage=never パラメータをカーネルコマンドラインに渡すことで、透明な hugepage サポートの sysfs 起動時間のデフォルト値を変更できます。
もちろん/etc/default/grub
。また、再起動後のテストをお勧めします
grep AnonHugePages /proc/meminfo
AnonHugePages: 0 kB
正しく無効にすると、0の値が得られます。