![マイメモリページのサイズを変更しますか?](https://linux33.com/image/33357/%E3%83%9E%E3%82%A4%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F.png)
私のコンピュータに多くの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に変更すると、メモリが無駄になりすぎます。多くの(数十の)サブプロセスとデーモンは数キロバイトのメモリしか占有しません。こんなに安いメモリがありますか?