第7章 メモリー

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

7.1.2. TLB (Translation Lookaside Buffer) サイズ

ページテーブルからのアドレスマッピングの読み込みには時間とリソースを要するため、CPU は最近使用したアドレスのキャッシュ (Translation Lookaside Buffer (TLB)) とともに構築されます。ただし、デフォルトの TLB でキャッシュできるアドレスマッピング数は限られています。要求されたアドレスマッピングが TLB にない場合 (つまり、TLB が不明 ) は、物理から仮想へのアドレスマッピングを見つけるためにページテーブルを読み取る必要があります。
アプリケーションメモリーの要件とアドレスマッピングのキャッシュに使用されるページサイズ、そして大量のメモリーを必要とするアプリケーションの関係は最小限のメモリーで動作するアプリケーションに比べ TLB ミスによるパオーマンス低下を被りやすくなります。このためできるだけ TLB ミスが起こらないようにすることが重要になります。
Both HugeTLB および Transparent Huge Page 機能を使用すると、アプリケーションは 4 KB を超えるページを使用できます。また、TLB に格納されたアドレスがより大きなメモリーを参照できるため、TLB のミスが少なくなり、アプリケーションパフォーマンスが向上します。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。