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

Post Reply
Message
Author
User avatar
hastifranki
Posts: 259
Joined: 06. May 2006 19:58

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

#1 Post by hastifranki »

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

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

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.

User avatar
hastifranki
Posts: 259
Joined: 06. May 2006 19:58

#3 Post by hastifranki »

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

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

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
Posts: 125
Joined: 17. Sep 2006 15:39

#5 Post by Euklid »

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

User avatar
hastifranki
Posts: 259
Joined: 06. May 2006 19:58

#6 Post by hastifranki »

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: Select all

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

User avatar
hastifranki
Posts: 259
Joined: 06. May 2006 19:58

#7 Post by hastifranki »

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: Select all

<?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 Post by nummer9 »

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!

Post Reply