マイメモリページのサイズを変更しますか?

マイメモリページのサイズを変更しますか?

私のコンピュータに多くのRAMを追加し、再びRAMが不足しないので、カーネルのページサイズを4KBから4MBに変更したいと思います。

そのアイデアは、大量のメモリが必要なプログラムがページを割り当てるのに少ない時間を費やすことです。これでパフォーマンスが向上すると思って試してみたいと思います。

走っている間はどこにも見つかりませんでしたmake menuconfig。これを行う方法はありますか?

答え1

PAGESIZEは、カーネルのコンパイル時に設定されます。この選択はi386ハードウェアにのみ有効です。 64ビットシステムまたは他のアーキテクチャを実行している場合、ページサイズは4Kであり、変更できません。

答え2

あなたは一度見たいと思うかもしれませんTransparent Hugepages。 .config キーは CONFIG_TRANSPARENT_HUGEPAGE です。この機能を有効にしても、自動的に巨大なページは表示されません。デフォルトに設定するには、CONFIG_TRANSPARENT_HUGEPAGE_MADVISEを "n"に設定する必要があります。

また、任意のページサイズを選択することはできません。スキーマを使用して巨大なページサイズを許可します。 x86_64の場合は1Mbです。https://en.wikipedia.org/wiki/Page_(computer_memory)#Huge_pagesフルテーブル用。

答え3

ボードはあなたが探している正確なソリューションのようです。スラブはカーネルによって事前に割り当てられたメモリ単位であり、割り当てのオーバーヘッドをある程度避ける必要があります。これは正確に達成したいと思います。

詳細については、次を参照してください。Wikipedia: スラブ割り当て

ページサイズ(可能な場合)を1MiBに変更すると、メモリが無駄になりすぎます。多くの(数十の)サブプロセスとデーモンは数キロバイトのメモリしか占有しません。こんなに安いメモリがありますか?

関連情報