
私のコンピュータに多くの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に変更すると、メモリが無駄になりすぎます。多くの(数十の)サブプロセスとデーモンは数キロバイトのメモリしか占有しません。こんなに安いメモリがありますか?