Geri Döngü Dosya Sistemlerinin Performansı


10

Linux geri döngü dosya sistemlerinde performans / karşılaştırma testi yapan var mı? Deneyiminiz şu ana kadar neler oldu. Performansta ciddi bir bozulma var mı? Sağlamlığa ne dersiniz?

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


Performansı karşılaştırmak için bonnie ++ 'ı yerel diskinizde ve geri döngü diskinde çalıştırmak oldukça basit olmalıdır.
ceving

Yanıtlar:


11

Bir geridöngü aygıtında yazma işlemleri ile biraz kıyaslama yaptım. Sonuç:

  • Her yazma işleminden sonra senkronize ederseniz, geri döngü cihazı önemli ölçüde daha kötü performans gösterir (neredeyse iki kat daha yavaş).
  • Diskin bir GÇ zamanlayıcısının işini yapmasına izin verirseniz, geri döngü aygıtı kullanma ile doğrudan disk erişimi arasında neredeyse hiç fark yoktur.

Deney sonuçları

İlk olarak, 8 GB'lık tmpfs'de bir geri döngü cihazında ve bu geri döngü cihazında ( her yazma işleminden sonra senkronizasyon ile) bir geri döngü cihazı üzerinde bir kıyaslama çalıştırdım :

tmpfs içinde ext4:

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

tmpfs içinde extf in ext4:

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

Açıkçası, yazma sırasında senkronize olan geri döngü cihazları kullanılırken performansta bazı farklar vardır.
Sonra aynı testi HDD'imde tekrarladım.
ext4 (HDD, 1000 MB, 3 kez):

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

ext4 girişi ext4 (HDD, 945MB):

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

HDD'de aynı kriter, şimdi her yazma işleminden sonra senkronize edilmiyor ( / time (dd if=/dev/zero bs=1M count=1000 of=file; sync)olarak ölçülüyor ). ext4 (HDD, 1000 MB):<size><time in seconds>

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 girişi 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)

(şaşırtıcı bir şekilde, geri döngü karşılaştırması, muhtemelen geri döngü aygıtının daha küçük boyutu nedeniyle ham disk karşılaştırmasından daha iyi görünür, bu nedenle gerçek senkron-diske daha az zaman harcanır)

Karşılaştırma kurulumu

İlk olarak, / tmp (tmpfs) içinde 8G'lik bir geri döngü dosya sistemi oluşturdum:

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

Sonra monte loopback dosyasını veri ile doldurarak bir temel oluşturdu:

$ 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

Bunu yaptıktan sonra, önceki geridönüş aygıtında başka bir geridöngü aygıtı oluşturdum:

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

Benchmark'ı on kez tekrar çalıştırdık:

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

ve sonra test dosyasını çıkardım ve kaldırdım:

sudo umount /tmp/mountpoint
sudo umount /mnt

(benzer şekilde HDD'deki test için, testin count=1000tüm diskimi doldurmasını önlemek için de eklediğim hariç )
(ve senkronize olmayan yazma testi için zamanlamayı ddve syncişlemi çalıştırdım)


0

Hiç sorun yaşamadım. Her şey kaya gibi sağlamdı. Linux'taki dosya sistemi önbelleği ve IO zamanlayıcı, doğrudan bir disk istemek ile diskteki bir dosyanın bir bölümünü istemek arasında fark edilebilir bir fark yaratmaması gerektiği kadar hassastır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.