USB-Stick läuft sehr langsam, wenn er automatisch gemountet wird
- hastifranki
- Beiträge: 259
- Registriert: 06. Mai 2006 19:58
USB-Stick läuft sehr langsam, wenn er automatisch gemountet wird
Hallo,
ich habe einen 1GB USB-Stick (vfat), der, wenn er unter SuSE10.0 automatisch gemountet wird, sehr langsam läuft. Es wird dann nur eine Schreibgeschwindigkeit von 25kB/s erzielt. (Ich muss auch ergänzen, dass andere Sticks nach dem automatischen Mounten etwas schneller laufen. Z.B. 132kB/s. Der Stick, um den es hier geht, war nicht sehr teuer.)
Nach der Eingabe von mount wird unter anderem folgende Zeile bezüglich des Sticks ausgegeben:
/dev/sda1 on /media/usbdisk type subfs (rw,nosuid,nodev,sync,fs=floppyfss,procuid,utf8=true)
Wenn ich den Stick unmounte und anschließend per Hand auf einen anderen Punkt mounte, wird eine Schreibgeschwindigkeit von 145MB/s errreicht. (Das Schreiben habe ich als root ausgeführt.)
Nach der Eingabe von mount ist dann folgende Zeile zu sehen: /dev/sda1 on /mnt type vfat (rw)
Die Geschwindigkeiten habe ich mit dd ermittelt.
Vielleicht kann mir jemand einen Tipp geben, wie man nach dem automatischen Mounten die höhere Schreibgeschwindigkeit erzielen kann.
Viele Grüße
Frank
ich habe einen 1GB USB-Stick (vfat), der, wenn er unter SuSE10.0 automatisch gemountet wird, sehr langsam läuft. Es wird dann nur eine Schreibgeschwindigkeit von 25kB/s erzielt. (Ich muss auch ergänzen, dass andere Sticks nach dem automatischen Mounten etwas schneller laufen. Z.B. 132kB/s. Der Stick, um den es hier geht, war nicht sehr teuer.)
Nach der Eingabe von mount wird unter anderem folgende Zeile bezüglich des Sticks ausgegeben:
/dev/sda1 on /media/usbdisk type subfs (rw,nosuid,nodev,sync,fs=floppyfss,procuid,utf8=true)
Wenn ich den Stick unmounte und anschließend per Hand auf einen anderen Punkt mounte, wird eine Schreibgeschwindigkeit von 145MB/s errreicht. (Das Schreiben habe ich als root ausgeführt.)
Nach der Eingabe von mount ist dann folgende Zeile zu sehen: /dev/sda1 on /mnt type vfat (rw)
Die Geschwindigkeiten habe ich mit dd ermittelt.
Vielleicht kann mir jemand einen Tipp geben, wie man nach dem automatischen Mounten die höhere Schreibgeschwindigkeit erzielen kann.
Viele Grüße
Frank
Es ist vermutlich die Option "sync", die den Stick so langsam macht. Damit puffert der Kernel keine Daten im RAM des Rechners, sondern schreibt sofort auf den Stick. Für den Automounter ist das zwingend erforderlich, da der Kernel ja nie weiß, wann der Benutzer den Stick abzieht.
Wenn du von Hand mountest, brauchst du "sync" nicht, weil du ja erst "umount" machst, bevor du den Stick abziehst. Erst dann schreibt der Kernel die Daten.
Janka
Wenn du von Hand mountest, brauchst du "sync" nicht, weil du ja erst "umount" machst, bevor du den Stick abziehst. Erst dann schreibt der Kernel die Daten.
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
- hastifranki
- Beiträge: 259
- Registriert: 06. Mai 2006 19:58
Wie ich schon gesagt habe, sollte man "sync" beim Automounter *niemals* ausschalten. Denn dann zieht man den Stick irgendwann ab, und die geschriebenen Daten sind noch gar nicht draufkopiert.
Was man allenfalls machen kann, ist ein manuelles "sync" auf der Kommandozeile, bevor man den Stick abzieht. Allerdings muss man natürlich genau in diesem Moment etwas länger (Sekunden bis Minuten) darauf warten, dass die Daten nun auch tatsächlich geschrieben werden. Ob das ein Vorteil gegenüber dem Kopieren im Hintergrund mit der Mountoption "sync" ist, bezweifle ich.
Janka
Was man allenfalls machen kann, ist ein manuelles "sync" auf der Kommandozeile, bevor man den Stick abzieht. Allerdings muss man natürlich genau in diesem Moment etwas länger (Sekunden bis Minuten) darauf warten, dass die Daten nun auch tatsächlich geschrieben werden. Ob das ein Vorteil gegenüber dem Kopieren im Hintergrund mit der Mountoption "sync" ist, bezweifle ich.
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
- hastifranki
- Beiträge: 259
- Registriert: 06. Mai 2006 19:58
Hallo,
danke für die Hinweise. Ich möchte noch nicht auf eine höhere SuSE-Version wechseln.
Da der Geschwindigkeitsunterschied mit oder ohne sync Mountoption bei mir schon beträchtlich ist, wird es wohl das einfachste sein, bei langsamer Schreibgeschwindigkeit einfach mit Hand neu zu mounten. (Vermutlich wird mit der sync Option nach jedem kopierten Block sync ausgeführt, was den Schreibvorgang ausbremsen könnte. Vielleicht nehme ich mir mal die Zeit und sehe mir mit strace die Systemaufrufe während des Schreibvorganges an.)
Aufgrund folgender Zeile in der messages Datei habe ich herausgefunden, dass HALd für die Mountoptionen verantwortlich ist:
Vermutlich ist auch noch das folgende Programm daran beteiligt: /usr/sbin/hald-add-selinux-mount-option
Mir ist noch nicht so richtig klar, wie man diese Mountoptionen von HAL mit einfachen Mitteln verändern kann. Nun ja, mir bleibt ja auch noch der Wechsel auf SuSE10.2.
Viele Grüße
Frank
danke für die Hinweise. Ich möchte noch nicht auf eine höhere SuSE-Version wechseln.
Da der Geschwindigkeitsunterschied mit oder ohne sync Mountoption bei mir schon beträchtlich ist, wird es wohl das einfachste sein, bei langsamer Schreibgeschwindigkeit einfach mit Hand neu zu mounten. (Vermutlich wird mit der sync Option nach jedem kopierten Block sync ausgeführt, was den Schreibvorgang ausbremsen könnte. Vielleicht nehme ich mir mal die Zeit und sehe mir mit strace die Systemaufrufe während des Schreibvorganges an.)
Aufgrund folgender Zeile in der messages Datei habe ich herausgefunden, dass HALd für die Mountoptionen verantwortlich ist:
Code: Alles auswählen
Mar 4 13:17:51 systux hal-subfs-mount[8653]: Collected mount options and Called(0) /bin/mount -t subfs -o fs=floppyfss,sync,procuid,nosuid,nodev,exec,utf8=true /dev/sda1 "/media/usbdisk"
Mir ist noch nicht so richtig klar, wie man diese Mountoptionen von HAL mit einfachen Mitteln verändern kann. Nun ja, mir bleibt ja auch noch der Wechsel auf SuSE10.2.
Viele Grüße
Frank

- hastifranki
- Beiträge: 259
- Registriert: 06. Mai 2006 19:58
Hallo,
mir ist es nun doch noch gelungen, die Mountoption für den Stick zu ändern und damit die Schreibgeschwindigkeit zu erhöhen. (Ich weiß, dass das nicht ganz korrekt ist, die sync Option einfach auszuschalten.)
Entsprechend folgender Anleitung habe ich eine neue Datei mit dem Namen 21Test.fdi in das Verzeichnis /usr/share/hal/fdi/policy/10osvendor/ gestellt:
http://www.mythic-beasts.com/~mark/random/hal
Meine Datei hat folgenden Inhalt:
Die Information volume_uuid_45E3_3307 habe ich im Device Manager (/usr/bin/hal-device-manager) unter dem Memory Stick gefunden.
Viele Grüße
Frank
mir ist es nun doch noch gelungen, die Mountoption für den Stick zu ändern und damit die Schreibgeschwindigkeit zu erhöhen. (Ich weiß, dass das nicht ganz korrekt ist, die sync Option einfach auszuschalten.)
Entsprechend folgender Anleitung habe ich eine neue Datei mit dem Namen 21Test.fdi in das Verzeichnis /usr/share/hal/fdi/policy/10osvendor/ gestellt:
http://www.mythic-beasts.com/~mark/random/hal
Meine Datei hat folgenden Inhalt:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="info.udi" string="/org/freedesktop/Hal/devices/volume_uuid_45E3_3307">
<merge key="volume.policy.desired_mount_point" type="string">Testpunkt</merge>
<merge key="volume.policy.mount_option.sync" type="bool">false</merge>
</match>
</device>
</deviceinfo>
Viele Grüße
Frank
