Lemmi
27.12.2004, 16:23:31
Ale Ergänzung vom Thread Durchsatz im LAN (http://www.m740.de/forum/showthread.php?t=91) habe ich ein kleines Test-Script geschrieben, welches den Durchsatz auf dem USB-Device und in LAN testen soll. Durch das Script werden einige Kopieroperationen (jeweils 64 MB) durchgeführt und die Zeit gemessen und natürlich auch ausgegeben.
Voraussetzungen für den Test:
Telent-Zugang (->FW 1.12.1 oder FW 1.18 mit Patch (http://www.m740.de/forum/showthread.php?p=1571#post1571))
.
Dieses Script (http://www.m740.de/forum/attachment.php?attachmentid=40)
.
LAN und/oder USB-Device
.
130 MB freier Platz für 2 temporäre Dateien.
Vorgehensweise:
Das Script (http://www.fernuni-hagen.de/FTB/dc/download/m740av/durchsatz) runterladen und in das Test-Verzeichnis kopieren (USB oder LAN).
.
telnet auf die Box (user=root, pw=l1nux)
.
In das Test-Verzeichnis wechseln, z.B. cd /var/media/USB-HDD/... oder cd /var/media/PC1/...
.
Den Befehl bash durchsatz | tee test.log ausführen.
Alternative bash durchsatz +k | tee test.log: Dann wird auch die Datei /proc/kcore kopiert, was aber relativ lange dauert. Die Laufzeit beträgt ca 8 Minuten, mit +k sogar 15 Minuten.
.
Die Bildschirmausgabe des Testes befindet sich acuh zur Weiterverarbeitung in der Datei test.log.
.
Der test sollte für alle Devices (USB, PC1, PC2, ...) durchgeführt werden.
.
Die jeweils letzten 5 bzw. 6 Zeilen der Ausgabe sind für den Report notwendig.
Das wars.
Ein paar Anmerkungen.
Ich kopiere extra große Dateien, damit kurze Zwischenspeicherung nebensächlich wird.
.
Die Dateigröße ist 64 MB, weil kcore auch 64 MB groß ist.
.
Ich kopiere innerhalb der Box, zum Medddium, vom Medium und innerhalb des Mediums.
.
Der 'dd' Befehl sit relativ langsam gegnüber des 'cp' Befehls. Er ist aber notwendig für das Kopieren von /dev/zero zum Medium.
Dann legt mal los.
P.S.: Der Code zum mitlesen:
#!/bin/sh
#
# Aufruf: bash durchsatz | tee log
#
echo "----------------------"
cmd="dd if=/dev/zero of=/dev/null count=128000"
echo "test 0: $cmd"
t0a=`date +%s`
r0=`( time $cmd ) 2>&1 | grep real`
t0b=`date +%s`
t0=$((t0b-t0a))
k0=$((64000/t0))
echo "copy 64MB [dd] zero->null: $t0 seconds -> $k0 KB/s [$r0]"
echo "----------------------"
sleep 5
cmd="dd if=/dev/zero of=./test1.tmp count=128000"
echo "test 1: $cmd"
t1a=`date +%s`
r1=`( time $cmd ) 2>&1 | grep real`
t1b=`date +%s`
t1=$((t1b-t1a))
k1=$((64000/t1))
echo "copy 64MB [dd] zero->local: $t1 seconds -> $k1 KB/s [$r1]"
echo "----------------------"
if test "$1" == "+k"; then
sleep 5
cmd="cp /proc/kcore ./test2.tmp"
echo "test 2: $cmd"
t2a=`date +%s`
r2=`( time $cmd ) 2>&1 | grep real`
t2b=`date +%s`
t2=$((t2b-t2a))
k2=$((64000/t2))
echo "copy 64MB [cp] kcore->local: $t2 seconds -> $k2 KB/s [$r2]";
fi
echo "----------------------"
sleep 5
cmd="dd if=./test1.tmp of=/dev/null count=128000"
echo "test 3: $cmd"
t3a=`date +%s`
r3=`( time $cmd ) 2>&1 | grep real`
t3b=`date +%s`
t3=$((t3b-t3a))
k3=$((64000/t3))
echo "copy 64MB [dd] local->null: $t3 seconds -> $k3 KB/s [$r3]"
echo "----------------------"
sleep 5
cmd="cp ./test1.tmp /dev/null"
echo "test 4: $cmd"
t4a=`date +%s`
r4=`( time $cmd ) 2>&1 | grep real`
t4b=`date +%s`
t4=$((t4b-t4a))
k4=$((64000/t4))
echo "copy 64MB [cp] local->null: $t4 seconds -> $k4 KB/s [$r4]"
echo "----------------------"
sleep 5
cmd="cp ./test1.tmp ./test2.tmp"
echo "test 5: $cmd"
t5a=`date +%s`
r5=`( time $cmd ) 2>&1 | grep real`
t5b=`date +%s`
t5=$((t5b-t5a))
k5=$((64000/t5))
echo "copy 64MB [cp] local->local: $t5 seconds -> $k5 KB/s [$r5]"
echo "----------------------"
echo "copy 64MB [dd] zero->null: $t0 seconds -> $k0 KB/s [$r0]"
echo "copy 64MB [dd] zero->local: $t1 seconds -> $k1 KB/s [$r1]"
if test "$1" == "+k"; then
echo "copy 64MB [cp] kcore->local: $t2 seconds -> $k2 KB/s [$r2]";
fi
echo "copy 64MB [dd] local->null: $t3 seconds -> $k3 KB/s [$r3]"
echo "copy 64MB [cp] local->null: $t4 seconds -> $k4 KB/s [$r4]"
echo "copy 64MB [cp] local->local: $t5 seconds -> $k5 KB/s [$r5]"
rm test[12].tmp
Voraussetzungen für den Test:
Telent-Zugang (->FW 1.12.1 oder FW 1.18 mit Patch (http://www.m740.de/forum/showthread.php?p=1571#post1571))
.
Dieses Script (http://www.m740.de/forum/attachment.php?attachmentid=40)
.
LAN und/oder USB-Device
.
130 MB freier Platz für 2 temporäre Dateien.
Vorgehensweise:
Das Script (http://www.fernuni-hagen.de/FTB/dc/download/m740av/durchsatz) runterladen und in das Test-Verzeichnis kopieren (USB oder LAN).
.
telnet auf die Box (user=root, pw=l1nux)
.
In das Test-Verzeichnis wechseln, z.B. cd /var/media/USB-HDD/... oder cd /var/media/PC1/...
.
Den Befehl bash durchsatz | tee test.log ausführen.
Alternative bash durchsatz +k | tee test.log: Dann wird auch die Datei /proc/kcore kopiert, was aber relativ lange dauert. Die Laufzeit beträgt ca 8 Minuten, mit +k sogar 15 Minuten.
.
Die Bildschirmausgabe des Testes befindet sich acuh zur Weiterverarbeitung in der Datei test.log.
.
Der test sollte für alle Devices (USB, PC1, PC2, ...) durchgeführt werden.
.
Die jeweils letzten 5 bzw. 6 Zeilen der Ausgabe sind für den Report notwendig.
Das wars.
Ein paar Anmerkungen.
Ich kopiere extra große Dateien, damit kurze Zwischenspeicherung nebensächlich wird.
.
Die Dateigröße ist 64 MB, weil kcore auch 64 MB groß ist.
.
Ich kopiere innerhalb der Box, zum Medddium, vom Medium und innerhalb des Mediums.
.
Der 'dd' Befehl sit relativ langsam gegnüber des 'cp' Befehls. Er ist aber notwendig für das Kopieren von /dev/zero zum Medium.
Dann legt mal los.
P.S.: Der Code zum mitlesen:
#!/bin/sh
#
# Aufruf: bash durchsatz | tee log
#
echo "----------------------"
cmd="dd if=/dev/zero of=/dev/null count=128000"
echo "test 0: $cmd"
t0a=`date +%s`
r0=`( time $cmd ) 2>&1 | grep real`
t0b=`date +%s`
t0=$((t0b-t0a))
k0=$((64000/t0))
echo "copy 64MB [dd] zero->null: $t0 seconds -> $k0 KB/s [$r0]"
echo "----------------------"
sleep 5
cmd="dd if=/dev/zero of=./test1.tmp count=128000"
echo "test 1: $cmd"
t1a=`date +%s`
r1=`( time $cmd ) 2>&1 | grep real`
t1b=`date +%s`
t1=$((t1b-t1a))
k1=$((64000/t1))
echo "copy 64MB [dd] zero->local: $t1 seconds -> $k1 KB/s [$r1]"
echo "----------------------"
if test "$1" == "+k"; then
sleep 5
cmd="cp /proc/kcore ./test2.tmp"
echo "test 2: $cmd"
t2a=`date +%s`
r2=`( time $cmd ) 2>&1 | grep real`
t2b=`date +%s`
t2=$((t2b-t2a))
k2=$((64000/t2))
echo "copy 64MB [cp] kcore->local: $t2 seconds -> $k2 KB/s [$r2]";
fi
echo "----------------------"
sleep 5
cmd="dd if=./test1.tmp of=/dev/null count=128000"
echo "test 3: $cmd"
t3a=`date +%s`
r3=`( time $cmd ) 2>&1 | grep real`
t3b=`date +%s`
t3=$((t3b-t3a))
k3=$((64000/t3))
echo "copy 64MB [dd] local->null: $t3 seconds -> $k3 KB/s [$r3]"
echo "----------------------"
sleep 5
cmd="cp ./test1.tmp /dev/null"
echo "test 4: $cmd"
t4a=`date +%s`
r4=`( time $cmd ) 2>&1 | grep real`
t4b=`date +%s`
t4=$((t4b-t4a))
k4=$((64000/t4))
echo "copy 64MB [cp] local->null: $t4 seconds -> $k4 KB/s [$r4]"
echo "----------------------"
sleep 5
cmd="cp ./test1.tmp ./test2.tmp"
echo "test 5: $cmd"
t5a=`date +%s`
r5=`( time $cmd ) 2>&1 | grep real`
t5b=`date +%s`
t5=$((t5b-t5a))
k5=$((64000/t5))
echo "copy 64MB [cp] local->local: $t5 seconds -> $k5 KB/s [$r5]"
echo "----------------------"
echo "copy 64MB [dd] zero->null: $t0 seconds -> $k0 KB/s [$r0]"
echo "copy 64MB [dd] zero->local: $t1 seconds -> $k1 KB/s [$r1]"
if test "$1" == "+k"; then
echo "copy 64MB [cp] kcore->local: $t2 seconds -> $k2 KB/s [$r2]";
fi
echo "copy 64MB [dd] local->null: $t3 seconds -> $k3 KB/s [$r3]"
echo "copy 64MB [cp] local->null: $t4 seconds -> $k4 KB/s [$r4]"
echo "copy 64MB [cp] local->local: $t5 seconds -> $k5 KB/s [$r5]"
rm test[12].tmp