Manpages

名 前

nhfsstone − ネ ッ ト ワ ー ク フ ァ イ ル シ ス テ ム の ベ ン チ マ ー ク プ ロ グ ラ ム

書 式

nhfsstone [ −v ] [[ −t secs ] | [ -c calls ]] [ −l load ] [ −p nprocs ] [ −m mixfile ] [ dir ]...

説 明

nhfsstone (n−f−s−stone と 発 音 し 、 "h" は 読 ま な い ) は NFS ク ラ イ ア ン ト 上 で 人 為 的 な 負 荷 を 生 成 す る た め に 使 用 す る 。 こ の 負 荷 に は 、 特 定 の 組 み 合 わ せ の NFS 操 作 が 含 ま れ る 。 こ の プ ロ グ ラ ム は サ ー バ ー の 平 均 応 答 時 間 (1 回 の 呼 び 出 し 当 り の ミ リ 秒 数 ) と 負 荷 (1 秒 当 り の 呼 び 出 し 回 数 ) を 表 示 す る 。 こ の プ ロ グ ラ ム は 、 ク ラ イ ア ン ト の カ ー ネ ル の NFS 統 計 と 所 要 時 間 に 基 づ い て 、 呼 び 出 し パ タ ー ン を 調 整 す る 。 負 荷 は 時 間 ま た は NFS 呼 び 出 し の 数 を 指 定 す る こ と で 生 成 で き る 。

nhfsstone は 進 捗 状 況 の 監 視 に カ ー ネ ル の NFS 統 計 情 報 を 使 用 す る の で 、 NFS フ ァ イ ル シ ス テ ム 以 外 の 性 能 を 計 測 す る の に は 使 え な い 。

nhfsstone プ ロ グ ラ ム は 、 フ ァ イ ル と デ ィ レ ク ト リ 操 作 を 使 っ て 、 特 定 の シ ス テ ム コ ー ル に 対 応 す る NFS 操 作 を 生 成 す る 。 こ れ を 行 う た め 、 NFS ク ラ イ ア ン ト 側 の 参 照 ポ ー ト の 実 装 に つ い て の 知 識 に 基 づ い た 、 い く つ か の ト リ ッ ク を 使 っ て い る 。 例 え ば 、 長 い フ ァ イ ル 名 を 使 っ て カ ー ネ ル の 名 前 検 索 キ ャ ッ シ ュ を 回 避 さ せ る こ と で 、 stat(2) シ ス テ ム コ ー ル で NFS lookup 操 作 を 生 成 す る 。

NFS 操 作 の 組 み 合 わ せ は 、 組 み 合 わ せ (mix) フ ァ イ ル で 設 定 で き る 。 こ れ は nfsstat(8C) コ マ ン ド (下 記 の "−m" オ プ シ ョ ン を 参 照 ) の 出 力 で あ る 。 組 み 合 わ せ フ ァ イ ル か ら 取 得 さ れ る 割 合 は 、 nfsstat で 表 示 さ れ る 割 合 で は な く 、 NFS 呼 び 出 し の 数 に 基 づ い て 計 算 さ れ る 。 組 み 合 わ せ フ ァ イ ル で 0% と な っ て い る 操 作 は 、 nhfsstone か ら 呼 び 出 さ れ な い 。 実 際 の サ ー バ ー に お け る 負 荷 の 組 み 合 わ せ で は 、 特 定 の NFS 操 作 の 割 合 が 0% に な っ て い る か も し れ な い が 、 呼 び 出 し 数 は 0 で な い こ と が 多 い 。 nhfsstone は 「 割 合 が 0% に な っ て い る 操 作 の 呼 び 出 し 数 は 、 サ ー バ ー の 応 答 に 些 細 な 影 響 し か 与 え な い 」 と 仮 定 し て い る 。 通 常 は nhfsstone に 対 し て 、 使 用 す る 2 つ 以 上 の テ ス ト デ ィ レ ク ト リ の リ ス ト を 指 定 す べ き で あ る (デ フ ォ ル ト で は カ レ ン ト デ ィ レ ク ト リ を 使 用 す る )。 使 用 す る テ ス ト デ ィ レ ク ト リ は 、 典 型 的 な サ ー バ ー の 負 荷 を 現 実 的 に シ ミ ュ レ ー ト す る た め に 、 サ ー バ ー 上 の 別 々 の デ ィ ス ク と パ ー テ ィ シ ョ ン に 置 く べ き で あ る 。 各 nhfsstone プ ロ セ ス は デ ィ レ ク ト リ <dir>/testdir<n> を 扱 う (こ こ で <n> は 0 か ら nprocs − 1 ま で の 数 値 で あ る )。 処 理 す る デ ィ レ ク ト リ 名 が 既 に 存 在 す る 場 合 、 テ ス ト フ ァ イ ル の セ ッ ト が 正 し い か を チ ェ ッ ク す る 。 存 在 し な い 場 合 は 、 デ ィ レ ク ト リ を 作 成 し て (訳 註 : テ ス ト フ ァ イ ル を ) 配 置 す る 。

オ プ シ ョ ン

−v 詳 細 な 出 力 。

−t secs 指 定 し た 実 行 時 間

(単 位 : 秒 ) と 負 荷 に 基 づ い て 、 calls を 設 定

す る 。

−c calls 生 成 す る

NFS 呼 び 出 し の 総 数 (デ フ ォ ル ト は 5000)。

−l load

1 秒 当 り の NFS 呼 び 出 し を 生 成 す る 負 荷 (デ フ ォ ル ト は 30)。

−p nprocs 負 荷 生 成 を 行 う サ ブ プ ロ セ ス を

fork さ せ る 数 (デ フ ォ ル ト は

7)。 こ れ は 1 つ の マ シ ン で 生 成 で き る 負 荷 の 総 量 を 最 大 化 す る た め に 使 用 さ れ る 。 (CPU が 遅 い 、 ま た は メ モ リ 量 が 少 な い ) 小 さ な ク ラ イ ア ン ト マ シ ン で は 、 ス ワ ッ ピ ン グ を 避 け る た め に 、 プ ロ セ ス 数 を 少 な く し た 方 が 良 い か も し れ な い 。

−m mixfile 生 成 す る

NFS 操 作 の 組 み 合 わ せ 。 mixfile の フ ォ ー マ ッ ト は

nfsstat(8C) プ ロ グ ラ ム の 出 力 と 同 じ で あ る 。 組 み 合 わ せ フ ァ イ ル は 、 サ ー バ ー 上 で "nfsstat −s > mixfile" を 実 行 す る こ と で 生 成 で き る 。 デ フ ォ ル ト の 操 作 の 組 み 合 わ せ は 以 下 の 通 り : null 0%, getattr 13%, setattr 1%, root 0%, lookup 34%, readlink 8%, read 22%, wrcache 0%, write 15%, create 2%, remove 1%, rename 0%, link 0%, symlink 0%, mkdir 0%, rmdir 0%, readdir 3%, fsstat 1%.

NHFSSTONE の 使 用 法

他 の 全 て の ベ ン チ マ ー ク と 同 様 に 、 使 用 さ れ る 試 験 内 容 を 注 意 深 く 設 定 し た 場 合 に の み 、 nhfsstone は 有 用 な 数 値 を 提 供 で き る 。 こ の プ ロ グ ラ ム は サ ー バ ー を 測 定 す る の で 、 NFS リ ク エ ス ト の 生 成 に 制 限 が な い ク ラ イ ア ン ト 上 で 実 行 す べ き で あ る 。 ク ラ イ ア ン ト マ シ ン は 、 速 い CPUと 優 れ た イ ー サ ー ネ ッ ト イ ン タ フ ェ ー ス を 備 え 、 テ ス ト の 最 中 に そ の 他 の 用 途 で 使 用 す べ き で は な い 、 と い う 意 味 で あ る 。 Sun−3/50 で は 、 CPU を 使 い き る 前 に 、 1 秒 当 り 60 NFS 呼 び 出 し が 可 能 で あ る 。

nhfsstone は 「 ク ラ イ ア ン ト で 生 成 さ れ た 全 て の NFS 呼 び 出 し が 1 つ の サ ー バ ー に 対 し て 行 わ れ 、 全 て の NFS 負 荷 は こ の ク ラ イ ア ン ト に 依 る も の で あ る 」 と 仮 定 し て い る 。 こ の 仮 定 を 維 持 す る た め 、 テ ス ト の 最 中 は ク ラ イ ア ン ト と サ ー バ ー の 両 方 を 出 来 る 限 り 静 か に さ せ て (他 の 仕 事 を さ せ な い で ) お く べ き で あ る 。 ネ ッ ト ワ ー ク を 高 負 荷 で 使 用 し て い る と 、 衝 突 に よ る 遅 れ が サ ー バ ー 性 能 の 変 化 を 隠 し て し ま う か も し れ な い 。 ク ラ イ ア ン ト と サ ー バ ー の ど ち ら か で エ ラ ー 率 が 高 い と 、 失 わ れ た パ ケ ッ ト や 壊 れ た パ ケ ッ ト を 再 送 信 す る た め に 遅 れ が 生 じ る 可 能 性 が あ る 。 netstat(8C) −i を 使 っ て ク ラ イ ア ン ト と サ ー バ ー に お け る エ ラ ー 率 と 衝 突 率 を 計 測 で き る 。 サ ー バ ー に 対 す る NFS ク ラ イ ア ン ト の 影 響 を 最 も 正 し く シ ミ ュ レ ー ト す る に は 、 サ ー バ ー が エ ク ス ポ ー ト す る テ ス ト デ ィ レ ク ト リ を 少 な く と も 2 つ の デ ィ ス ク パ ー テ ィ シ ョ ン に 置 い て 、 か つ そ れ ら の パ ー テ ィ シ ョ ン を 出 来 る 限 り 離 す べ き で あ る 。 dkinfo(8) コ マ ン ド を 使 う と 、 BSD 系 シ ス テ ム に お け る デ ィ ス ク の 物 理 的 ジ オ メ ト リ が 分 か る 。 NFS 操 作 で は デ ィ ス ク 全 体 へ ラ ン ダ ム に ア ク セ ス す る 傾 向 が あ る の で 、 全 て の nhfsstone の テ ス ト デ ィ レ ク ト リ を 1 つ の パ ー テ ィ シ ョ ン に 置 い た り 、 2 つ の パ ー テ ィ シ ョ ン が 近 か っ た り す る と 、 現 実 的 な 結 果 を 示 さ な い 。 全 て の テ ス ト に お い て 、 テ ス ト を 繰 り 返 し 行 っ て 結 果 を 比 較 す る の は 、 良 い 考 え で あ る 。 呼 び 出 し の 数 は (−c オ プ シ ョ ン を 使 っ て ) 呼 び 出 し 一 回 当 り の 時 間 (ミ リ 秒 ) の 変 化 が 充 分 小 さ く な る ま で 増 や す こ と が で き る 。 呼 び 出 し 回 数 を 増 や し て も 助 け に な ら な い (訳 註 : 何 の 変 化 も 見 ら れ な い ) 場 合 、 実 験 の 設 定 に 何 か 問 題 が あ る か も し れ な い 。 1 つ の 一 般 的 な 問 題 と し て は 、 ク ラ イ ア ン ト の テ ス ト マ シ ン に メ モ リ が 多 す ぎ る 場 合 が あ る 。 メ モ リ が 多 す ぎ る と 、 nhfsstone が ク ラ イ ア ン ト の キ ャ ッ シ ュ に 勝 て ず 、 NFS 操 作 が サ ー バ ー に 全 く 行 か な く な る 。 キ ャ ッ シ ュ に 問 題 が あ る と 感 じ た 場 合 は 、 -p オ プ シ ョ ン を 使 っ て プ ロ セ ス 数 を 増 や す こ と が で き る 。

nhfsstone で 生 成 さ れ る 数 値 は 、 ク ラ イ ア ン ト マ シ ン で の テ ス ト 設 定 を 等 し く し て 、 異 な る サ ー バ ー 設 定 を 比 較 す る 場 合 に 最 も 有 効 で あ る 。 実 行 す る 毎 に nhfsstone の パ ラ メ ー タ を 変 更 す る と 、 意 味 の あ る 比 較 が 出 来 な い 数 値 が 生 成 さ れ る 。 た と え ば 、 負 荷 を 生 成 す る プ ロ セ ス の 数 は 、 ク ラ イ ア ン ト マ シ ン で の コ ン テ ク ス ト 切 り 替 え や そ の 他 の 遅 れ に よ り 、 計 測 さ れ る 応 答 時 間 に 影 響 を 与 え る か も し れ な い 。 一 方 、 NFS 操 作 の 組 み 合 わ せ を 変 更 す る と 、 実 験 の 全 体 的 な 特 性 を 変 え る こ と に な る 。 そ の 他 の ク ラ イ ア ン ト 設 定 に つ い て の 変 更 は 、 結 果 が 比 較 で き る か に 影 響 を 与 え る 可 能 性 が あ る 。 nhfsstone は 実 際 の NFS 統 計 を サ ン プ リ ン グ し て 、 操 作 の 負 荷 と 組 み 合 わ せ を 調 整 す る こ と で 、 ク ラ イ ア ン ト 設 定 の 違 い を 補 正 し よ う と す る が 、 い く つ か の 変 更 は 負 荷 に も 組 合 わ せ に も 反 映 さ れ な い 。 例 え ば 、 負 荷 も 組 み 合 わ せ も 変 更 せ ず 、 よ り 速 い CPU を 組 み 込 ん だ り 、 別 の NFS フ ァ イ ル シ ス テ ム を マ ウ ン ト す る と 、 応 答 時 間 に 影 響 が 出 る だ ろ う 。 異 な る サ ー バ ー 設 定 を 比 較 す る 場 合 、 第 1 段 階 で は 、 ク ラ イ ア ン ト の テ ス ト デ ィ レ ク ト リ を 設 定 し 、 nhfsstone を い く つ か の 負 荷 で 実 行 し て 変 動 が 適 度 に 小 さ い こ と を 確 か め る 。 第 2 段 階 で は 、 興 味 を 持 っ た い く つ か の 負 荷 で nhfsstone を 実 行 し 、 結 果 を 保 存 す る 。 第 3 段 階 で は 、 サ ー バ ー の 設 定 を 変 更 す る (メ モ リ を 増 や す ・ デ ィ ス ク コ ン ト ロ ー ラ を 変 更 す る 、 な ど )。 最 終 段 階 で は 、 nhfsstone を 同 じ 負 荷 で 再 度 実 行 し 、 結 果 を 比 較 す る 。

関 連 項 目

ソ ー ス コ ー ド nhfsstone.c に は 、 プ ロ グ ラ ム の 詳 細 な 操 作 を 記 述 し た コ メ ン ト が 書 か れ て い る 。

エ ラ ー メ ッ セ ー ジ

illegal calls value コ マ ン ド ラ イ ン で 指 定 さ れ た −c フ ラ グ の 後 の calls 引 き 数 が 正 の 数 で な い 。
illegal load value
コ マ ン ド ラ イ ン で 指 定 さ れ た −l フ ラ グ の 後 の load 引 き 数 が 正 の 数 で な い 。
illegal time value
コ マ ン ド ラ イ ン で 指 定 さ れ た −t フ ラ グ の 後 の time 引 き 数 が 正 の 数 で な い 。
bad mix file
コ マ ン ド ラ イ ン で 指 定 さ れ た −m フ ラ グ の 後 の mixfile フ ァ イ ル 引 き 数 に ア ク セ ス で き な い 。
can’t find current directory
親 プ ロ セ ス が カ レ ン ト デ ィ レ ク ト リ の パ ス 名 を 見 つ け る こ と が で き な い 。 権 限 の 問 題 を 表 し て い る こ と が 多 い 。
can’t fork
親 プ ロ セ ス が 子 プ ロ セ ス を fork で き な い 。 メ モ リ や ス ワ ッ プ 空 間 と い っ た リ ソ ー ス の 不 足 の 結 果 で あ る こ と が 多 い 。
can’t open log file
can’t stat log
can’t truncate log
can’t write sync file
can’t write log
can’t read log
同 期 ロ グ フ ァ イ ル の 作 成 ・ 切 り 詰 め ・ 読 み 込 み ・ 書 き 出 し の 時 に 問 題 が 起 こ っ た 。 親 プ ロ セ ス が ロ グ フ ァ イ ル を /tmp に 作 成 し 、 子 プ ロ セ ス と の 同 期 や 通 信 に 使 用 す る 。
can’t open test directory
can’t create test directory
can’t cd to test directory
wrong permissions on test dir
can’t stat testfile
wrong permissions on testfile
can’t create rename file
can’t create subdir
子 プ ロ セ ス が テ ス ト デ ィ レ ク ト リ の 内 容 を 作 成 ・ 検 査 す る と き に 問 題 が 起 こ っ た 。 権 限 の 問 題 (例 え ば 、 テ ス ト デ ィ レ ク ト リ が 別 の ユ ー ザ ー に よ っ て 作 成 さ れ て い る 場 合 ) や フ ァ イ ル シ ス テ ム が い っ ぱ い で あ る 場 合 が 多 い 。
bad mix format: unexpected EOF after ’nfs:’
bad mix format: can’t find ’calls’ value
bad mix format: unexpected EOF after ’calls’
bad mix format: can’t find %d op values
bad mix format: unexpected EOF

mix フ ァ イ ル を 解 析 し て い る と き に 問 題 が 起 こ っ た 。 こ の フ ァ イ ル の 想 定 さ れ る フ ォ ー マ ッ ト は 、 nfsstat(8C) コ マ ン ド を "−s" オ プ シ ョ ン で 実 行 し た と き の 出 力 と 同 じ で あ る 。

op failed: 内 部 的 な 疑 似 NFS 操 作 の 1 つ が 失 敗 し た 。 操 作 の 名 前 、 例 え ば read, write, lookup が 、 失 敗 の 種 類 と 共 に 表 示 さ れ る 。
select failed

select シ ス テ ム コ ー ル が 予 期 せ ぬ エ ラ ー を 返 し た 。

バ グ

nhfsstone を NFS フ ァ イ ル シ ス テ ム 以 外 で 実 行 す る と 、 プ ロ グ ラ ム が 永 久 に 動 作 し 続 け る 。 こ の プ ロ グ ラ ム が カ ー ネ ル の NFS 統 計 を 使 っ て 、 充 分 な 呼 び 出 し 回 数 が 実 行 さ れ た か を 決 定 し て い る た め で あ る 。

nhfsstone が 多 く の フ ァ イ ル デ ィ ス ク リ プ タ を 使 う 。 ク ラ イ ア ン ト の カ ー ネ ル を 再 設 定 し 、 利 用 可 能 な フ ァ イ ル テ ー ブ ル エ ン ト リ を 増 や す 必 要 が あ る か も し れ な い 。

nhfsstone を 使 う シ ェ ル ス ク リ プ ト は SIGUSR1 (signal(3) を 参 照 ) を キ ャ ッ チ し て 無 視 す る 必 要 が あ る 。 こ の シ グ ナ ル は テ ス ト プ ロ セ ス を 同 期 す る の に 使 わ れ る 。 こ の プ ロ セ ス を キ ャ ッ チ し な い と 、 ス ク リ プ ト を 実 行 し て い る シ ェ ル が kill さ れ る 。

フ ァ イ ル

/vmunix シ ス テ ム の ネ ー ム リ ス ト

/dev/kmem カ ー ネ ル の 仮 想 メ モ リ

./testdir* プ ロ セ ス 毎 の テ ス ト デ ィ レ ク ト リ

/tmp/nhfsstone%d プ ロ セ ス の 同 期 ロ グ フ ァ イ ル