7章メモリ
システムのメインメモリは、アプリケーションやカーネルの命令、そのワーキングデータ、ファイルシステムキャッシュを格納する。このデータのセカンダリストレージ(補助記憶、二次記憶)は、一般にメモリと比べて数桁分も遅いストレージデバイス(ディスク)である。メインメモリがいっぱいになると、システムはメインメモリとストレージデバイスの間でデータの交換を始める。これはシステムのボトルネックになることが多い遅い処理で、大幅にパフォーマンスを下げる。システムは、メモリをもっとも多く消費しているプロセスを強制終了し、アプリケーションの機能停止を引き起こすこともある。
パフォーマンスに関して考慮すべき要素としては、メモリのアロケート、開放、メモリのコピー、アドレス空間のマッピングの管理などにかかるCPUのコストがある。マルチソケットアーキテクチャでは、メモリの局所性もパフォーマンスに影響を与える。ローカルソケットに接続されているメモリは、リモートソケットに接続されているメモリよりもアクセスレイテンシが低くなる。
この章での学習目標は次の通り。
- メモリのコンセプトを理解する。
- メモリのハードウェア的な内部構造を頭に入れる。
- カーネル/ユーザーアロケータの内部動作を頭に入れる。
- MMUとTLBについての生きた知識を仕入れる。
- メモリ分析のさまざまなメソドロジの筋道をたどる。
- システム全体と個々のプロセスのメモリ使用の特徴を明らかにする。
- 利用可能メモリがわずかになったときの問題を明らかにする。
- プロセスのアドレス空間とカーネルスラブが使っているメモリの位置を知る。
- プロファイラ、トレーサー、フレームグラフを使ってメモリの使用状況を調査する。
- メモリのさまざまなパラメータを意識に刻み込む。
Get 詳解 システム・パフォーマンス 第2版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.