フラグメンテーション解析を支援 ... -...

45
Copyright © Hitachi, Ltd. 2005 All Rights Reserved. Linux Conference 2005 1 フラグメンテーション解析を支援する DAVとLKST Log Toolsの開発 平松 雅巳,杉田 由美子,藤原 哲†()日立製作所 システム開発研究所, 日立ハイブリッドネットワーク株式会社

Upload: others

Post on 15-Jan-2020

2 views

Category:

Documents


0 download

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の開発の一部は「独立行政法人 情報処理推進機構

オープンソースソフトウェア活用基盤整備事業」に係る委託業務の調査・開発に基づくものです。ご支援いただいたことに感謝いたします.