Linuxのhuge pagesについて説明します。 Huge pagesとは何か、それを設定する方法、現在の状態を確認する方法、およびそれを無効にする方法を理解してください。
この記事では、huge pagesについての詳細を説明して、Linuxのhuge pagesとは何ですか? Huge pagesを有効/無効にするには? 巨大なページの値を決定するには? RHEL6、Rhel7、UbuntuなどのLinuxでは。
Huge pagesの基本から始めましょう。Linuxの巨大ページとは何ですか?Huge pagesは、Linuxシステムでの仮想メモリ管理に役立ちます。
Huge pagesは、Linuxシステムでの仮想メモリ管理に役立ちます。 名前が示すように、標準の4KBページサイズに加えて、メモリ内の巨大なサイズのページを管理するのに役立ちます。 Huge pagesを使用して、1GBのページサイズと同じ大きさを定義できます。
システムブート中に、アプリケーション用のhuge pagesを使用してメモリ部分を予約します。 このメモリ部分、すなわちhuge pagesによって占有されているこれらのメモリは、メモリからスワップされることはありません。 設定を変更するまでそこに固執します。 これにより、かなり大きなメモリ要件を持つOracle databaseのように、アプリケーションのパフォーマなぜ巨大なページを使用するのですか?
仮想メモリ管理では、カーネルは仮想メモリアドレスの物理アドレスへのマッピングを持つテーブルを維持します。 ページトランザクションごとに、カーネルは関連するマッピングをロードする必要があります。 サイズが小さいページがある場合は、より多くのマッピングテーブルをロードするために、カーネル結果のページ数を増やす必要があります。 これは性能を低下させる。
huge pagesを使用すると、必要なページが少なくなります。 これにより、カーネルがロードするマッピングテーブルの数が大幅に減少します。 これにより、カーネルレベルのパフォーマンスが向上し、最終的にアプリケーシ
要するに、huge pagesを有効にすることで、システムは対処するページテーブルが少なくなり、それらにアクセス/維持するためのオーバーヘッドが少なくなりま
huge pagesを設定するには?
以下のコマンドを実行して、現在のhuge pagesの詳細を確認します。上記の出力では、1ページのサイズが2MBであることがわかりますHugepagesize
HugePages_Total
。 この巨大なページサイズは、2MBから最大1GBに増やすことができます。
以下のスクリプトを実行して、システムが現在必要としているhuge pagesの量を取得します。 スクリプトはOracleからのもので、見つけることができます。あなたはそれを保存することができます/tmp
hugepages_settings.sh
以下のように実行します :
root@kerneltalks # sh /tmp/hugepages_settings.shRecommended setting: vm.nr_hugepages = 124
出力は、上記のサンプル出力に示すように、いくつかの数値に似ています。
これは、システムがそれぞれ124メガバイトの巨大なページを必要とすることを意味します! ページサイズとして4MBを設定した場合、出力は62になります。 あなたは右、ポイントを得ましたか?
カーネルでhugepagesを設定
最後の部分は、上記のカーネルパラメータを設定し、それをリロードすることです。 以下の値を/etc/sysctl.conf
sysctl -p
コマンドを発行して設定をリロードします。
vm.nr_hugepages=126
カーネルに2つの余分なページを追加したことに注意してください。
これで、カーネルにhugeページが設定されましたが、アプリケーションがそれらを使用できるようにするには、メモリ制限も増やす必要があります。 新しいメモリ制限は、126ページx各2MB=252MB、つまり258048KBにする必要があります。以下の設定を編集する必要があります/etc/security/limits.conf
soft memlock 258048 hard memlock 258048
時には、これらの設定は、Oracle DBのようなアプリ固有のファイルで構成されています/etc/security/limits.d/99-grid-oracle-limits.conf
これらの新しいhuge pagesを利用するには、アプリケーションを再起動することをお勧めします。hugepagesを無効にする方法は?
HugePagesは通常、デフォルトで有効になっています。 Huge pagesの現在の状態を確認するには、以下のコマンドを使用します。出力のフラグは、hugepagesがシステムで有効になっていることを示します。redhatベースのシステムの場合、ファイルパスは/sys/kernel/mm/redhat_transparent_hugepage/enabled
huge pagesを無効にしたい場合は、kernel
transparent_hugepage=never
/etc/grub.conf
とシステムを再起動します。