[StackOverflowで不適切に見える場所に質問を移動しました。]
カーネルは、default_hugepagesz=1G
デフォルトのページサイズを定義するオプションで始まります。したがって、アプリケーションに大量のメモリが必要な場合、カーネルはこれに1Gページを割り当てます。
カーネルが起動すると、hugepages=N
起動時にN個の大きなページが割り当てられます。では、この場合、カーネルは自動的にこのプールからページを取得し、メモリ割り当て時間を節約しますか?
このプールに使用可能なページがない場合、カーネルはどのように大きなメモリを割り当てますか?
答え1
起動時に hugepage を割り当てると、メモリの断片化が発生する前にページが事前に割り当てられるという利点があります。割り当てられた hugepages の数は、実行時に変更され、オーバーコミット制限が設定される場合があります。 hugepagesに変換するのに十分なページがある限り、カーネルは必要に応じてオーバーコミット制限まで新しいhugepagesを割り当てます。
バラより関連カーネル文書もっと学ぶ。