4.5. Red Hat Enterprise Linux 6 での NUMA 機能強化
Red Hat Enterprise Linux 6 には、今日の高度に拡張可能なハードウェアの潜在能力を活用するための多くの機能強化が含まれています。このセクションでは、Red Hat Enterprise Linux 6 が提供する NUMA 関連のパフォーマンス機能強化のなかで、最も重要なハイレベルの概要を説明します。
4.5.1. ベアメタルおよびスケーラビリティの最適化
4.5.1.1. トポロジー認識における機能強化
以下の機能強化により Red Hat Enterprise Linux は低レベルのハードウェアおよびアーキテクチャー詳細の検出が可能になり、システム上の処理を自動で最適化する機能が改善されます。
- トポロジー検出の強化
- この機能により、オペレーティングシステムは低レベルのハードウェア詳細 (論理 CPU やハイパースレッド、コア、ソケット、NUMA ノード、ノード間のアクセス時間など) を起動時に検出でき、システム上の処理を最適化できます。
- Completely Fair Scheduler (CFS)
- この新たなスケジューリングモードは、ランタイムが有効なプロセス間で同等に共有されるようにします。これをトポロジー検出と組み合わせることで、プロセスが同一ソケット内の CPU にスケジュールされ、不経済なリモートメモリアクセスを避けることができます。また、キャンセルコンテンツが可能な場所に確実に保存されるようにします。
malloc
malloc
は、プロセスに割り当てられるメモリのリージョンがプロセスが実行されるコアに物理的にできるだけ近くなるように最適化されました。これにより、メモリのアクセス速度が高まっています。- skbuff I/O バッファ割り当て
malloc
と同様に、デバイス割り込みなどの I/O 操作を処理する CPU に物理的に一番近いメモリを使用するように最適化されています。- デバイス割り込みアフィニティ
- デバイスドライバーが記録した、どの CPU がどの割り込みを処理するかという情報を使って、同一の物理ソケット内の CPU に割り込み処理を限定できます。これにより、キャンセルアフィニティが保存され、ソケット間の高ボリュームな通信が制限されます。
4.5.1.2. マルチプロセッサー同期における機能強化
マルチプロセッサー間のタスクの調整は、並行して行われているプロセスがデータの整合性を損なわないようにするために、頻繁でかつ時間のかかる操作を必要とします。Red Hat Enterprise Linux には、このエリアでのパフォーマンスを改善する以下の機能強化が含まれています。
- Read-Copy-Update (RCU) ロック
- 通常、ロックの 90% は読み取り専用目的で取得されます。RCU ロックは、アクセスされているデータが修正されていない場合、排他アクセスロックを取得する必要性を取り除きます。このロッキングモードは、ページキャッシュメモリの割り当てに使用されます。ロッキングが使用されるのは、割り当てもしくは解放操作のみです。
- CPU 別およびソケット別のアルゴリズム
- 多くのアルゴリズムは、同一ソケット上の 協同 CPU のロック調整を行うために更新され、より粒度の細かいロッキングを可能にしています。多くのグローバル spinlock はソケットごとのロッキング方法に置換されています。また、アップデートされたメモリアロケーターゾーンと関連メモリのページ一覧により、操作の割り当てもしくは解放の実行時に、メモリ割り当て論理がより効率的にメモリマッピングデータ構造のサブセットを行き来できます。