Manpages

名 前

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/">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.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。