フラグメンテーション解析を支援 ... -...
TRANSCRIPT
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 1
フラグメンテーション解析を支援するDAVとLKST Log Toolsの開発
平松 雅巳†,杉田 由美子†,藤原 哲‡
†(株)日立製作所 システム開発研究所, ‡日立ハイブリッドネットワーク株式会社
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 2
目次• はじめに
– 背景
– フラグメンテーションの問題
• ツールの開発– DAV– LKST Log Tools
• フラグメンテーション影響の解析– フラグメンテーションの作成
– DAVによる解析
– LKST Log Toolsによる解析
– 2つのツールのデータの整合性評価
• まとめ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 3
• はじめに
– 背景
– フラグメンテーションの問題
• ツールの開発
• フラグメンテーション影響の解析
• まとめ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 4
背景
事例1:巨大ファイルの上書きバックアップ運用していると,次第に時間がかかるようになる
事例2:並列書き込みしたデータの読み出しファイルによって読み出し性能にばらつきがある
0.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ファイル番号
読み
出し
時間
(秒)
読み出し時間性能が良いファイル
性能が悪いファイル
フラグメンテーション(ファイル断片化)の問題?
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 5
フラグメンテーションの問題(1)
DOS(FAT)では昔から問題
チェーン構造によるファイルブロック管理が原因部分アクセスで,チェーンを辿る必要
Linuxでは?
inode管理⇒Ext2/Ext3では問題ない?
フラグメンテーション情報収集・表示ツールが無く、問題がないのかを確認できない
fsck:断片化したファイルの数/ファイル総数のみ表示
inode
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 6
フラグメンテーションの問題(2)ー 性能への影響 ー
連続したファイル
データが一箇所に集中
アクセス効率が良い(特にシーケンシャルリード)
フラグメンテーションが発生したファイル
データが細分化され、広域に分散
アクセス性能が悪くなる(特にシーケンシャルリード)シーク
リード
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 7
フラグメンテーションの解析
2つの視点からの解析
断片化状態の解析
性能への影響解析
→それぞれの解析ツールを開発
静的解析ツールファイルの断片化状態の情報を収集し、表示する
動的解析ツールカーネル内のI/O処理の情報を収集し、解析・表示する
DAV
LKST Log Tools
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 8
• はじめに
• ツールの開発
–DAV– LKST Log Tools
• フラグメンテーション影響の解析
• まとめ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 9
静的解析ツール DAV(Disk Allocation Viewer)
目的ディスク上に配置されたファイルの断片化状態の表示
仕様Ext2/Ext3に対応
マウント・アンマウントにかかわらず状態を解析マウント中の解析にはドライバが必要
パーティション・ディレクトリ・ファイル単位で解析可能
プログラム構成dac: CUI(テキスト出力)の解析ツール
dav: GUIの解析結果表示ツール
dav-liveinfo:解析補助ドライバ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 10
DAVの構成
ファイルシステム情報取得ツール
Linuxカーネル
ディスク
ファイルシステム全体
ディスク割り当て可視化ツール(dav)
特定ファイル
ファイルシステム情報取得ツール(dac)
DAV開発対象:
マウントパーティション
読み出し
アンマウントパーティション
読み出し
ファイルブロック情報取得ドライバ
ext2/ext3ファイルシステム
iノード
iノード
●DAV構築・実行に必要な条件
・カーネルバージョンが2.4以上であること・カーネルソースが展開されていること・GTK+1.2がインストールされていること
直接取得
間接取得
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 11
フラグメンテーションの判定仕様
(1). ファイルブロックが、システムブロックを挟んでいる
(2). ファイルブロックが、物理的に連続していない
(3). ファイルブロックの順番が逆転している
システムブロック(スーパーブロック、グループディスクリプタ、ビットマップ、iノードテーブル)ブロック
グループ n
ブロックグループ n+1
フラグメントなし
フラグメントあり(システムブロック挟み)
ブロック:ファイル構成順=3フラグメントあり(ブロック非連続)
フラグメントあり(ブロック順逆転)
ブロック:ファイル構成順=4ブロック:ファイル構成順=6ブロック:ファイル構成順=5
ブロック:ファイル構成順=1ブロック:ファイル構成順=2
ファイルブロックをファイル構成順に見て行き、下記の状態の場合に、フラグメントブロックと判断。
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 12
フラグメンテーションの表示仕様
フラグメンテーション状況の出力(テキスト形式/GUI表示)は2種類
(1).ブロック番号順表示
物理的なブロック番号順に,システムブロックや未使用ブロックを含めた表示
1 2 3 4 5 6
1 2 3 4 6 5未使用
システムブロック
※数字は、ファイル構成順番△は、フラグメント位置
(2).ファイル構成順表示
確認対象のファイルを構成するブロックだけを、ファイル構成順に表示
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 13
DAVの出力形式(GUI)
ブロック表示の色分けの凡例
フラグメンテーション状況のテキスト出力部分
何ブロック分を集約して1つのブロックに表示するかを指定
ブロックデバイス全体表示タブ
フラグメントファイル表示タブ
フラグメンテーション状況確認対象の指定
フラグメンテーション状況取得の開始/中止を指定
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 14
• はじめに
• ツールの開発– DAV
–LKST Log Tools• フラグメンテーション影響の解析
• まとめ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 15
動的解析ツール LKST Log Tools
目的カーネル内の性能情報を収集・解析し,評価を支援
仕様性能評価対象ごとに個別の性能指標値を算出
データの切り出し・表示形式の変更が可能フィルタ・フォーマッタの切り替え
解析結果をプロット
プログラム構成LKSTの機能拡張ドライバ+パッチ
性能データの解析ツール
解析結果のプロットツール LKST: Linux Kernel State Tracer
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 16
LKST Log Tools(カーネル性能評価機能)
ロック
Linux カーネル
拡張ハンドラ
LKST
システムコール I/O ・・・
マスクセット
イベントハンドラ
イベントハンドラ
記録・操作
フックポイント
記録バッファイベントバッファ
ブロックIO
ページ管理
性能データ
・・・ロック解析 IO解析
性能解析ツール
・・・ロック解析 IO解析
性能解析ツール
可視化ツール
性能評価ポイントで情報を取得する「LKST機能拡張」ドライバ+パッチ
取得した情報を解析する「性能解析ツール:lkstla」
解析した情報を可視化する「可視化ツール」
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 17
性能解析ツール(lkstla:lkst log analyzer)
3つの機能から構成
アナライザ(28種類)LKSTのログファイルを解析して、性能を示す値を抽出する。
フィルタ(5種類)
いくつかの条件によって、結果を選り分ける。
フォーマッタ(3種類)
解析結果の統計や分布などを表示する。
記録データ
アナライザ フィルタ フォーマッタ 性能データ
lkstla
キー ・キー名・時間 ・値
選択されたデータ
統計・分布解析したデータ
アナライザアナライザアナライザフィルタ フォーマッタ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 18
性能解析ツール(lkstla)のアナライザ
LKSTで記録したログファイルを解析
二種類のアナライザに大別セッションアナライザ
二つ以上の関連するイベントが発生した時間の間隔を測定
例)システムコールの入口・出口
イベントアナライザあるイベントの引数に注目し,解析する
例)プロセスの状態遷移
start start end end start end
セッション
イベント
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 19
lkstlaの出力形式
時系列フォーマットでの出力例(syscall)
System call analyzersysno syscall_name start[sec] processing-time
4 write 1112435907.650229013 0.00000025591 munmap 1112435907.650234683 0.0000601236 close 1112435907.650295485 0.000002579
192 mmap2 1112435907.650300324 0.0000019005 open 1112435907.650308095 0.000007357
221 fcntl64 1112435907.650315933 0.000000672221 fcntl64 1112435907.650316830 0.00000062454 ioctl 1112435907.650317837 0.0227378434 write 1112435907.673392508 0.00000060991 munmap 1112435907.673394415 0.000057218
アナライザ名称
キー列(ここではシステムコール番号)
キーの名前列(ここではシステムコール名)
発生時間列 計測値列(ここでは処理時間)
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 20
LKST Log ToolsによるファイルIO解析とは(1)
ファイルI/Oの処理層ごとの処理時間を計測syscallアナライザ
システムコールの処理時間
Wait状態も含む.(ディスクシーク時間などの影響も加味)biotimeアナライザ
ブロックデバイス層に渡されたBIOの処理時間
BIOごとに算出
elvtimeアナライザIOスケジューラにリクエストが滞留している時間
IOリクエストごとに算出
iosectorアナライザデバイスドライバへ送られるIOリクエストのセクタ番号
IOリクエストごとに算出
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 21
LKST Log ToolsによるファイルIO解析とは(2)
ファイルI/O処理層
IOスケジューリング
generic_make_request()
syscall entersyscall exit
bio_endio()
elv_next_request()elvtimebiotime
syscallVFS/ファイルシステム
ブロックデバイス
ドライバ iosector
__make_request()
=syscall
=biotime
=biotime-elvtime
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 22
• はじめに
• ツールの開発
• フラグメンテーションによる影響の解析– フラグメンテーションの作成
– DAVによる解析
– LKST Log Toolsによる解析
– 2つのツールのデータの整合性評価
• まとめ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 23
フラグメンテーションによる影響の解析
目的
フラグメンテーションの状況・影響の解析
実験・解析手順
1. フラグメンテーションの作成
2. DAVによる静的解析
3. フラグメンテーションファイルのベンチマーク
4. LKST Log Toolsによる動的解析
5. 2つのツールのデータの関係
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 24
実験環境
実験用PCDual Xeon 3.6GHz(HT有効)
Memory 8GBUltra 160 SCSI AdaptorU 320 SCSI Disk 10025rpm x2(OS用・実験用)
ソフトウェアFedora Core 2Linux 2.6.9 + LKSTv2.3DAV v1.0.1IOzone benchmark ver 3.233
OS
実験用
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 25
フラグメンテーションの作成
IOzoneを使い,書き込みの並列度を上げる
IOzone パラメータ
16
8
4
2
1
並列プロセス
16
8
4
2
1
並列作成ファイル数
E
D
C
B
A
パターン
20MB
ファイルサイズ
1MB
書き込みサイズ
1
2
4
8
16
作成回数
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 26
DAVによる解析(1) - 並列度と断片数の関係 -
dacで取得したパターンA~Eのフラグメント数
フラグメント数の平均を算出
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
A B C D Eparallel processes
fragm
ents
2並列から既に断片化している
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 27
DAVによる解析(1) - 断片化状態 -
各パターンの解析結果(代表的ファイルの解析)パターンA
パターンC
パターンE
密
疎
→並列度が上がると,フラグメントが発生し,ブロックが分散する
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 28
フラグメンテーションの性能測定
IOzoneを使い,ファイルを読み出すテスト毎に対象デバイスを再マウント
巨大ファイルのバックアップを想定
各パターンのファイルをシーケンシャルリードフラグメンテーションの影響を も受けると予想
読み出しの並列度は1プロセススケジューラの影響を抑える
1MB単位のreadを20回発行
LKSTによる測定IO処理各部への影響を解析
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 29
フラグメンテーションの性能測定結果
パターンA~Eのスループット
スループットの平均を算出
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
A B C D E
write pattern
thro
ugh
put(
KB
/s)
断片化しているだけでスループットが低下
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 30
LKSTによる解析(1-1) - パターンA -
全てのレイヤで一定の処理時間
経過時間
処理時間
システムコール
BIO処理
IOスケジューラ
0.25秒で完了
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 31
LKSTによる解析(1-2) - パターンC -
syscallとbiotimeが遅くなる
経過時間
処理時間
システムコール
BIO処理
IOスケジューラ
0.8秒で完了
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 32
LKSTによる解析(1-3) - パターンE -
syscallとbiotimeがかなり不安定かつ遅い
経過時間
処理時間
システムコール
BIO処理
IOスケジューラ
1.5秒で完了
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 33
LKSTによる解析(2) - BIO処理時間 -
どうしてBIO処理時間が増えているのか?
ファイルサイズは変わっていない
シークが増えた
シーク
ブロック間のギャップ
→I/Oセクタのギャップで観測できるはず
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 34
LKSTによる解析(3-1) - IOセクタ差分との関係(パターンA) -
IOしたセクタ間の差分(ギャップ)を投影
ギャップはほとんど0
システムコール
BIO処理
IOスケジューラ
セクタギャップ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 35
LKSTによる解析(3-2) - IOセクタ差分との関係(パターンC) -
ギャップが現れるとbiotime・syscallに影響
50セクタ以下の
細かいギャップが多い
システムコール
BIO処理
IOスケジューラ
セクタギャップ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 36
LKSTによる解析(3-3) - IOセクタ差分との関係(パターンE) -
かなり大きなギャップが発生している
数百セクタの大きなギャップが
増える
ギャップのサイズ・頻度がBIO処理時間に影響
システムコール
BIO処理
IOスケジューラ
セクタギャップ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 37
2つのツールのデータの整合性評価(1)
ギャップの状態は双方で計測できているはずDAVの解析結果
ファイルのディスク上でのブロック位置
LKSTの解析結果
ファイルアクセスしたときのセクタ番号
関係式PB = (PS - SMBR) / R
PB:ブロック位置PS:セクタ位置
SMBR:MBRを含むトラックのセクタ数R:1ブロックあたりのセクタ数(= 4096/512 = 8)
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 38
ほぼ一致している
2つのツールのデータの整合性評価(2)
DAVのデータからカーネルの処理を予測可能
DAVLKST log tools
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 39
APPENDIX:
二つのファイルリード順序の比較
二つのファイルリード順序を評価ランダムリードシーケンシャルリード
I/Oサイズの変化ファイルシステムのブロックサイズは4KB4KB~1MBまで変化
IOzoneを修正
修正前:
ランダムリードでは同じ箇所を読む→キャッシュヒット
修正後:
ランダムリードで,同じ箇所を読まない.
影響があるのはシーケンシャルリードだけ?
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 40
APPENDIX:
シーケンシャルリード
ほぼ全サイズで安定断片化無しならば、約85MB/sを維持
断片化により性能に3倍近い差が存在
シーケンシャルリード性能
0
10
20
30
40
50
60
70
80
90
100
1 10 100 1000 10000
record size(KB)
thro
uput
(MB
/s)
パターンA
パターンC
パターンE
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 41
APPENDIX:
ランダムリード
徐々に性能が良くなるただし 大で約50MB/s
断片化により32KBあたりから2倍以上の差
ランダムリード性能
0
10
20
30
40
50
60
70
80
90
100
1 10 100 1000 10000
record size(KB)
thro
uput(
MB
/s)
パターンA
パターンC
パターンE
ランダムリードでもサイズによっては影響がでる
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 42
• はじめに
• ツールの開発
• フラグメンテーション影響の解析
• まとめ
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 43
まとめ
フラグメンテーションの可視化機能の開発DAV (http://davtools.sourceforge.net)
静的なデータブロックのフラグメンテーションを可視化
ディスク全体・ディレクトリ・ファイル単位の可視化が可能
LKST Log Tools (http://lkst.sourceforge.net)カーネルの処理性能の解析が可能
性能評価対象ごとに個別の性能指標の解析が可能
フラグメンテーションによる影響の様子を可視化
機能連携特定ファイルに対するアクセス性能予測に利用可能
定期的ヘルスチェック⇒DAV障害解析や原因究明⇒LKST Log Tools
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 44
今後の目標
ツール類
デフラグツールの検討
性能解析解析項目の追加(IDE,SAN等/ファイルシステム)
Linux本体
ブロックデバイス層の改良フラグメンテーションが起きても性能劣化し難い方式
ファイルシステム層の改良フラグメンテーションを起こし難いブロック配置方式
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 45
商標
Linuxは、Linus Torvaldsの米国およびその他の国における登録商標あるいは商標です。
Intel, Intel Xeon, Pentium は、アメリカ合衆国およびその他の国におけるインテル コーポレーションまたはその子会社の商標または登録商標です。
その他の記載されている社名および製品名は各社の登録商標また商標です。
謝辞DAVとLKSTの開発の一部は「独立行政法人 情報処理推進機構
オープンソースソフトウェア活用基盤整備事業」に係る委託業務の調査・開発に基づくものです。ご支援いただいたことに感謝いたします.