i wanted to compare NTFS (3.1 you can find out by starting a command prompt with admin rights and then go: fsutil fsinfo ntfsinfo C:) and ext3 and ext4 and xfs and btrfs performance and were looking for a cross os harddisk benchmark… i was not able to run jDiskMark under Windows, luckily there is IOzone

that was actually the first intention… to compare NTFS to the linux filesystems…

accroding to this chart… ext4 is slightly faster:

Download:

CentOS / Redhat / Fedora:

ln -sv /opt/iozone/bin/iozone /usr/bin/iozone; # so it is found and non-root users can use it as well

32Bit:

http://www.iozone.org/src/current/iozone-3-471.i386.rpm

mirror download: iozone-3-471.i386.rpm.gz

sha512sum iozone-3-471.i386.rpm.gz
4ee86e6149d4e547943d5ffcb85ddb571e69159fc9fcbed792893ba8edd046ae13cab95642370dd6270837e3fef771d3eba683a7a30ee2032b3586afd78668fd iozone-3-471.i386.rpm.gz

64Bit Versions

http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/iozone-3.424-2.el7.rf.x86_64.rpm

mirror download: iozone-3.424-2.el7.rf.x86_64.rpm.gz

sha512sum iozone-3.424-2.el7.rf.x86_64.rpm.gz
874b5ddaf80c6f6cc27c388bce8a5525070e55939ea64cd068e1afa0b3f087902253b661eaa0bf2b5d6ccefa6ccfcdb53b93cfd2649ecef58a2855ab4710f966 iozone-3.424-2.el7.rf.x86_64.rpm.gz

rpm: https://pkgs.org/download/iozone

Windooze:

http://www.iozone.org/src/current/IozoneSetup.exe

download mirror: IozoneSetup.exe.gz

sha512sum IozoneSetup.exe.gz
065b77cd4e0aed8948af70b3b2c51b07b55595144a166702a274c1c24a3ebb44ed4d5310ac12fd8ebb58abd5db180513e16abab7bc77164aa1b70413e290723c IozoneSetup.exe.gz

Debian / Ubuntu has it in non-free repository

echo „deb http://deb.debian.org/debian stretch non-free“ >> /etc/apt/sources.list
echo „deb http://deb.debian.org/debian stretch-updates non-free“ >> /etc/apt/sources.list
apt-get update
;

apt-cache search iozone; # search iozone3 – Filesystem and Disk Benchmarking Tool

apt-get install iozone3; # install it

seems to be the better cross os harddisk benchmark…

iozone.man.txt

you will not find a „-d /dev/sda“ device switch/argument/option because: iozone will operate in the current directory by default. If you wish to test your ZFS pool, change directories to the relevant directory containing the pol or child filesystems, then execute iozone. (src)

http://www.iozone.org/

2003: iozone benchmark comparison of linux filesystems comparison_linux_filesystems_2003_DL580_multi.pdf

and event an apt package for debian exists! respect!

time iozone -a; # run all tests and measure time to complete all tests

iozone -R -b exceloutput.xls > logfile; # quick test and save to excel

iozone -a -R -b exceloutput.xls > logfile; # run all tests and export to excel

java based harddisk benchmark: jdiskmark

this benchmark uses java8 – so it might not be the best of harddisk benchmarks (preferable would be one written in C or C++) – so all it proves is how fast can java read/write from certain filesystems.

what i found was: https://sourceforge.net/projects/jdiskmark/

the beauty of java: it runs everywhere

same code – different os – cross os comparable results?

hostnamectl
   Static hostname: DebianLaptop
         Icon name: computer-laptop
           Chassis: laptop
  Operating System: Debian GNU/Linux 8 (jessie)
            Kernel: Linux 3.16.0-4-686-pae
      Architecture: x86

apt-get install software-properties-common; # install the add-apt-repository command
add-apt-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main";

# it should acknowledge with:
gpg: keyring `/tmp/tmp3_psrbzv/secring.gpg' created
gpg: keyring `/tmp/tmp3_psrbzv/pubring.gpg' created
gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp3_psrbzv/trustdb.gpg: trustdb created
gpg: key EEA14886: public key "Launchpad VLC" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

apt-get update;

apt-cache search jre|grep 8; # search for java runtime environment version 8 (minimum requirement for jdisk mark

gcj-4.8-jre - Java runtime environment using GIJ/Classpath
gcj-4.8-jre-headless - Java runtime environment using GIJ/Classpath (headless version)
gcj-4.8-jre-lib - Java runtime library for use with gcj (jar files)
oracle-java8-installer - Oracle Java(TM) Development Kit (JDK) 8
oracle-java8-unlimited-jce-policy - Unlimited JCE Policy for Oracle Java 8

apt-get install oracle-java8-installer; # install java8 on debian linux
apt-get install oracle-java9-installer; # install java9 on debian linux

now you have to accept the non-GPL non-Free non-Open Source terms…

If you havemultiple Java versions installed, you can configure which version is the default with:

update-alternatives --config java;

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-oracle/jre/bin/java         1081      auto mode
  1            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/java-8-oracle/jre/bin/java         1081      manual mode

Press enter to keep the current choice[*], or type selection number: 

lets continue…

cd /software/bench; # where you want to download
wget https://netcologne.dl.sourceforge.net/project/jdiskmark/jdiskmark-v0.4.zip

unzip jdiskmark-v0.4.zip;

chown -R user:user /software/; # you might need to give your non-root-default user access rights

java -jar /software/bench/jdiskmark-v0.4/jDiskMark.jar; # start the benchmark tool 

system info:

Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz with 16GB of DDR3, Samsung 850 Pro.

i booting from „IDEAL LINUX USB STICK“ – the amazing cool debian live boot stick and use gparted on a fresh giada f301.

used gparted to create a single ext3/ext4 partition /dev/sda1

so there is no OS installed on the SSD itself.

java -jar /software/bench/jdiskmark-v0.4/jDiskMark.jar; # start the benchmark tool

benchmark settings: „No.Blocks“ (Number of Blocks) has been increased from 32 to 1024.

15GB of FREE HARDDISK SPACE REQUIRED!

THE READ TEST MAKE HEAVY USE OF RAM CACHING!

THEREFORE THE RESULTS OF READ TEST DO NOT REPRESENT THE TRUE HARDDISK SPEEDS!

(it rather meassured RAM-Speed: which was sometimes 2GB/s and sometimes 4GB/s probably depending on (i don’t know) Java starting 2 or 4 threads?)

os version and ext4 module version:

hostnamectl 
   Static hostname: debian
         Icon name: computer-laptop
  Operating System: Debian GNU/Linux 8 (jessie)
            Kernel: Linux 3.16.0-4-686-pae
      Architecture: x86

modinfo ext4
filename:       /lib/modules/3.16.0-4-686-pae/kernel/fs/ext4/ext4.ko
license:        GPL
description:    Fourth Extended Filesystem
author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
alias:          fs-ext4
alias:          ext3
alias:          fs-ext3
alias:          ext2
alias:          fs-ext2
depends:        mbcache,jbd2,crc16
intree:         Y
vermagic:       3.16.0-4-686-pae SMP mod_unload modversions 686

fazit:

xfs was the fastest – followed by ext4 – followed by ext3 which has a comparable performance to btrfs.

but of course btrfs has more features than ext3 (snapshots etc.).

cpu usage during benchmark:

the cpu was NOT the limiting factor… (all four cores usually were below 10% usage)

now let’s go: ext4

let’s go: ext3

let’s go: xfs

let’s go: BTRFS

 

let’s go: NTFS 3.1 under Win 7 Pro SP1 and all updates

… i was not able to run jDiskMark under Windows 🙁

that was actually the first intention… to compare NTFS to the linux filesystems…

additional cpu and ram benchmarks:

created with: bench.scripts.tar.gz

 /scripts/bench.sh 
===== running a couple of benchmarks
============ CPU INFO
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 78
model name	: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
============ CPU MIPS and FLOPS
bogomips	: 4800.07
bogomips	: 4800.07
bogomips	: 4800.07
bogomips	: 4800.07
============ CPU BENCHMARK
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          9.9076s
    total number of events:              10000
    total time taken by event execution: 39.6235
    per-request statistics:
         min:                                  2.33ms
         avg:                                  3.96ms
         max:                                 14.33ms
         approx.  95 percentile:               4.01ms

Threads fairness:
    events (avg/stddev):           2500.0000/4.30
    execution time (avg/stddev):   9.9059/0.00

====== RAM SPEED TESTING
... preparing
... running test 5 times
====== writing to RAM
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,279447 s, 3,8 GB/s
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,27335 s, 3,9 GB/s
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,273547 s, 3,9 GB/s
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,274202 s, 3,9 GB/s
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,273054 s, 3,9 GB/s
====== reading from RAM
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,179427 s, 6,0 GB/s
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,165178 s, 6,5 GB/s
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,163057 s, 6,6 GB/s
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,162737 s, 6,6 GB/s
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 0,162432 s, 6,6 GB/s
... cleaning up
admin