Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第7章 Memory

本章では、Red Hat Enterprise Linux 7 のメモリー管理機能について簡単に説明します。「留意事項」 ではパフォーマンスに影響を与えるメモリー関連の要因について説明します。「パフォーマンスの問題の監視と診断」 ではメモリーの使用や設定内容に関連するパフォーマンス問題の分析に Red Hat Enterprise Linux 7 のツールを利用する方法について説明しています。「システムメモリー容量の設定」「HugeTLB Huge Page の設定」 では Red Hat Enterprise Linux 7 でメモリーに関するパフォーマンスの問題を解決する際に利用できるツールやストラテジーについて説明しています。

7.1. 留意事項

Red Hat Enterprise Linux 7 はデフォルトでは適度な負荷向けに最適化されています。使用するアプリケーションまたは負荷が大量のメモリーを必要とする場合は、システムが仮想メモリーを管理する方法を変更すると、アプリケーションのパフォーマンスが改善される場合があります。

7.1.1. 大きなページサイズ

物理メモリーは、ページと呼ばれる単位で管理されます。Red Hat Enterprise Linux 7 でサポートされるほとんどのアーキテクチャーでは、メモリーページのデフォルトサイズは 4 KB です。このデフォルトのページサイズは、さまざまな種類の負荷をサポートする Red Hat Enterprise Linux 7 などの汎用的なオペレーティングシステムに適しています。
ただし、特定のアプリケーションは、特定のケースで大きなページサイズを使用する利点を得られます。たとえば、4 KB ページの使用時に、数百メガバイト、数十ギガバイトの大容量かつ比較的固定のデータのセットで動作するアプリケーションは、パフォーマンスの問題を抱える可能性があります。このようなデータセットには数十万の 4 KB ページが必要になることがあるため、オペレーティングシステムと CPU でオーバヘッドが発生することがあります。
Red Hat Enterprise Linux 7 では、大きなデータセットを使用するアプリケーションに対して大きなページサイズを使用できます。大きなページサイズを使用すると、このようなアプリケーションのパフォーマンスが向上することがあります。
Red Hat Enterprise Linux 7 では、HugeTLB 機能(本書では static huge pages とも呼ばれる)と Transparent Huge Page 機能の 2 つの異なる Huge Page 機能を利用できます。

7.1.2. TLB (Translation Lookaside Buffer) サイズ

ページテーブルからのアドレスマッピングの読み込みには時間とリソースを要するため、CPU は最近使用したアドレスのキャッシュ (Translation Lookaside Buffer (TLB)) とともに構築されます。ただし、デフォルトの TLB は、特定のアドレスマッピングのみをキャッシュできます。要求されたアドレスマッピングが TLB にない場合 (つまり、TLB が不明) は、物理から仮想へのアドレスマッピングを見つけるためにページテーブルを読み取る必要があります。
アプリケーションメモリー要件と、アドレスマッピングのキャッシュに使用されるページサイズ間の関係により、メモリー要件が高いアプリケーションは、最小限であるアプリケーションと比べて、TLB ミスによるパフォーマンスの低下の影響が高くなる可能性があります。したがって、可能であれば TLB ミスを回避するためには重要です。
HugeTLB および Huge Page の機能の両方を使用すると、アプリケーションは 4 KB を超えるページを使用できます。これにより、TLB に保存されているアドレスはより多くのメモリーを参照できます。これにより、TLB ミスが軽減され、アプリケーションのパフォーマンスが向上します。