- - PR -
tarのバックアップ時間
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-08 11:37
毎度お世話になります。
tarで日次バックアップを行っています。 この時、あるディレクトリ下の10000ファイル(total500MB)のバックアップをtarにて実施した場合、15MB/Sのスピードが得られました。 しかし同じ10000ファイル(total500MB)でもディレクトリが多数分かれている場合には、5MB程度しかスピードが出ません。 これはtarの仕様でそうなっているのでしょうか。それとも他に原因があるのでしょうか。 お解りの方、ぜひお助けください。 よろしくお願いします。 | ||||
|
投稿日時: 2004-03-08 12:02
サイズより、ファイル(ディレクトリも含む)数が問題だと思いますよ。
# find . -print | wc と実行して、ファイル数(表示される数字の1個目)を比較してみると良いですよ。 | ||||
|
投稿日時: 2004-03-08 12:27
ごめんなさい、的外れレスでした。
ファイル数は一緒なんですね。 ということは、両者ではディレクトリ数に違いがあるわけですね。 ディレクトリ数だけを比較するとどれくらい違いますか? | ||||
|
投稿日時: 2004-03-08 12:28
こんにちは。早速のお返事ありがとうございます。
説明が足りませんでした。 10000ファイルの内訳は同じなんです。 ファイルがある場所が、あるディレクトリの下にまとまってあるのか、色々なディレクトリにバラケているかの違いなんです。 例えば、/a/file1,/a/file2…の場合と/a/b/file1,/x/y/file2,…(←こいつらはもっと階層が深い)という具合です。 /a/file1と/a/b/file1、/a/file2と/z/y/file2は同じ内容。 (total500MB)というのは余計な情報でした。 | ||||
|
投稿日時: 2004-03-08 12:44
こんにちは〜。
こちら、複数のディレクトリに分かれているとのことですが、ディスク自体は 1本なので しょうか? (/a/b(/file1) は HDD で /x/y(/file2) は SCSI だ、等) 当然ですが、遅い媒体を利用した場合は、その分処理が遅くなります。 HDD でも性能は異なりますので、時間(スピード)を気にされるようでしたら、それらの スペックも調べておくとよいと思います。 ![]() | ||||
|
投稿日時: 2004-03-08 13:00
こんにちは。
HDDは一つです。 ディレクトリがいっぱい分かれていると、分かれているファイル毎にディレクトリ検索を行うのでスピードが落ちるのかな、と考えていたのですが…。どうなんでしょ。そういうのってどっかに記述があるのでしょうかね。仕様書とか。 | ||||
|
投稿日時: 2004-03-08 14:45
GNU tarのソースを見れば全てがわかると思いますが、なかなか我々一般人には手強いですよね。。 ただ、あまり難しく考えなくて良いんじゃないですか。たくさんのディレクトリにファイルが分散してるなら、当然余計な時間がかかるでしょう。opendir,readir,closedirの発行がディレクトリの数分増えますし、多数のディレクトリに分散されたファイルが、「tarがディレクトリツリーをトラバースするのと同じ順番で」ディスク上に配置されていることは当然期待できないので、ヘッドのシークに要する時間も増えるでしょう。 [ メッセージ編集済み 編集者: サ 編集日時 2004-03-08 14:52 ] | ||||
|
投稿日時: 2004-03-08 15:04
どうも〜。
そうですか、HDD は 1本ですか…。 基本的に、ディレクトリが分かれたりすれば、その分読み出しのための時間がかかるのは仕方が無い(所詮 ”円盤” が回ってますので)&ディレクトリ情報の書き込み分もプラス される(tar ボールのサイズも大きくなる)とは思うのですが、3分の 1 はちょっと落ち すぎかなぁ、とも思います。 ![]() (よっぽど細かくファイルが散在しているのでしょうか?) それと、マシン自体の負荷も影響するか、と。 あとは、ブロックサイズを調整してみるといいかもしれません。 (あ゛〜昔の資料がいま手元にない〜〜〜) あまり参考にならなかったらすみません。_o_ ちなみに、「仕様書」 というものはないと思っています。 各デバイスのスペックとマシン性能、ファイルの状態(散在してるとか、バイナリばかり だとか)から見積りを作って、実際に時間を計測する他ないのではないでしょうか…。 (他によい方法があったら教えてください!苦笑) そうそう、次の点はどうなっていらっしゃいますか?
|