OSDN Git Service

c5ad6692c924f65907ecad3ca150e2b0369c9949
[linuxjm/LDP_man-pages.git] / draft / man7 / numa.7
1 .\" Copyright (c) 2008, Linux Foundation, written by Michael Kerrisk
2 .\"     <mtk.manpages@gmail.com>
3 .\" and Copyright 2003,2004 Andi Kleen, SuSE Labs.
4 .\" numa_maps material Copyright (c) 2005 Silicon Graphics Incorporated.
5 .\"     Christoph Lameter, <cl@linux-foundation.org>.
6 .\"
7 .\" %%%LICENSE_START(VERBATIM)
8 .\" Permission is granted to make and distribute verbatim copies of this
9 .\" manual provided the copyright notice and this permission notice are
10 .\" preserved on all copies.
11 .\"
12 .\" Permission is granted to copy and distribute modified versions of this
13 .\" manual under the conditions for verbatim copying, provided that the
14 .\" entire resulting derived work is distributed under the terms of a
15 .\" permission notice identical to this one.
16 .\"
17 .\" Since the Linux kernel and libraries are constantly changing, this
18 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
19 .\" responsibility for errors or omissions, or for damages resulting from
20 .\" the use of the information contained herein.  The author(s) may not
21 .\" have taken the same level of care in the production of this manual,
22 .\" which is licensed free of charge, as they might when working
23 .\" professionally.
24 .\"
25 .\" Formatted or processed versions of this manual, if unaccompanied by
26 .\" the source, must acknowledge the copyright and authors of this work.
27 .\" %%%LICENSE_END
28 .\"
29 .\"*******************************************************************
30 .\"
31 .\" This file was generated with po4a. Translate the source file.
32 .\"
33 .\"*******************************************************************
34 .TH NUMA 7 2012\-08\-05 Linux "Linux Programmer's Manual"
35 .SH 名前
36 numa \- 非対称型メモリアーキテクチャの概要
37 .SH 説明
38 非対称型メモリアクセス (Non\-Uniform Memory Access; NUMA) は、
39 メモリが複数のメモリノードに分割されているマルチプロセッサシステム
40 のことである。メモリノードへのアクセス時間は、アクセス元の CPU と
41 アクセス先のノードの相対的な位置関係に依存する
42 (これに対し、対称型マルチプロセッサシステムでは、どの CPU から
43 どのメモリへのアクセス時間も同じである)。
44 通常は、 NUMA システムの各 CPU にはローカルのメモリノードがあり、
45 そのメモリノードには、他の CPU のローカルノードや全ての CPU で
46 共有されるバス上のメモリよりも早くアクセスすることができる。
47 .SS "NUMA システムコール"
48 Linux カーネルには、次に示す NUMA 関連のシステムコールが実装されている:
49 \fBget_mempolicy\fP(2), \fBmbind\fP(2), \fBmigrate_pages\fP(2),
50 \fBmove_pages\fP(2), \fBset_mempolicy\fP(2).
51 ただし、アプリケーションは通常は \fIlibnuma\fP が提供するインターフェース
52 を使用すべきである。下記の「ライブラリによるサポート」を参照。
53 .SS "/proc/[number]/numa_maps (Linux 2.6.14 以降)"
54 .\" See also Changelog-2.6.14
55 このファイルは、プロセスの NUMA メモリポリシーと割り当てに関する
56 情報を表示する。
57
58 各行に、そのプロセスが使用しているメモリ領域に関する情報が表示される。その他の情報 \(em
59 そのメモリ領域に適用されているメモリポリシーや、そのページがどのノード上に割り当てられているか、など \(em もあわせて表示される。
60
61 \fInuma_maps\fP は読み出し専用のファイルである。 \fI/proc/<pid>/numa_maps\fP から読み出しが行われると、
62 カーネルはそのプロセスの仮想アドレス空間をスキャンし、 メモリの使用状況を報告する。
63 プロセスのメモリ領域の情報が 1 行に 1 領域で表示される。
64
65 各行の最初のフィールドはメモリ領域の開始アドレスを示す。 このフィールドは \fI/proc/<pid>/maps\fP
66 ファイルの内容と対応している。 \fI/proc/<pid>/maps\fP
67 には、メモリ領域の末尾のアドレスや、アクセス許可や共有といった他の情報も含まれる。
68
69 2 番目のフィールドは、 そのメモリ領域に現在適用されているメモリポリシーを示す。 適用されているポリシーは、
70 必ずしもそのプロセスがこのメモリ領域に対して設定したポリシーとは限らない点に注意すること。
71 特に、
72 プロセスがその領域に対して「デフォルト」ポリシーを設定した場合、その領域に適用されるポリシーはプロセスのポリシーとなり、それが「デフォルト」ポリシーとなる場合もあればそうでない場合もある。
73
74 行の残りの部分には、そのメモリ領域に割り当てられたページに関する情報が入る。以下に詳細を示す。
75 .TP 
76 \fIN<node>=<nr_pages>\fP
77 \fI<node>\fP に割り当てられているページ数。 \fI<nr_pages>\fP には、
78 そのプロセスが現在マッピングしているページだけが含まれる。 ページの移動やメモリの再利用により、 このメモリ領域に関連付けられているが、
79 一時的にマッピングされていないページが存在する場合がある。 プロセスがそれらのページを参照しようとした後には、 これらのページは再び現れる可能性がある。
80 メモリ領域が共有メモリやファイルマッピングの場合には、 そのメモリ領域内に別のページを他のプロセスがマッピングしている場合もある。
81 .TP 
82 \fIfile=<filename>\fP
83 そのメモリ領域に関連付けられているファイル。 ファイルがプライベート (非公開) でマッピングされている場合、 書き込みアクセスがあると、
84 このメモリ領域に書き込み時コピー (Copy\-On\-Write) ページが生成されることがある。 これらのページは無名ページ (anonymous
85 page) として表示される。
86 .TP 
87 \fIheap\fP
88 ヒープに使用されているメモリ範囲。
89 .TP 
90 \fIstack\fP
91 スタックに使用されているメモリ範囲。
92 .TP 
93 \fIhuge\fP
94 ヒュージメモリの範囲。表示されるページ数は、
95 通常の大きさのページではなく、ヒュージページの数である。
96 .TP 
97 \fIanon=<pages>\fP
98 メモリ範囲内の無名ページ (anonymous page) の数。
99 .TP 
100 \fIdirty=<pages>\fP
101 dirty (変更された) ページの数。
102 .TP 
103 \fImapped=<pages>\fP
104 マッピングされているページ数。 \fIdirty\fP および \fIanon\fP のページ数と異なる値の場合に表示される。
105 .TP 
106 \fImapmax=<count>\fP
107 スキャン中に検出した mapcount (一つのページをマッピングしているプロセス数) の最大値。 この値は、
108 そのメモリ領域でどの程度の共有が行われているかの指標として使うことができる。
109 .TP 
110 \fIswapcache=<count>\fP
111 スワップデバイスに対応するエントリーが存在するページ数。
112 .TP 
113 \fIactive=<pages>\fP
114 アクティブリストに入っているページ数。 このフィールドが表示されるのは、
115 値がこのメモリ領域のページ数と異なる場合だけである。このフィールドが表示されるということは、 このメモリ領域に、まもなくスワッパ (swapper)
116 によりこの領域から削除される可能性がある inactive なページが存在することを意味する。
117 .TP 
118 \fIwriteback=<pages>\fP
119 現在ディスクに書き出されているページ数。
120 .SH 準拠
121 NUMA インターフェースについて規定している標準はない。
122 .SH 注意
123 Linux の NUMA システムコールと \fI/proc\fP インターフェースは、カーネルが
124 設定オプション \fBCONFIG_NUMA\fP を有効にして作成されている場合のみ、利用
125 可能である。
126 .SS ライブラリによるサポート
127 システムコールの定義を得るには \fI\-lnuma\fP でリンクすること。
128 \fIlibnuma\fP と必要なヘッダファイル \fI<numaif.h>\fP は
129 \fInumactl\fP パッケージで提供されている。
130
131 ただし、アプリケーションはこれらのシステムコールを直接利用すべきでない。
132 推奨される方法は、\fInumactl\fP パッケージの \fBnuma\fP(3) の関数群が提供する
133 高レベルインターフェースの利用である。 \fInumactl\fP パッケージは
134 .UR ftp://oss.sgi.com\:/www\:/projects\:/libnuma\:/download/
135 .UE
136 で入手できる。
137 このパッケージが収録されている Linux ディストリビューションもある。
138 ディストリビューションによっては、開発用のライブラリとヘッダファイルは
139 別パッケージ \fInumactl\-devel\fP で提供されている。
140 .SH 関連項目
141 \fBget_mempolicy\fP(2), \fBmbind\fP(2), \fBmove_pages\fP(2), \fBset_mempolicy\fP(2),
142 \fBnuma\fP(3), \fBcpuset\fP(7), \fBnumactl\fP(8)
143 .SH この文書について
144 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.52 の一部
145 である。プロジェクトの説明とバグ報告に関する情報は
146 http://www.kernel.org/doc/man\-pages/ に書かれている。