チューニングとパフォーマンスの目的で、Linuxのメモリ管理をもう少し明確にしようとしています。
IBMのWebサイトにあるこの非常に興味深いレッドブック「Linuxパフォーマンスとチューニングのガイドライン」を読んだことで、私は完全には理解していないことに気づきました。
IA-32などの32ビットアーキテクチャでは、Linuxカーネルは最初のギガバイトの物理メモリ(予約範囲を考慮すると896 MB)のみを直接アドレス指定できます。いわゆるメモリより上のメモリは
ZONE_NORMAL、下位1GBにマップする必要があります。このマッピングはアプリケーションに対して完全に透過的ですが、メモリページを割り当てるとZONE_HIGHMEMパフォーマンスがわずかに低下します。
- 896 MBを超えるメモリを下位1GBにマッピングする必要があるのはなぜですか?
- にメモリページを割り当てることでパフォーマンスに影響があるのはなぜ
ZONE_HIGHMEMですか? - その時は何に
ZONE_HIGHMEM使われますか? - 最大4GB()を認識できるカーネルが
CONFIG_HIGHMEM=y最初のギガバイトを使用できるのはなぜですか?
前もって感謝します