trusty (7) numa.7.gz

Provided by: manpages-ja_0.5.0.0.20131015+dfsg-2_all bug

名前

       numa - 非対称型メモリアーキテクチャの概要

説明

       非対称型メモリアクセス  (Non-Uniform Memory Access; NUMA) は、 メモリが複数のメモリノードに分割されている
       マルチプロセッサシステム のことである。メモリノードへのアクセス時間は、アクセス元の CPU  と  アクセス先の
       ノードの相対的な位置関係に依存する  (これに対し、対称型マルチプロセッサシステムでは、どの CPU から どのメ
       モリへのアクセス時間も同じである)。 通常は、 NUMA システムの各 CPU にはローカルのメモリノードがあり、  そ
       のメモリノードには、他の CPU のローカルノードや全ての CPU で 共有されるバス上のメモリよりも早くアクセスす
       ることができる。

   NUMA システムコール
       Linux  カーネルには、次に示す  NUMA  関連のシステムコールが実装されている:  get_mempolicy(2),   mbind(2),
       migrate_pages(2), move_pages(2), set_mempolicy(2).  ただし、アプリケーションは通常は libnuma が提供するイ
       ンターフェース を使用すべきである。下記の「ライブラリによるサポート」を参照。

   /proc/[number]/numa_maps (Linux 2.6.14 以降)
       このファイルは、プロセスの NUMA メモリポリシーと割り当てに関する 情報を表示する。

       各行に、そのプロセスが使用しているメモリ領域に関する情報が表示される。その他の情報 — そのメモリ領域に適用
       されているメモリポリシーや、そのページがどのノード上に割り当てられているか、など — もあわせて表示される。

       numa_maps  は読み出し専用のファイルである。 /proc/<pid>/numa_maps から読み出しが行われると、 カーネルはそ
       のプロセスの仮想アドレス空間をスキャンし、 メモリの使用状況を報告する。 プロセスのメモリ領域の情報が 1 行
       に 1 領域で表示される。

       各行の最初のフィールドはメモリ領域の開始アドレスを示す。 このフィールドは /proc/<pid>/maps ファイルの内容
       と対応している。 /proc/<pid>/maps  には、メモリ領域の末尾のアドレスや、アクセス許可や共有といった他の情報
       も含まれる。

       2  番目のフィールドは、  そのメモリ領域に現在適用されているメモリポリシーを示す。  適用されているポリシー
       は、 必ずしもそのプロセスがこのメモリ領域に対して設定したポリシーとは限らない点に注意すること。 特に、 プ
       ロセスがその領域に対して「デフォルト」ポリシーを設定した場合、その領域に適用されるポリシーはプロセスのポ
       リシーとなり、それが「デフォルト」ポリシーとなる場合もあればそうでない場合もある。

       行の残りの部分には、そのメモリ領域に割り当てられたページに関する情報が入る。以下に詳細を示す。

       N<node>=<nr_pages>
              <node> に割り当てられているページ数。 <nr_pages> には、 そのプロセスが現在マッピングしているページ
              だけが含まれる。  ページの移動やメモリの再利用により、 このメモリ領域に関連付けられているが、 一時
              的にマッピングされていないページが存在する場合がある。  プロセスがそれらのページを参照しようとした
              後には、 これらのページは再び現れる可能性がある。 メモリ領域が共有メモリやファイルマッピングの場合
              には、 そのメモリ領域内に別のページを他のプロセスがマッピングしている場合もある。

       file=<filename>
              そのメモリ領域に関連付けられているファイル。 ファイルがプライベート (非公開)  でマッピングされてい
              る場合、  書き込みアクセスがあると、 このメモリ領域に書き込み時コピー (Copy-On-Write) ページが生成
              されることがある。 これらのページは無名ページ (anonymous page) として表示される。

       heap   ヒープに使用されているメモリ範囲。

       stack  スタックに使用されているメモリ範囲。

       huge   ヒュージメモリの範囲。表示されるページ数は、  通常の大きさのページではなく、ヒュージページの数であ
              る。

       anon=<pages>
              メモリ範囲内の無名ページ (anonymous page) の数。

       dirty=<pages>
              dirty (変更された) ページの数。

       mapped=<pages>
              マッピングされているページ数。 dirty および anon のページ数と異なる値の場合に表示される。

       mapmax=<count>
              スキャン中に検出した  mapcount  (一つのページをマッピングしているプロセス数) の最大値。 この値は、
              そのメモリ領域でどの程度の共有が行われているかの指標として使うことができる。

       swapcache=<count>
              スワップデバイスに対応するエントリーが存在するページ数。

       active=<pages>
              アクティブリストに入っているページ数。 このフィールドが表示されるのは、 値がこのメモリ領域のページ
              数と異なる場合だけである。このフィールドが表示されるということは、    このメモリ領域に、まもなくス
              ワッパ (swapper) によりこの領域から削除される可能性がある inactive  なページが存在することを意味す
              る。

       writeback=<pages>
              現在ディスクに書き出されているページ数。

準拠

       NUMA インターフェースについて規定している標準はない。

注意

       Linux の NUMA システムコールと /proc インターフェースは、カーネルが 設定オプション CONFIG_NUMA を有効にし
       て作成されている場合のみ、利用 可能である。

   ライブラリによるサポート
       システムコールの定義を得るには -lnuma でリンクすること。  libnuma  と必要なヘッダファイル  <numaif.h>numactl パッケージで提供されている。

       ただし、アプリケーションはこれらのシステムコールを直接利用すべきでない。  推奨される方法は、numactl  パッ
       ケージの   numa(3)   の関数群が提供する   高レベルインターフェースの利用である。   numactl   パッケージは
       ⟨ftp://oss.sgi.com/www/projects/libnuma/download/⟩  で入手できる。  このパッケージが収録されている  Linux
       ディストリビューションもある。 ディストリビューションによっては、開発用のライブラリとヘッダファイルは  別
       パッケージ numactl-devel で提供されている。

関連項目

       get_mempolicy(2), mbind(2), move_pages(2), set_mempolicy(2), numa(3), cpuset(7), numactl(8)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。