[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Floppy-Problem


Am Dienstag, 10. Juni 2008 23:20:17 schrieb Raphael Becker:

> > mein Floppy-Laufwerk schreibt Dateien in genau 32KB-Haeppchen
> > mit dazwischen liegenden Pausen von gefuehlten 20 s, in denen
> > keine Kopfbewegung zu hoeren ist. (Bei Dateigroessen bis 32KB
> > faellt die Sache also kaum auf.) Das Leseverhalten ist
> > einwandfrei.
> >
> > - Log-Dateien unauffaellig
> > - Diskette getauscht (Markenware)
> > - Laufwerk getauscht (auch gebraucht)
> > - OS getauscht (Suse10.3 gegen Knoppix)
> >
> > Problem verschwindet erst, wenn "sync" aus der fstab entfernt
> > wird!
> >
> > Was kann die Ursache sein?
>
> Koennte an 2 Stellen zustande kommen:
>
> a) Zugriff auf das Device
> b) Zugriff auf das Filesystem
>
> Wenn mountoptionen einen Unterschied darstellen, muesste es wohl
> das FS sein. Die 20sec koennten ein sync-Intervall sein.
>
> Teste mal auf einer ungemounteten aber formatierten Floppy Lese
> und Schreibzugriffe:
>
> $ dd if=/dev/fd0 of=/dev/null bs=1,2,4,8,16,32,64,128k und miss
> die Zeit

Soll wohl heissen 1k, 2k, 4k usw.
Die Zeit ist immer gleich, stellvertretend eine Messung:



werner@zuse:~> dd if=/dev/fd0 of=/dev/null bs=1k
1440+0 Datensaetze ein
1440+0 Datensaetze aus
1474560 Bytes (1,5 MB) kopiert, 47,576 s, 31,0 kB/s



> IIRC setzt das Floppylaufwerk ein Register, wenn eine Diskette
> entfernt wurde bzw. neu eungelegt wurde. Das koennte im Cache
> Verwendung finden. Deswegen zwischen jeden Test das Medium
> entfernen und neu einlegen (kurz den Auswurfknopf druecken sollte
> reichen).
>
> Schreibend ebenso auf eine leere Diskette:
>
> $ dd if=/dev/zero of=/dev/fd0 bs=1,2,4,8,16,32,64,128k
>
> ... jeweils Zeit messen und dazwischen Medium ejecten.



werner@zuse:~> dd if=/dev/zero of=/dev/fd0 bs=1k
dd: Schreiben von â??/dev/fd0â??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
1441+0 Datensaetze ein
1440+0 Datensaetze aus
1474560 Bytes (1,5 MB) kopiert, 97,5527 s, 15,1 kB/s
werner@zuse:~> dd if=/dev/zero of=/dev/fd0 bs=2k
dd: Schreiben von â??/dev/fd0â??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
721+0 Datensaetze ein
720+0 Datensaetze aus
1474560 Bytes (1,5 MB) kopiert, 97,7469 s, 15,1 kB/s



Die Meldung "kein Speicherplatz" erscheint bei den bisherigen
Blockgroessen nach 83 s, danach geht das Schreiben hoerbar weiter.

In allen folgenden Blockgroessen erscheint "kein Speicherplatz"
bereits am Beginn des Schreibvorgangs. Darauf kann ich mir
keinen Reim machen. Die Zeit verkuerzt sich insgesamt auf den
Wert fuer Lesen von ganz oben:



werner@zuse:~> dd if=/dev/zero of=/dev/fd0 bs=4k
dd: Schreiben von â??/dev/fd0â??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
361+0 Datensaetze ein
360+0 Datensaetze aus
1474560 Bytes (1,5 MB) kopiert, 48,1761 s, 30,6 kB/s
werner@zuse:~> dd if=/dev/zero of=/dev/fd0 bs=8k
dd: Schreiben von â??/dev/fd0â??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
181+0 Datensaetze ein
180+0 Datensaetze aus
1474560 Bytes (1,5 MB) kopiert, 48,1763 s, 30,6 kB/s
werner@zuse:~> dd if=/dev/zero of=/dev/fd0 bs=16k
dd: Schreiben von â??/dev/fd0â??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
91+0 Datensaetze ein
90+0 Datensaetze aus
1474560 Bytes (1,5 MB) kopiert, 48,1761 s, 30,6 kB/s
werner@zuse:~> dd if=/dev/zero of=/dev/fd0 bs=32k
dd: Schreiben von â??/dev/fd0â??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
46+0 Datensaetze ein
45+0 Datensaetze aus
1474560 Bytes (1,5 MB) kopiert, 48,1849 s, 30,6 kB/s
werner@zuse:~> dd if=/dev/zero of=/dev/fd0 bs=64k
dd: Schreiben von â??/dev/fd0â??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
23+0 Datensaetze ein
22+0 Datensaetze aus
1474560 Bytes (1,5 MB) kopiert, 48,1788 s, 30,6 kB/s
werner@zuse:~> dd if=/dev/zero of=/dev/fd0 bs=128k
dd: Schreiben von â??/dev/fd0â??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
12+0 Datensaetze ein
11+0 Datensaetze aus
1474560 Bytes (1,5 MB) kopiert, 48,1647 s, 30,6 kB/s

> Das gleiche auf einer formatierten, gemounteten Diskette
> ausprobieren, zwischen den Tests auch umount/eject/mount mit den
> jeweiligen Optionen (sync oder nicht) und statt /dev/fd0 dann
> /mnt/floppy/bigfile verwenden

Zuerst schreiben ohne sync:



werner@zuse:~> dd if=/dev/zero of=/media/floppy/bigfile bs=1k
dd: Schreiben von â??/media/floppy/bigfileâ??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
1424+0 Datensaetze ein
1423+0 Datensaetze aus
1457152 Bytes (1,5 MB) kopiert, 0,0452087 s, 32,2 MB/s
werner@zuse:~> umount /media/floppy/
werner@zuse:~> mount /media/floppy/
werner@zuse:~> dd if=/dev/zero of=/media/floppy/bigfile bs=128k
dd: Schreiben von â??/media/floppy/bigfileâ??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
12+0 Datensaetze ein
11+0 Datensaetze aus
1454080 Bytes (1,5 MB) kopiert, 0,0225397 s, 64,5 MB/s



Reale Schreibzeit danach in beiden Faellen 50 Sekunden, also in Ordnung.

Jetzt schreiben mit sync:



werner@zuse:~> dd if=/dev/zero of=/media/floppy/bigfile bs=1k
dd: Schreiben von â??/media/floppy/bigfileâ??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
1424+0 Datensaetze ein
1423+0 Datensaetze aus
1457152 Bytes (1,5 MB) kopiert, 2013,89 s, 0,7 kB/s
werner@zuse:~> umount /media/floppy/
werner@zuse:~> mount /media/floppy/
werner@zuse:~> dd if=/dev/zero of=/media/floppy/bigfile bs=16k
dd: Schreiben von â??/media/floppy/bigfileâ??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
89+0 Datensaetze ein
88+0 Datensaetze aus
1454080 Bytes (1,5 MB) kopiert, 1267,79 s, 1,1 kB/s
werner@zuse:~> umount /media/floppy/
werner@zuse:~> mount /media/floppy/
werner@zuse:~> dd if=/dev/zero of=/media/floppy/bigfile bs=32k
dd: Schreiben von â??/media/floppy/bigfileâ??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
45+0 Datensaetze ein
44+0 Datensaetze aus
1454080 Bytes (1,5 MB) kopiert, 1263,68 s, 1,2 kB/s
werner@zuse:~> umount /media/floppy/
werner@zuse:~> mount /media/floppy/
werner@zuse:~> dd if=/dev/zero of=/media/floppy/bigfile bs=128k
dd: Schreiben von â??/media/floppy/bigfileâ??: Auf dem Geraet ist kein Speicherplatz mehr verfuegbar
12+0 Datensaetze ein
11+0 Datensaetze aus
1454080 Bytes (1,5 MB) kopiert, 1220,42 s, 1,2 kB/s



> Ich denke, dass der schreibende Zugriff auf /dev/fd0 deutlich
> schneller geht als der (ebenfalls) sequenzielle schreibende
> Zugriff auf eine grosse Datei in /mnt/floppy/bigfile auf vfat.
>
> Ab irgendeiner Blockgroesse wird die Schreib/Lesegeschwindigkeit
> nicht mehr weiter zunehmen, je nachdem, wie gross die Bloecke sind,
> die der Treiber an den Controller loswird (inkl irgendwelcher
> Puffer). Die Blockgroesse ab der es nicht mehr schneller wird,
> kannst Du als optimal ansehen. Diese optimale Blockgroesse koennte
> bei raw/filesystem/sync verschiedene Werte haben.

Ich will nicht die letzten 20 % optimieren, mich stoert aber,
wenn der Schreibvorgang mehr als 20 mal so lang dauert. 

> Eine Messreihe koennte eine Interpretation zulassen

Ich bitte um die Interpretation.
-- 
Viele Gruesse
Werner Holtfreter
-- 
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/