－SS研ファイルシステム利用技術WG成果報告－

ファイルI/Oの分析と改善

SS研 ファイルシステム利用技術WG まとめ役
国立研究開発法人 宇宙航空研究開発機構 藤田直行
fujita@chofu.jaxa.jp

2015/10/28

2015年度科学技術計算分科会

P.1

Agenda はじめに ファイルシステムの利用における現状技術
 I/O効率改善のための4つのステップ
 分析ツール
 分析ツールによる解析事例
 おわりに2015/10/28

2015年度科学技術計算分科会

P.2

■はじめに■SS研でのストレージに関するWG
2001

2002

①

2003

2004

②

2005

2006

2007

2008

2009

③

2010

2011

2012

2013

2014

2015

④

①ネットワーク時代の統合ストレージマネージメントWG(活動期間:2001年5月～2003年4月)②ストレージを中心としたシステムマネージメントWG(活動期間:2003年5月～2005年4月)③データマネジメントを意識したストレージソリューションWG(活動期間:2006年2月～2008年4月)④大規模ストレージWG(活動期間:2009年1月～2011年3月)

本分科会(10/28)

ファイルシステム利用技術WG(活動期間:2012年9月～2015年2月)

2015/10/28

2015年度科学技術計算分科会

P.3

■はじめに■ファイルシステム利用技術WGメンバ
氏名
松澤
担当幹事

機関/所属(2015年2月28日現在)

照男(2012年9月～2014年5月)

井口寧(2014年5月～2015年2月)

会員
推進委員

賛助会員（富士通）

推進委員

オブザーバ

2015/10/28

北陸先端科学技術大学院大学
北陸先端科学技術大学院大学

藤田直行（まとめ役）

宇宙航空研究開発機構

安岡孝一

京都大学人文科学研究所附属東アジア人文情報学研究センター

松本好美

高エネルギー加速器研究機構計算科学センター

八木

雅文

国立天文台

早戸

良成

東京大学宇宙線研究所附属神岡宇宙素粒子研究施設

黒川原佳

理化学研究所栄元

雅彦（まとめ役）

富士通(株) テクニカルコンピューティング・ソリューション事業本部

甲斐俊彦

富士通(株) 次世代テクニカルコンピューティング開発本部

酒井憲一郎

富士通(株) 次世代テクニカルコンピューティング開発本部宮本巧輝

富士通(株) 次世代テクニカルコンピューティング開発本部阿部孝之

富士通(株) テクニカルコンピューティング・ソリューション事業本部

坂口吉生

富士通(株) テクニカルコンピューティング・ソリューション事業本部

塚原知宏

富士通(株) テクニカルコンピューティング・ソリューション事業本部

2015年度科学技術計算分科会

P.4

■はじめに■WG発足に際してファイルシステム利用技術WGの活動内容イメージ
ファイル入出力構成要素

ファイルシステム利用技術ＷＧ

個別アプリ

入出力パターンの把握
個別アプリの入出力特性

1. アプリケーション
例：HJET

2. ファイルシステム(クライアント)
例：FEFSのClient
3. インターコネクト
例：Tofu,IB,Ethernet

チューニングの・ツールor・手順書or・チェックリスト

チューニング

大規模ストレージWG

入出力特性の詳細把握
精密検査ツール？

ファイルシステムの入出力特性

4. ファイルシステム(サーバ)
例：FEFSのMDS,OSS

ファイルシステム
健康診断ツール(ﾌﾞﾗｯｸﾎﾞｯｸｽﾃｽﾄ)

5. ストレージエリアネットワーク
例：IB,FC,Ethernet
6. ストレージコントローラ/デバイス
例：E2K,E4K,LTO4

2015/10/28

ファイルシステム
注：赤字部分がWGの想定成果物

2015年度科学技術計算分科会

P.5

■はじめに■WGを推進するための意識共有■WGのポジショニング 利用者視点のツールと管理者視点のツールは別の物• 利用者視点のツールは「ソースコードの分析」• 管理者視点のツールは「プロファイラ」

 スライド5の「入出力パターン」を共通化するのではなく、• 個別のアプリケーションの特徴を把握して、• それが、システムと合っているのか否か、• 合っていない場合、どこをチューニングすれば合わせることができるのかを、考える
 上記ノウハウを、「ツール化」する。できなければ、「手順書化」や「チェックリスト化」■実現のための施策 個別アプリケーションの入出力特性【利用者が把握すべきもの】• 「アプリケーション入出力特性測定ツール(利用者側視点)」をつくる ファイルシステムの入出力特性【管理者が設計・把握するもの】• 大規模ストレージWGで作ったファイルシステム健康診断ツールを活用
2015/10/28

2015年度科学技術計算分科会

P.6

Agenda はじめに ファイルシステムの利用における現状技術
 I/O効率改善のための4つのステップ
 分析ツール
 分析ツールによる解析事例
 おわりに2015/10/28

2015年度科学技術計算分科会

P.7

■ファイルシステムの利用における現状技術 ストレージ技術
 ハードディスク動向 テープストレージ動向
 インターフェース動向

報告書 付録 資料１

 I/Oモニタリング技術
 ジョブ統計情報
 I/Oアカウンティング情報 ファイルシステム統計情報
 OS統計情報

報告書 付録 資料2

 ファイルシステム構成
 ローカルファイルシステム
 ネットワークファイルシステム
 並列分散ファイルシステム

2015/10/28

報告書 2.1節

2015年度科学技術計算分科会

P.8

■ファイルシステムの利用における現状技術＞■ストレージ技術■ハードディスク動向

2015/10/28

2015年度科学技術計算分科会

P.9

■ファイルシステムの利用における現状技術＞■I/Oモニタリング技術■I/Oアカウンティング情報2015/10/28

2015年度科学技術計算分科会

P.10

■ファイルシステムの利用における現状技術■ファイルシステム構成

ローカルファイルシステム

ネットワークﾌｧｲﾙｼｽﾃﾑ

並列分散ファイルシステム
2015/10/28

2015年度科学技術計算分科会

P.11

Agenda はじめに ファイルシステムの利用における現状技術
 I/O効率改善のための4つのステップ
 分析ツール
 分析ツールによる解析事例
 おわりに2015/10/28

2015年度科学技術計算分科会

P.12

■I/O効率改善のための４つのステップ(ステップ1)…I/O比率の簡易確認(ステップ2)…以下の項目確認(2-1) 想定I/O量(2-2) 想定I/O性能(2-3) システム負荷(ステップ3)…システムコール分析(ステップ4)…システム管理者による詳細分析

2015/10/28

2015年度科学技術計算分科会

P.13

■I/O効率改善のための４つのステップ■報告書の読み方(1/2)
 各ステップでは、以下の項目を順番に説明している(報告書P.7に関連の記載あり)。
【作業実施者】【実施項目】【確認のポイント】【手段や手法】【管理者提供の情報】
 このうち、【手段や手法】は、「ジョブ」「実行方法」「ファイルシステム」の種類によって、そのやり方に違いがあるため、代表的と思われる組み合わせを選んで、具体的な手段や手法を複数記載してある。

2015/10/28

2015年度科学技術計算分科会

P.14

■I/O効率改善のための４つのステップ■報告書の読み方(2/2)
【報告書】表2.1 想定対象
項目

種類

ジョブ

逐次ジョブ
並列ジョブ

実行方法

インタラクティブ実行
バッチ実行

ファイルシステム

ローカルファイルシステム(L-FS)
ネットワークファイルシステム(N-FS)
並列分散ファイルシステム(P-FS)

報告書での記載例：
例1)「逐次ジョブ/インタラクティブ実行/L-FS,N-FS,P-FS」
ファイルシステムの種類には依存せず、逐次ジョブをインタラクティブに実行した場合のデータ採取の手順が紹介されている。
例2)「逐次ジョブ,並列ジョブ/バッチ実行/P-FS」
ジョブが逐次ジョブか並列ジョブかには依存せず、
並列分散ファイルの計算機システム上でバッチでジョブ実行した場合のデータ採取の手順が紹介されている。
2015/10/28

2015年度科学技術計算分科会

P.15

■I/O効率改善のための４つのステップ■ステップ１…I/O比率の簡易確認
作業実施者

ユーザ

実施項目

CPU利用率の測定

確認のポイント

CPU利用率が目安値以上である

手段や手法の例

timeコマンドからuser÷realを計算管理者提供の情報 目安値【報告書】図2.5 実行時間の内訳
2015/10/28

2015年度科学技術計算分科会

P.16

■I/O効率改善のための４つのステップ■ステップ１…I/O比率の簡易確認例
作業実施者

ユーザ

実施項目

CPU利用率の測定

確認のポイント

CPU利用率が目安値以上である

手段や手法の例

timeコマンドからuser÷realを計算管理者提供の情報 目安値

0.9以上% /usr/bin/time -f " real %E ¥n user %U ¥n sys %S ¥n" ./IOR-w -r -b 1g -F -e -s 32 -i 2
省略
Max Write: 138.34 MiB/sec (145.06 MB/sec)
Max Read: 264.51 MiB/sec (277.36 MB/sec)
Run finished: Tue Jan 20 10:34:43 2015
real 26:27.30
user 0.76秒 ÷ real 26:27.30 = 0.000478
user 0.76
sys 180.39%【報告書】図2.6 timeコマンドにおける実行し時間の内訳の表示方法
2015/10/28

2015年度科学技術計算分科会

P.17

■I/O効率改善のための４つのステップ■ステップ2-1…想定I/O量の確認
作業実施者

ユーザ

実施項目

I/O量の予測と、実I/O量との比較

確認のポイント

予測したI/O量とほぼ等しい実I/O量である

手段や手法の例

timeコマンドで総I/O量を取得

管理者提供の情報 (ファイルシステムマウント情報、設定パラメータ)【報告書】図2.10 ジョブ実行時のI/O例
2015/10/28

2015年度科学技術計算分科会

P.18

■I/O効率改善のための４つのステップ■ステップ2-1…想定I/O量の確認例
作業実施者

ユーザ

実施項目

I/O量の予測と、実I/O量との比較

確認のポイント

予測したI/O量とほぼ等しい実I/O量である

手段や手法の例

timeコマンドで総I/O量を取得

管理者提供の情報 (ファイルシステムマウント情報、設定パラメータ)
local-single% /usr/bin/time -f "real %E ¥nuser %U ¥nsys %S¥nio %Okb¥n" ./IOR -w -r -b 1g -F -e -s 64 -i 2
256GB
省略
Max Write: 138.34 MiB/sec (145.06 MB/sec)
Max Read: 264.51 MiB/sec (277.36 MB/sec)
Run finished: Tue Jan 20 10:34:43 2015real 0:57.72
real 26:27.30
user 0.76
sys 180.39
io 278734376kb
local-single%【報告書】図2.11
2015/10/28

L-FS(ext4)における逐次ジョブ実行時のI/O量
2015年度科学技術計算分科会

P.19

■I/O効率改善のための４つのステップ■ステップ2-2…想定I/O性能の確認
作業実施者

ユーザ

実施項目

I/O性能の予測と、実I/O性能との比較

確認のポイント

予測したI/O性能とほぼ等しい実I/O性能である

手段や手法の例

iotopコマンドでI/O性能を観測管理者提供の情報 健康診断ツール等による典型的なI/O性能値

2015/10/28

2015年度科学技術計算分科会

P.20

■I/O効率改善のための４つのステップ■ステップ2-2…想定I/O性能の確認例
作業実施者

ユーザ

実施項目

I/O性能の予測と、実I/O性能との比較

確認のポイント

予測したI/O性能とほぼ等しい実I/O性能である

手段や手法の例

iotopコマンドでI/O性能を観測管理者提供の情報 健康診断ツール等による典型的なI/O性能値

数MB/s以上

nfs-para% /usr/bin/iotop -d 30
Total DISK READ: 0.00 B/s | Total DISK WRITE: 4.66 K/s
TID PRIO USERDISK READ DISK WRITE SWAPIN
IO>
COMMAND省略
TID PRIO USERDISK READ DISK WRITE SWAPIN
IO>
COMMAND
19083 be/4 abebe
0.00 B/s 189.26 M/s 0.00 % 85.50 % ./IOR -w~TEST/test
19084 be/4 abebe
0.00 B/s 205.29 M/s 0.00 % 84.67 % ./IOR -w~TEST/test
省略
Total DISK READ: 11.84 K/s | Total DISK WRITE: 6.65 K/s
TID PRIO USERDISK READ DISK WRITE SWAPIN
IO>
COMMAND
19084 be/4 abebe
54.04 M/s
0.00 B/s 0.00 % 96.27 % ./IOR -w~TEST/test
19083 be/4 abebe
47.93 M/s
0.00 B/s 0.00 % 89.42 % ./IOR -w~TEST/test
省略【報告書】図2.23
nfs% mpiexec –n 2-–hostfile ./hostfile【報告書】図2.24
2015/10/28

N-FS(NFS)におけるI/O性能の表示の例./IOR-w -r -b 1g -F -e -s 32 -i 2

N-FS(NFS)における並列ジョブ実行の例
2015年度科学技術計算分科会

P.21

■I/O効率改善のための４つのステップ■ステップ2-3…システム負荷の確認
作業実施者

ユーザ

実施項目

I/O時のシステム状態(負荷、縮退等)の確認

確認のポイント

ファイルシステムが正常である

手段や手法の例

dateコマンドによる時刻取得

管理者提供の情報 ファイルシステム負荷状況・状態の時系列データ【報告書】図2.27出力時にファイルシステムの能力が十分に発揮できない状態の例
2015/10/28

2015年度科学技術計算分科会

P.22

■I/O効率改善のための４つのステップ■ステップ2-3…システム負荷の確認例
作業実施者

ユーザ

実施項目

I/O時のシステム状態(負荷、縮退等)の確認

確認のポイント

ファイルシステムが正常である

手段や手法の例

dateコマンドによる時刻取得

管理者提供の情報 ファイルシステム負荷状況・状態の時系列データ

nfs% /bin/date; mpiexec –n 2
-s 32 -i 2 ; /bin/date-–hostfile ./hostfile./IOR-w -r -b 1g -F -e

2015年 1月 20日 火曜日 06:37:13 JST
省略
Max Write: 110.31 MiB/sec (115.67 MB/sec)
Max Read: 111.45 MiB/sec (116.87 MB/sec)
省略
2015年 1月 20日 火曜日 06:57:18 JST【報告書】図2.28 dateコマンドを利用した時刻表示の例

2015/10/28

2015年度科学技術計算分科会

P.23

■I/O効率改善のための４つのステップ■ステップ3…システムコール分析
作業実施者

ユーザとシステム管理者の共同作業

実施項目

システムコール分析用コマンドを追加してのジョブ実行

確認のポイント

ｼｽﾃﾑｺｰﾙ発生タイミング、I/O時間、負荷状況等総合的に手段や手法

IO-Dockを使用

管理者提供の情報 (分析方法・結果を公開し、ユーザのスキルアップに期待)

2015/10/28

2015年度科学技術計算分科会

P.24

■I/O効率改善のための４つのステップ■ステップ4…システム管理者による詳細分析
作業実施者

システム管理者

実施項目

システム高負荷の原因究明、ジョブ実行時間の特異点分析等

確認のポイント

(同上)

手段や手法

各種ログ情報等の通常通常運用状態との差異を手がかりに調査

管理者提供の情報 －－－2015/10/28

2015年度科学技術計算分科会

P.25

Agenda はじめに ファイルシステムの利用における現状技術
 I/O効率改善のための4つのステップ
 分析ツール
 分析ツールによる解析事例
 おわりに2015/10/28

2015年度科学技術計算分科会

P.26

■分析ツール■IO-Dock(1/2)
1. 機能概要

トレースログ(strace,truss)の分析ツール
システムコール毎の実行回数、実行時間等を集計

2. 動作環境

Red Hat Enterprise Linux 6 ないしは 5

3. 導入方法1.
2.

cd (インストールしたいディレクトリ)
tar xfz <(本ツールtar.gzファイル) >/IO-Dock-1.0.0.0.tar.gz

2015/10/28

2015年度科学技術計算分科会

P.27

■分析ツール■IO-Dock(2/2)
4. ツール使用の流れ
1.
2.
3.

中間ファイル生成(make_im_data.pl の実行)
システムコール毎の実行回数、実行時間などの集計(analyze_summary.pl の実行)着目したシステムコールの掘り下げた分析(analyze_summary.pl --func write)……”write”(analyze_io_dist.pl) ……………………IO長ヒストグラム(analyze_io_oer_time.pl) ………………単位時間のIO量、IO回数(analyze_syscall_per_time.pl)…………単位時間のシステムコール実行回数※詳細は、報告書 付録 資料3『システムコール分析ツール「IO-Dock」使用手引書』
を、ご参照願います。
2015/10/28

2015年度科学技術計算分科会

P.28

■分析ツール■IO-Dock使用例1(システムコール毎の集計)

2015/10/28

2015年度科学技術計算分科会

P.29

■分析ツール■IO-Dock使用例2(writeシステムコールの内訳)

2015/10/28

2015年度科学技術計算分科会

P.30

■分析ツール■IO-Dock使用例3(writeのIO長ヒストグラム)

2015/10/28

2015年度科学技術計算分科会

P.31

■分析ツール■IO-Dock使用例4(writeの時系列分析[実行時間・offset])

2015/10/28

2015年度科学技術計算分科会

P.32

■分析ツール■システム管理者レベルでの分析ツール• IO-Dockは、ユーザが自分のアプリケーションのI/O処理内容確認に使用するもの。
• システム管理者は、✓ジョブ毎のI/O発行量
FEFSをターゲットにして、この様な✓システムリソースの利用割合
システム管理者のための分析ツールを把握したい。

“fefsvr”を検討中。

2015/10/28

2015年度科学技術計算分科会

P.33

Agenda はじめに ファイルシステムの利用における現状技術
 I/O効率改善のための4つのステップ
 分析ツール
 分析ツールによる解析事例
 おわりに2015/10/28

2015年度科学技術計算分科会

P.34

■分析ツールによる解析事例■lseekが多すぎる(1/2)●MPI化されていない、
かなり昔から利用されている、
データ処理系のプログラム
システムコール回数
syscall 実⾏回数 error回数 処理時間 k回/秒
open
4,167
5
65 ms
64
openat
165
16
2 ms
72
close
6,030
0
80 ms
75
unlink
3
0
0 ms
fstat
7,804
35
0 ms 78,040
fstat64
432
0
0 ms
stat
1,153
858
1 ms
887
stat64
10
0
1 ms
20
lstat
3
0
0 ms
lstat64
6
0
0 ms
30
lseek
30,20200 ms
read
24,7040 9.7 sec
2.5
write
1,005
0 0.9 sec
1.2

2015/10/28

readの回数と量
ファイル名

回数

file1
file2
file3
file4
file5
/tmp/file6
IO量 平均IO⻑
file7/tmp/file8/tmp/file9
file10
file11

6,616
6,534
3,059
1,687
147
134
IO速度
133
59
58
1,224
1,224

合計時間[sec] 総IO量[MB] 平均IO量[KiB]
4.46942.1041
1.37131.20350.1076
0.09920.1231
0.04260.04210.00670.0068

6,935
3,115
1,946
1,665
151
140
137
62
60
47
47

1,024
466
621
964
1,006
1,019
1,006
1,018
1,012
37
37

writeの回数と量
ファイル名
file4
/tmp/file2
file1/tmp/file3/tmp/file4
14
GB 584 KB
file5
404 MB 402 KB
file6

回数
71
67
70
59
58
1.5 GB/s
218
474 MB/s
211

2015年度科学技術計算分科会

合計時間0.12880.15790.14670.13550.12720.088
0.0691

総IO量[MB] 平均IO量[KiB]
74
70
67
62
60
39
33

1,014
1,019
931
1,018
1,012
177
152

P.35

■分析ツールによる解析事例■lseekが多すぎる(2/2)

時系列のwrite量

時系列のread量

read時にlseekし、オフセットを変えつつもファイルの同じ領域を重複して読み込んでいる。この動作は、メインメモリ量が少ない計算機環境であったため、処理データが必要になる度に、ファイルの中にある当該データをreadにより取り出すというコーディングが現在まで残っているものと考えられる。⇒改善箇所発見
2015/10/28

2015年度科学技術計算分科会

P.36

■分析ツールによる解析事例■open/closeが多すぎる(1/2)●全国漢籍データベースの更新プログラム
システムコール回数
システムコール
open(open64)
close
unlink
mkdir
メタデータ
rmdir
fstat64
lstat64
stat(stat64)
read
ファイルI/Owrite

実行回数
1,273,463
1,590,634
22
1
1
636,990
1,138,103
1,592,675
12,047,329
1,283,041

error回数
318,2882
4
0
0
0
7
637,377
038,273

処理時間
32.1 sec
33.1 msec
854 msec
0.10 msec
0.10 msec
25.1 msec
18.6 sec
5.54 sec
110.4 sec
58.6 sec

I/O量
2.7GB
1.7GB

ファイル別情報
ファイル

ファイル数

open成功open失敗/platform/FJSV,GPUZC-M/lib/libc_psr.so.1

1

318,2750/lib/libc.so.1

1

318,2720

その他共有ライブラリ

8

182

0

/var/ld/ld.config

1

0

318,272

318,169

318,025

0

123

432

16

data/FA*/tagged*/*.dat
その他

2015/10/28

2015年度科学技術計算分科会

P.37

■分析ツールによる解析事例■open/closeが多すぎる(2/2)
while read F
do echo '<OTDoc><OTFile>'"$F"'</OTFile>'cat “$F”
echo '</OTDoc>'done⇒

nawk '{
f=$0;
printf(“<OTDoc><OTFile>%s</OTFile>¥n”,f);while((getline u<f)>0)
printf(“%s¥n”,u);close(f);printf(“</OTDoc>¥n”);}'

更新プログラム全体の処理速度が約3倍高速になった。
実行回数
(改良前)

システムコール名 または、ファイル名

実行回数
(改良後)

1,273,463

open(open64)

200,348

1,590,634

close

200,984

318,275/platform/FJsV,GPUZC-M/ib/libc?psr.so.1

243

318,272/lib/libc.so.1

243

318,272/var/ld/ld.config

243

2015/10/28

2015年度科学技術計算分科会

P.38

■分析ツールによる解析事例■lgetxattrの最大処理時間が長すぎる(1/2)●多波長データ解析システムで時々lsの反応が遅くなるという既知の問題あり。
約7000ファイルを入れたディレクトリに、一時間おきに/bin/ls –ltr する。
表4.3.4.1
ls実行時のI/O関連
システムコールの統計（速い時）表4.3.4.2
ls実行時のI/O関連
システムコールの統計（遅い時）

2015/10/28

syscall
実行回数 error回数 処理時間[s]平均処理時間[s] 最少処理時間[s] 最大処理時間[s]
fcntl
1
0
0.000009
0.000009
0.000009
0.000009
read
14
00.000136
0.000010
0.000008
0.000016
write
129
0
0.002934
0.000023
0.000021
0.000038
stat
6902
0
0.071214
0.000010
0.000008
0.000034open
12
00.000347
0.000029
0.000010
0.000214
getdents
1200.000650
0.000054
0.000027
0.000065
close
19
00.000187
0.000010
0.000008
0.000019
fstat
13
00.000112
0.000009
0.000008
0.000011
statfs100.000011
0.000011
0.000011
0.000011
lseek
100.000009
0.000009
0.000009
0.000009
lgetxattr
20712
20712
0.249096
0.000012
0.000008
0.000055
lstat
13808
0
0.795326
0.000058
0.000010
0.000683
平均処理時間[s] 最少処理時間[s] 最大処理時間[s]syscall
実行回数 error回数 処理時間[s]
fcntl
1
0
0.000012
0.000012
0.000012
0.000012
read
12
00.000117
0.000010
0.000008
0.000016
write
129
0
0.003112
0.000024
0.000022
0.000041
stat
6902
0
0.075346
0.000011
0.000008
0.000961
open
12
00.038194
0.003183
0.000009
0.038064
getdents
1200.320007
0.026667
0.000048
0.163230close
18
00.000177
0.000010
0.000008
0.000016
fstat
13
00.000144
0.000011
0.000008
0.000042
statfs100.000011
0.000011
0.000011
0.000011
lseek
100.000008
0.000008
0.000008
0.000008
lgetxattr
20712
20712
5.545225
0.000268
0.000011
0.722723
lstat
13808
0
0.314374
0.000023
0.000009
0.113075

2015年度科学技術計算分科会

P.39

■分析ツールによる解析事例■lgetxattrの最大処理時間が長すぎる(2/2)
lgetxattrシステムコールが全部エラーになっている。
→ACL(Access Control List)機能をOSが未サポートにも関わらず、
noaclオプションを付けずにNFSマウントしていたことが原因⇒修正済み
反応遅延がNFSサーバ側へのACL問い合わせ時に発生していることが判明。
→NFSサーバカーネル周りで割り込み処理の設定調整を実施⇒約3割の速度向上

図4.3.10 lsの所要時間。1時間毎の測定結果。改善前(青)と改善後(赤)2015/10/28

2015年度科学技術計算分科会

P.40

■分析ツールによる解析事例■read総量/lseek回数が多すぎる(1/2)●実験データのファイル形式を変換するプログラム
表4.4.3 システムコール分析結果（リード・ライト処理関連）
システムコール
read(全63ファイル中Top５)

ファイル

実⾏回数

処理時間

event_run071482.000010/usr/local/sklib_g77/root_v5.28.00b/etc/system.rootrc/usr/local/sklib_g77/root_v5.28.00b/include/RtypesCint.h/usr/local/sklib_g77/root_v5.28.00b/etc/plugins/TSystem/P020_TDCacheSystem.C/tmp/tmpfpNdvMS

3,092,219
73
6
235.0 sec 25.4 GB 726 MB/s
45 us 24.2 KB 538 MB/s
21 us
4.2 KB 199 MB/s
32 us
1.3 KB
42 MB/s
9 us
1.2 KB 128 MB/swrite
(全9ファイル中Top５)

rfm_run071482.000010.root/tmp/tmpfpNdvMS/tmp/tmpfuUpPTV/tmp/tmpf9tSf1Y/tmp/tmpfuhiHkD

500MBのファイル

401
1
1
1
1

329 ms
15 us
13 us
14 us
21 us

データ量

IO速度

312 MB 947 MB/s
1.2 KB77 MB/s
1.0 KB77 MB/s82 B 5.9 MB/s
44 B 2.1 MB/s

表4.4.4 システムコール分析結果（ディスクI/O処理関連）
システムコール
メタアクセス open
close
unlinkstat
ファイルIO read
write
その他
lseek

2015/10/28

実⾏回数
error回数
190
114
80
0
8
0
2,491
124
3,092,335
0427
04,638,810
0

処理時間
IO量
備考
27.7 ms
1.21 ms
0.06 ms
38.0 ms
35.0 sec 25.4 GB ほとんどが"event_run071482.000010"へのread
329 ms 312 MB ほとんどが"rfm_run071482.000010.root"へのwrite
25.6 sec- ほとんどが"event_run071482.000010"へのlseek

2015年度科学技術計算分科会

P.41

■分析ツールによる解析事例■read総量/lseek回数が多すぎる(2/2)
データの読み込み方を変更し、バッファリングがうまく働くように調整した。
(OSの更新[RHEL5から6へ]も改善に寄与している)→read量は50%削減→lseekにかかる時間も2/3に削減

システムコール
open
メタデータ
close
unlink
ファイルIO
その他

実行回数 error回数
332
244
93
0
8
0

修正前
処理時間
14.1ms
1.4ms
0.1ms

IO量

実行回数 error回数
374
286
93
0
8
0

修正後
処理時間
40.6ms
1.5ms
0.3ms

IO量
-

read

3,167,103048.0sec

26.0GB 1,583,929

025.7sec

13.0GB

write
lseek

353
4,750,841

03399.2ms
46.1sec

317.9MB353- 3,167,3600
3386.0ms
31.0sec

317.9MB-2015/10/28

2015年度科学技術計算分科会

P.42

■分析ツールによる解析事例■I/Oの特異点が観測される●SPECsfs相当のベンチマーク用ワークロード

図4.5.4 read特異点

図4.5.5 write特異点
2015/10/28

2015年度科学技術計算分科会

P.43

■分析ツールによる解析事例■ユーザへの展開例(マニュアルページトップ画面にリング)（中略）

2015/10/28■謝辞
ＳＥの皆さま、
特に、伊藤さん、大迫さん、大日向さん、荒川さん
迅速なコンテンツ整備ありがとうございました。

2015年度科学技術計算分科会

P.44

■分析ツールによる解析事例■ユーザへの展開例(ステップ1= I/O比率)

2015/10/28

2015年度科学技術計算分科会

P.45

■分析ツールによる解析事例■ユーザへの展開例(ステップ2-1= I/O量)

2015/10/28

2015年度科学技術計算分科会

P.46

■分析ツールによる解析事例■ユーザへの展開例(ステップ2-2= I/O性能)

2015/10/28

2015年度科学技術計算分科会

P.47

■分析ツールによる解析事例■ユーザへの展開例(ステップ2-3= システム負荷)

2015/10/28

2015年度科学技術計算分科会

P.48

■分析ツールによる解析事例■ユーザへの展開例(ステップ3= システムコール分析)

2015/10/28

2015年度科学技術計算分科会

P.49

Agenda はじめに ファイルシステムの利用における現状技術
 I/O効率改善のための4つのステップ
 分析ツール
 分析ツールによる解析事例
 おわりに2015/10/28

2015年度科学技術計算分科会

P.50

■おわりに ユーザの視点に立った、モニタリング方法・チューニング
指針等をまとめた4つのステップ
ステップ1 … I/O比率の簡易確認
ステップ2 … 想定I/O量、想定I/O性能、システム負荷の確認
ステップ3 … システムコール分析
ステップ4 … システム管理者による詳細分析

 システムコール分析ツール”IO-Dock”を用いた実際のチューニング事例
 今後のI/Oに関する課題• システム全体での情報採取技術など、I/Oの測定技術• バッチ実行時のI/O性能取得など、チューニング支援• MPI-IO、HDF5、KVSなど、並列I/Oの普及
2015/10/28

2015年度科学技術計算分科会

P.51

ご清聴ありがとうございました。

■謝辞
WGに参加し活発な意見交換をしていただいた皆様、
SS研事務局の皆様に感謝の意を表します。

2015/10/28

2015年度科学技術計算分科会

P.52