Transparent Huge Pagesの無効化
4003 ワード
全文はMongoDBの公式マニュアルに翻訳され、原版を維持するために尽力しています.しかし、能力には限界がある.起動スクリプト tundedとktune を使用構成が有効かどうかをテストする 注意:このページでは、Red Hat Enterprise LinuxおよびCentOS 6、7でTransparent Huge Pageを無効にする方法について説明しています.THPの無効化を他のシステムで実行する場合は、対応するドキュメントを参照してください.
Transparent Huge Pages(THP)はLinuxメモリ管理メカニズムであり、Translation Lookaside Buffer(TLB)がlarger memory pagesを使用する場合のアドレスオーバーヘッドを低減する.しかし、データベース・システムは、連続メモリ・アクセス・モードではなく、疎化する傾向があるため、THPを使用するとパフォーマンスが低下することが多い.LinuxホストでTHPを無効にして、MongoDBのパフォーマンスを最適化する必要があります.
重要:tunedまたはktuneを使用している場合(たとえば、Red HatまたはCentOS 6以降を使用している場合は、THPが再有効にならないように>追加の設定を追加する必要があります.tunedとktuneの使用を参照してください.
このファイルを作成し、次の
リリースとコマンド
UbuntuとDebian
Red Hat, CentOS, Amazon Linux, and derivatives
tunedまたはktuneを使用している場合(たとえば、Red HatまたはCentOS 6以降を使用している場合は、上記の設定を保護するためにすぐに構成する必要があります.
tunedまたはktuneを使用している場合は、起動スクリプトのインストールに加えて、この手順を実行する必要があります.
tunedとktuneはダイナミックカーネル調整ツールであり、RedhatまたはCentOSでTHPを無効にすることができます.tunedまたはktuneでTHPを無効にするには、
デフォルトのプロファイルを関連ディレクトリからコピーして名前を変更します.この例ではdefaultをコピーしnp-topと名前を付けます.
編集
このファイルのstart()ブロック、return 0の前に.
新しいtunedプロファイルディレクトリを作成します.
sudo mkdir/etc/tuned/no-thp
次のコマンドを使用してTHPステータスを確認します.
Red Hat Enterprise LinuxまたはCentOSまたはRed hat Linuxベースの他のリリースでは、次のコマンドを使用する必要があります.
出力結果は
Transparent Huge Pages(THP)はLinuxメモリ管理メカニズムであり、Translation Lookaside Buffer(TLB)がlarger memory pagesを使用する場合のアドレスオーバーヘッドを低減する.しかし、データベース・システムは、連続メモリ・アクセス・モードではなく、疎化する傾向があるため、THPを使用するとパフォーマンスが低下することが多い.LinuxホストでTHPを無効にして、MongoDBのパフォーマンスを最適化する必要があります.
起動スクリプト
重要:tunedまたはktuneを使用している場合(たとえば、Red HatまたはCentOS 6以降を使用している場合は、THPが再有効にならないように>追加の設定を追加する必要があります.tunedとktuneの使用を参照してください.
1.起動スクリプトの作成
このファイルを作成し、次の
/etc/init.d/disable-transparent-hugepages
に書き込みます.#!/bin/bash
### 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
re='^[0-1]+$'
if [[ $(cat ${thp_path}/khugepaged/defrag) =~ $re ]]
then
# RHEL 7
echo 0 > ${thp_path}/khugepaged/defrag
else
# RHEL 6
echo 'no' > ${thp_path}/khugepaged/defrag
fi
unset re
unset thp_path
;;
esac
2.実行可能権限の付与:
sudo chmod 755 /etc/init.d/disable-transparent-hugepages
3.このスクリプトの起動を設定します。
リリースとコマンド
UbuntuとDebian
sudo update-rc.d disable-transparent-hugepages defaults
SUSE sudo insserv /etc/init.d/disable-transparent-hugepages
Red Hat, CentOS, Amazon Linux, and derivatives
sudo chkconfig --add disable-transparent-hugepages
4.tunedとktuneの設定を上書きする
tunedまたはktuneを使用している場合(たとえば、Red HatまたはCentOS 6以降を使用している場合は、上記の設定を保護するためにすぐに構成する必要があります.
tunedまたはktuneの使用
tunedまたはktuneを使用している場合は、起動スクリプトのインストールに加えて、この手順を実行する必要があります.
tunedとktuneはダイナミックカーネル調整ツールであり、RedhatまたはCentOSでTHPを無効にすることができます.tunedまたはktuneでTHPを無効にするには、
never
のステータスを設定するための新しいプロファイルを作成する必要があります.RedhatとCentOS 6
1.新しいプロファイルの作成
デフォルトのプロファイルを関連ディレクトリからコピーして名前を変更します.この例ではdefaultをコピーしnp-topと名前を付けます.
sudo cp -r /etc/tune-profiles/default /etc/tune-profiles/no-thp
2.ktuneを編集する.sh
編集
/etc/tune-profiles/no-thp/ktune.sh
には、次の行が追加されます.set_transparent_hugepages never
このファイルのstart()ブロック、return 0の前に.
3.このファイルを使用可能にする
sudo tuned-adm profile no-thp
Red Hat /Cent OS 7
1.新規ファイルの作成
新しいtunedプロファイルディレクトリを作成します.
sudo mkdir/etc/tuned/no-thp
2.tuned.の編集confファイル
/etc/tuned/no-thp/tuned.conf
を作成してコンパイルし、次のように書き込みます.[main]
include=virtual-guest
[vm]
transparent_hugepages=never
3.イネーブルファイル:
sudo tuned-adm profile no-thp
構成のテスト
次のコマンドを使用してTHPステータスを確認します.
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
Red Hat Enterprise LinuxまたはCentOSまたはRed hat Linuxベースの他のリリースでは、次のコマンドを使用する必要があります.
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
cat /sys/kernel/mm/redhat_transparent_hugepage/defrag
出力結果は
always madvise [never]