Xeon V5機でTHP(Transparent Huge Page)をオフにする

2 min read

こんにちは、無能です。

RHELのリリースノートを見ていたら気になる部分がありました。

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/9/html-single/9.3_release_notes/index#new-features

>glibc の Intel® Xeon® v5 ベースのハードウェアでの文字列およびメモリールーチンのパフォーマンスが向上

>以前は、文字列およびメモリールーチン用に glibc によって使用されるデフォルトのキャッシュ量により、Intel® Xeon® v5 ベースのシステムで、パフォーマンスが予想よりも低下していました。今回の更新では、パフォーマンスを向上させるために使用するキャッシュの量が調整されました。

https://bugzilla.redhat.com/show_bug.cgi?id=2180462

>The customer's system did boot with mitigations=off, and with transparent_hugepages (THP) disabled. Neither are needed to reproduce this problem, but disabling THP does enable the simple memcpy reproducer to achieve much higher performance.

現状でRHEL9.3でもこのキャッシュ量の調整をしている様子ですが、Redisでも推奨環境がTHPをオフにした方がよいというのも見たのでオフにしてみます。

以下で現状の設定を確認します。

$ sudo cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

動いていますね。デフォルトでは2MBが割り当てられているようです。

$ sudo cat /proc/meminfo | grep "Hugepagesize"
Hugepagesize:       2048 kB

rootユーザに切り替えてオフにしてみます。

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

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

rc.localに記述して起動時にオフになるようにします。

vi /etc/rc.local

で先頭に追記

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

---

なんとなくですがメモリもCPU使用率が一気に減ったような気がします。

まあ気のせいの可能性は高いですが使ってみないとわからないですね。
それでは。

またよろしくお願いいたします。