USB-Stick läuft sehr langsam, wenn er automatisch gemountet wird

Antworten
Nachricht
Autor
Benutzeravatar
hastifranki
Beiträge: 259
Registriert: 06. Mai 2006 19:58

USB-Stick läuft sehr langsam, wenn er automatisch gemountet wird

#1 Beitrag von hastifranki » 03. Mär 2007 20:52

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

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#2 Beitrag von Janka » 03. Mär 2007 22:49

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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Benutzeravatar
hastifranki
Beiträge: 259
Registriert: 06. Mai 2006 19:58

#3 Beitrag von hastifranki » 03. Mär 2007 23:06

Hallo Janka,

wo kann ich die Option 'sync' ausschalten? Ich werde auch mal suchen. Danke für den Tipp.

Vielleicht gibt es doch noch eine Möglichkeit, die schnelle Geschwindigkeit mit Automount zu erzielen.

Viele Grüße
Frank

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#4 Beitrag von Janka » 04. Mär 2007 0:46

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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Euklid
Beiträge: 125
Registriert: 17. Sep 2006 15:39

#5 Beitrag von Euklid » 05. Mär 2007 14:01

Das Problem hatte ich unter 10.0 auch - unter 10.2 ist es bei mir behoben.

Benutzeravatar
hastifranki
Beiträge: 259
Registriert: 06. Mai 2006 19:58

#6 Beitrag von hastifranki » 05. Mär 2007 21:03

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:

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"
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 :)

Benutzeravatar
hastifranki
Beiträge: 259
Registriert: 06. Mai 2006 19:58

#7 Beitrag von hastifranki » 06. Mär 2007 22:32

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:

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>
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 :D

nummer9

#8 Beitrag von nummer9 » 09. Sep 2007 15:06

Danke für den Tipp!

Das gleiche Problem hatte ich unter Ubuntu 7.04 mit ion3 und usbmount auch. Jetzt geht alles, nachdem ich die /etc/usbmount/usbmount.conf geändert habe. Danke!

Antworten