ループバックファイルシステムのパフォーマンス


10

Linuxループバックファイルシステムでパフォーマンス/ベンチマークテストを行った人はいますか?これまでの経験はどうですか。パフォーマンスに深刻な低下はありますか?堅牢性はどうですか?

http://freshmeat.net/articles/virtual-filesystem-building-a-linux-filesystem-from-an-ordinary-file


パフォーマンスを比較するために、ネイティブディスクとループバックディスクでbonnie ++を実行するのは非常に簡単です。
2011

回答:


11

ループバックデバイスでの書き込み操作について、少しベンチマークを行いました。ここに結論があります:

  • 書き込みのたびに同期すると、ループバックデバイスのパフォーマンスが大幅に低下します(ほぼ2倍遅い)。
  • ディスクキャッシュにIOスケジューラによる処理を許可する場合、ループバックデバイスの使用と直接ディスクアクセスの違いはほとんどありません。

ベンチマーク結果

まず、8GBのtmpfsのループバックデバイスと、そのループバックデバイス内のループバックデバイス(書き込み操作ごとに同期)でベンチマークを実行しました。

tmpfsのext4:

Measured speed: 557, 567, 563, 558, 560, 559, 556, 556, 554, 557
Average speed : 558.7 MB/s  (min 554  max 560)

tmpfsのextfのext4:

Measured speed: 296, 298, 295, 295, 299, 297, 294, 295, 296, 296
Average speed : 296.1 MB/s  (min 294  max 299)

明らかに、sync-on-writeでループバックデバイスを使用すると、パフォーマンスに多少の違いがあります。
次に、HDDで同じテストを繰り返しました。
ext4(HDD、1000 MB、3回):

Measured speed: 24.1, 23.6, 23.0
Average speed : 23.5 MB/s  (min 23.0  max 24.1)

ext4のext4(HDD、945MB):

Measured speed: 12.9, 13.0, 12.7
Average speed : 12.8 MB/s  (min 12.7  max 13.0)

HDDでの同じベンチマーク。書き込みごとに同期しないようになりましたtime (dd if=/dev/zero bs=1M count=1000 of=file; sync)<size>/ として測定<time in seconds>)。
ext4(HDD、1000 MB):

Measured speed: 84.3, 86.1, 83.9, 86.1, 87.7
Average speed : 85.6 MB/s  (min 84.3  max 87.7)

ext4のext4(HDD、945MB):

Measured speed: 89.9, 97.2, 82.9, 84.0, 82.7
Average speed : 87.3 MB/s  (min 82.7  max 97.2)

(驚いたことに、おそらくループバックデバイスのサイズが小さいため、ループバックベンチマークはrawディスクベンチマークよりも良く見えます。したがって、実際のディスクへの同期に費やされる時間が短くなります。)

ベンチマークの設定

最初に、8Gのループバックファイルシステムを/ tmp(tmpfs)に作成しました。

truncate /tmp/file -s 8G
mkfs.ext4 /tmp/file
sudo mount /tmp/file /mnt/
sudo chown $USER /mnt/

次に、マウントされたループバックファイルにデータを入力して、ベースラインを確立しました。

$ dd if=/dev/zero bs=1M of=/mnt/bigfile oflag=sync
dd: error writing '/mnt/bigfile': No space left on device
7492+0 records in
7491+0 records out
7855763456 bytes (7.9 GB) copied, 14.0959 s, 557 MB/s

その後、前のループバックデバイスに別のループバックデバイスを作成しました。

mkdir /tmp/mountpoint
mkfs.ext4 /mnt/bigfile
sudo mount /mnt/bigfile /tmp/mountpoint
sudo chown $USER /tmp/mountpoint

そして、ベンチマークを再度10回実行しました。

$ dd if=/dev/zero bs=1M of=/tmp/mountpoint/file oflag=sync
...
7171379200 bytes (7.2 GB) copied, 27.0111 s, 265 MB/s

その後、テストファイルをアンマウントして削除しました。

sudo umount /tmp/mountpoint
sudo umount /mnt

(同様にHDDでのテストの場合、ただしcount=1000、テストがディスク全体を埋めるのを防ぐためにも追加しました)
(同期しない書き込みテストでは、時間ddsync動作を実行しました)


0

問題ありませんでした。それはすべて堅実でした。LinuxのファイルシステムキャッシュとIOスケジューラーは、ディスクを直接要求することとディスク上のファイルのセクションを要求することとの間に顕著な違いを生じさせないよう十分に賢明です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.