Um die Perfomance von USB-Laufwerken zu testen, nutzt man iozone. Das läßt sich aber unter dem Raspbian nicht installieren. Paket nicht vorhanden
Hier auf der Webseite wird erklärt, wie man das selber baut. Aber da sind ein paar Typos drin.
File runterladen
pi@raspberrypi:~ $ wget http://www.iozone.org/src/current/iozone3_487.tar
--2019-06-30 08:57:41-- http://www.iozone.org/src/current/iozone3_487.tar
Auflösen des Hostnamens www.iozone.org (www.iozone.org)… 208.45.140.198
Verbindungsaufbau zu www.iozone.org (www.iozone.org)|208.45.140.198|:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 1873920 (1,8M) [application/x-tar]
Wird in »iozone3_487.tar« gespeichert.
iozone3_487.tar 100%[====================================>] 1,79M 1,02MB/s in 1,8s
2019-06-30 08:57:48 (1,02 MB/s) - »iozone3_487.tar« gespeichert [1873920/1873920]
File auspacken
pi@raspberrypi:~ $ tar xvf iozone3_487.tar
iozone3_487/src/current/Changes.txt
iozone3_487/src/current/iozone.c
iozone3_487/src/current/report.pl
iozone3_487/src/current/fileop.c
iozone3_487/src/current/pit_server.c
iozone3_487/docs/iozone.1
iozone3_487/src/current/Android.mk
iozone3_487/src/current/Android_Readme.md
iozone3_487/src/current/Application.mk
iozone3_487/src/current/makefile
iozone3_487/src/current/libasync.c
iozone3_487/src/current/libbif.c
iozone3_487/src/current/gnuplot.dem
iozone3_487/src/current/gengnuplot.sh
iozone3_487/src/current/Generate_Graphs
iozone3_487/src/current/iozone_visualizer.pl
iozone3_487/src/current/gnu3d.dem
iozone3_487/src/current/Gnuplot.txt
iozone3_487/src/current/gnuplotps.dem
iozone3_487/src/current/read_telemetry
iozone3_487/src/current/write_telemetry
iozone3_487/src/current/client_list
iozone3_487/src/current/spec.in
iozone3_487/docs/IOzone_msword_98.pdf
iozone3_487/docs/Run_rules.doc
iozone3_487/docs/IOzone_msword_98.doc
iozone3_487/docs/Iozone_ps.gz
iozone bauen
pi@raspberrypi:~ $ cd iozone3_487/src/current/
pi@raspberrypi:~/iozone3_487/src/current $ make -j4 linux-arm
cc -c -o libbif.o libbif.c
cc -c -o libasync.o libasync.c
Building iozone for Linux-arm
Building fileop for Linux-arm
cc -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -DHAVE_PREAD \
-DNAME='"linux-arm"' -DLINUX_ARM -DSHARED_MEM \
-Dlinux -D_LARGEFILE64_SOURCE iozone.c \
-o iozone_linux-arm.o
gcc -Wall -c -O3 fileop.c -o fileop_linux-arm.o
libbif.c:205:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
create_xls(name)
^~~~~~~~~~
libbif.c:230:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
do_header(fd)
^~~~~~~~~
libbif.c:230:1: warning: conflicting types for ‘do_header’
libbif.c:172:6: note: previous declaration of ‘do_header’ was here
void do_header();
^~~~~~~~~
libbif.c:254:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
do_int(fd,val,row,column)
^~~~~~
libbif.c:254:1: warning: conflicting types for ‘do_int’
libbif.c:173:6: note: previous declaration of ‘do_int’ was here
void do_int();
^~~~~~
libbif.c:290:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
do_float(fd, value, row, column)
^~~~~~~~
libbif.c:290:1: warning: conflicting types for ‘do_float’
libbif.c:174:6: note: previous declaration of ‘do_float’ was here
void do_float();
^~~~~~~~
libbif.c:373:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
do_label(fd, string, row, column)
^~~~~~~~
libbif.c:373:1: warning: conflicting types for ‘do_label’
libbif.c:175:6: note: previous declaration of ‘do_label’ was here
void do_label();
^~~~~~~~
libbif.c:416:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
do_eof(fd)
^~~~~~
libbif.c:416:1: warning: conflicting types for ‘do_eof’
libbif.c:176:6: note: previous declaration of ‘do_eof’ was here
void do_eof();
^~~~~~
libasync.c: In function ‘end_async’:
libasync.c:299:2: warning: implicit declaration of function ‘del_cache’; did you mean ‘incache’? [-Wimplicit-function-declaration]
del_cache(gc);
^~~~~~~~~
incache
libasync.c: In function ‘async_read’:
libasync.c:427:3: warning: implicit declaration of function ‘takeoff_cache’; did you mean ‘alloc_cache’? [-Wimplicit-function-declaration]
takeoff_cache(gc,ce);
^~~~~~~~~~~~~
alloc_cache
libasync.c: At top level:
libasync.c:603:1: warning: conflicting types for ‘takeoff_cache’
takeoff_cache(struct cache *gc, struct cache_ent *ce)
^~~~~~~~~~~~~
libasync.c:427:3: note: previous implicit declaration of ‘takeoff_cache’ was here
takeoff_cache(gc,ce);
^~~~~~~~~~~~~
libasync.c:677:1: warning: conflicting types for ‘del_cache’
del_cache(gc)
^~~~~~~~~
libasync.c:299:2: note: previous implicit declaration of ‘del_cache’ was here
del_cache(gc);
^~~~~~~~~
libasync.c: In function ‘async_read_no_copy’:
libasync.c:765:3: warning: implicit declaration of function ‘putoninuse’ [-Wimplicit-function-declaration]
putoninuse(gc,ce);
^~~~~~~~~~
libasync.c: In function ‘async_release’:
libasync.c:870:2: warning: implicit declaration of function ‘takeoffinuse’; did you mean ‘takeoff_cache’? [-Wimplicit-function-declaration]
takeoffinuse(gc);
^~~~~~~~~~~~
takeoff_cache
libasync.c: At top level:
libasync.c:884:1: warning: conflicting types for ‘putoninuse’
putoninuse(gc,entry)
^~~~~~~~~~
libasync.c:765:3: note: previous implicit declaration of ‘putoninuse’ was here
putoninuse(gc,ce);
^~~~~~~~~~
libasync.c:905:1: warning: conflicting types for ‘takeoffinuse’
takeoffinuse(gc)
^~~~~~~~~~~~
libasync.c:870:2: note: previous implicit declaration of ‘takeoffinuse’ was here
takeoffinuse(gc);
^~~~~~~~~~~~
Building the pit_server
cc -c pit_server.c -o pit_server.o
cc -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -D_LARGEFILE64_SOURCE \
-DSHARED_MEM -Dlinux libbif.c -o libbif.o
cc -c -O3 -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \
-D_LARGEFILE64_SOURCE libasync.c -o libasync.o
cc -O3 iozone_linux-arm.o libbif.o libasync.o \
-lrt -lpthread -o iozone
cc -O3 -Dlinux fileop_linux-arm.o -o fileop
cc -O3 -Dlinux pit_server.o -o pit_server
iozone kopieren
sudo cp iozone /usr/local/bin
Test meiner Samsung T5 mit 500GB
pi@raspberrypi:~ $ iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
Iozone: Performance Test of File I/O
Version $Revision: 3.487 $
Compiled for 32 bit mode.
Build: linux-arm
Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
Al Slater, Scott Rhine, Mike Wisner, Ken Goss
Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
Vangel Bojaxhi, Ben England, Vikentsi Lapa,
Alexey Skidanov, Sudhir Kumar.
Run began: Sun Jun 30 09:02:03 2019
Include fsync in write timing
O_DIRECT feature enabled
Auto Mode
File size set to 102400 kB
Record Size 4 kB
Record Size 16 kB
Record Size 512 kB
Record Size 1024 kB
Record Size 16384 kB
Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
Output is in kBytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 kBytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
102400 4 26845 34021 33388 33303 18822 33148
102400 16 84330 102525 86757 89905 58202 96487
102400 512 201247 155920 144046 144036 141239 149121
102400 1024 232917 243315 239391 267603 242457 248111
102400 16384 200792 199172 146421 131353 133374 203319
iozone test complete.
Das Ergebnis ist immer noch bescheiden.