2011年04月20日
filefrag
e2fsprogsに含まれる、filefragコマンドについて説明します。
filefragコマンドはファイルのフラグメント等を表示するコマンドです。
ユーザー空間からFS_IOC_FIEMAP ioctlをつかって、ディスクからファイルのエクステントの数を取得し、表示します。
FIEMAPはext4固有ではなく、VFS層のioctlであるため、色々なファイルシステムに対して
実行出来ます。例えばxfsでもFS_IOC_FIEMAPをサポートしています。
エクステント数はフラグメント数と等しい為、その数を数えることでファイルの
フラグメントを知ることができます。
下記は実行例です。-vオプションをつけることで詳細な情報を得られます。
[root@linux mnt]# filefrag -v /mnt/mp1/file1
Filesystem type is: ef53
File size of /mnt/mp1/file1 is 31457280 (7680 blocks, blocksize 4096)
ext logical physical expected length flags
0 0 34816 7680 eof
/mnt/mp1/file1: 1 extent found
出力されている情報は下記のものです。
Filesystem type ファイルシステムのマジック番号です。ext2/3/4共通です
ext エクステントの番号を示します。0から数えます。
logical 論理ブロック番号(ファイル相対のブロック番号)です。
physical 物理番号 (ファイルシステム相対のブロック番号)です。
length ブロック長です。
flags 最後のextentや未初期化extentなどのステータスを示します
manualをみると-vオプションのみ記載されていますが、
ソースコードをみると下記のオプションも実装されています。
マニュアルはそのうち更新されるでしょう
B force_bitmap indirect block管理で情報を表示する
b ファイルのブロックサイズではなく、1K blocksizeで表現する
s syncしてから情報を取得する(ディスク上の最新の情報をとってくる)
x 拡張属性のマッピングを取得する
以前はdebugfsコマンドでファイルの物理ブロック番号等を取得していましたが、
こちらの方が手軽でかつ柔軟な利用が可能です。
ファイルの読み込みが遅いと感じた場合はfilefragコマンドを利用し、
フラグメントの状態を確認してみると良いかもしれません。
filefragコマンドはファイルのフラグメント等を表示するコマンドです。
ユーザー空間からFS_IOC_FIEMAP ioctlをつかって、ディスクからファイルのエクステントの数を取得し、表示します。
FIEMAPはext4固有ではなく、VFS層のioctlであるため、色々なファイルシステムに対して
実行出来ます。例えばxfsでもFS_IOC_FIEMAPをサポートしています。
エクステント数はフラグメント数と等しい為、その数を数えることでファイルの
フラグメントを知ることができます。
下記は実行例です。-vオプションをつけることで詳細な情報を得られます。
[root@linux mnt]# filefrag -v /mnt/mp1/file1
Filesystem type is: ef53
File size of /mnt/mp1/file1 is 31457280 (7680 blocks, blocksize 4096)
ext logical physical expected length flags
0 0 34816 7680 eof
/mnt/mp1/file1: 1 extent found
出力されている情報は下記のものです。
Filesystem type ファイルシステムのマジック番号です。ext2/3/4共通です
ext エクステントの番号を示します。0から数えます。
logical 論理ブロック番号(ファイル相対のブロック番号)です。
physical 物理番号 (ファイルシステム相対のブロック番号)です。
length ブロック長です。
flags 最後のextentや未初期化extentなどのステータスを示します
manualをみると-vオプションのみ記載されていますが、
ソースコードをみると下記のオプションも実装されています。
マニュアルはそのうち更新されるでしょう
B force_bitmap indirect block管理で情報を表示する
b ファイルのブロックサイズではなく、1K blocksizeで表現する
s syncしてから情報を取得する(ディスク上の最新の情報をとってくる)
x 拡張属性のマッピングを取得する
以前はdebugfsコマンドでファイルの物理ブロック番号等を取得していましたが、
こちらの方が手軽でかつ柔軟な利用が可能です。
ファイルの読み込みが遅いと感じた場合はfilefragコマンドを利用し、
フラグメントの状態を確認してみると良いかもしれません。
【Linuxの最新記事】
この記事へのコメント