Ext4 vs XFS — различия между версиями

Материал из YourcmcWiki
Перейти к: навигация, поиск
м (sysbench random read/write 16K in 16K files)
м
Строка 1: Строка 1:
== Copy kernel source (warm cache) ==
+
== Copy kernel source (from SSD with warm cache) ==
 +
 
 +
HDD: WD Scorpio Black 2.5" 750GB 7200rpm
  
 
* xfs 1 thread: 12.348s
 
* xfs 1 thread: 12.348s
Строка 7: Строка 9:
  
 
== FS-Mark 3.3, creating 1M files ==
 
== FS-Mark 3.3, creating 1M files ==
 +
 +
HDD: WD Scorpio Black 2.5" 750GB 7200rpm
  
 
<plot>
 
<plot>
Строка 40: Строка 44:
  
 
== sysbench random read/write 16K in 8M files ==
 
== sysbench random read/write 16K in 8M files ==
 +
 +
HDD: WD Scorpio Black 2.5" 750GB 7200rpm
  
 
<plot>
 
<plot>
Строка 74: Строка 80:
  
 
== sysbench random read/write 16K in 16K files ==
 
== sysbench random read/write 16K in 16K files ==
 +
 +
HDD: WD Scorpio Black 2.5" 750GB 7200rpm
  
 
<plot>
 
<plot>
Строка 104: Строка 112:
 
32.0  268.36
 
32.0  268.36
 
64.0  257.91
 
64.0  257.91
 +
ENDDATASET
 +
</plot>
 +
 +
== [http://sourceforge.net/projects/filebench/ filebench] fileserver, dirty_ratio=1% ==
 +
 +
* HDD: WD VelociRaptor WD6000HLHX, 10000rpm
 +
* fileserver test is read whole file + append + write whole file test ran on 10000 files in X threads
 +
* filebench fails to run fileserver test with O_DIRECT, so I tested it with dirty_ratio=1% like this:
 +
 +
<code-bash>
 +
echo 1 > /proc/sys/vm/dirty_ratio
 +
echo 0 > /proc/sys/vm/dirty_bytes
 +
echo 0 > /proc/sys/kernel/randomize_va_space
 +
for i in 1 2 4 8 16 32 50 64; do
 +
    echo
 +
    echo "== $i threads =="
 +
    echo
 +
    echo 1 > /proc/sys/vm/drop_caches
 +
    sync
 +
    filebench <<EOF
 +
load fileserver
 +
set \$dir=/media/sdd
 +
set \$nthreads=$i
 +
run 30
 +
EOF
 +
done
 +
echo 20 > /proc/sys/vm/dirty_ratio
 +
</code-bash>
 +
 +
<plot>
 +
set xrange [1:64]
 +
set logscale x
 +
set xtics (1, 2, 4, 8, 16, 32, 50, 64)
 +
set yrange [0:300]
 +
set xlabel 'threads'
 +
set ylabel 'ops/s (more is better)'
 +
set xzeroaxis
 +
set grid ytics
 +
set style fill solid 1.0 noborder
 +
set boxwidth 0.7 relative
 +
plot 'xfs.dat' using 1:2 title 'XFS' with linespoints, 'ext4.dat' using 1:2 title 'ext4' with linespoints
 +
DATASET xfs
 +
1.0  1893
 +
2.0  1801
 +
4.0  1778
 +
8.0  1864
 +
16.0  1720
 +
32.0  1473
 +
50.0  1210
 +
64.0  1056
 +
ENDDATASET
 +
DATASET ext4
 +
1.0  3075
 +
2.0  2352
 +
4.0  2334
 +
8.0  2346
 +
16.0  2022
 +
32.0  1559
 +
50.0  1317
 +
64.0  1163
 
ENDDATASET
 
ENDDATASET
 
</plot>
 
</plot>

Версия 18:58, 19 декабря 2013

Copy kernel source (from SSD with warm cache)

HDD: WD Scorpio Black 2.5" 750GB 7200rpm

  • xfs 1 thread: 12.348s
  • xfs 4 threads: 65.883s
  • ext4 1 thread: 7.662s
  • ext4 4 threads: 33.876s

FS-Mark 3.3, creating 1M files

HDD: WD Scorpio Black 2.5" 750GB 7200rpm

sysbench random read/write 16K in 8M files

HDD: WD Scorpio Black 2.5" 750GB 7200rpm

sysbench random read/write 16K in 16K files

HDD: WD Scorpio Black 2.5" 750GB 7200rpm

filebench fileserver, dirty_ratio=1%

  • HDD: WD VelociRaptor WD6000HLHX, 10000rpm
  • fileserver test is read whole file + append + write whole file test ran on 10000 files in X threads
  • filebench fails to run fileserver test with O_DIRECT, so I tested it with dirty_ratio=1% like this:
echo 1 > /proc/sys/vm/dirty_ratio
echo 0 > /proc/sys/vm/dirty_bytes
echo 0 > /proc/sys/kernel/randomize_va_space
for i in 1 2 4 8 16 32 50 64; do
    echo
    echo "== $i threads =="
    echo
    echo 1 > /proc/sys/vm/drop_caches
    sync
    filebench <<EOF
load fileserver
set \$dir=/media/sdd
set \$nthreads=$i
run 30
EOF
done
echo 20 > /proc/sys/vm/dirty_ratio