Wie debuggen Sie langsame Samba-Freigabe von Nautilus?

3503
inf3rno

Ich habe Fedora 23 mit Gnome 3 und Nautilus 3.18.5-1.fc23. Ich habe Probleme mit der SMB-Geschwindigkeit, wenn ich Nautilus verwende. Es ist etwa 4,4 MB / s, während ich durch andere Methoden (zB smbclient vom Terminal) 11 MB / s vom Samba-Server erhielt. Gibt es eine Möglichkeit, dies zu debuggen? Ich habe in einigen Foren gelesen, dass Nautilus rsizedurch das Einhängen des Laufwerks möglicherweise nicht richtig eingestellt wird. Ich bin mir darüber nicht sicher. Ich habe das montierte Laufwerk nicht gefunden lsblk. Laut einigen Foren werden die Netzlaufwerke /runin einem gvfsOrdner angehängt . Das kann ich bestätigen, ich habe folgenden Pfad bekommen:

/run/user/1000/gvfs/smb-share:server=odroid-server,share=asmedia-hdd 

Von mount | grep gvfsbekam ich folgendes:

gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000) 

Ich habe keine Möglichkeit gefunden, diese rsizeSache zu überprüfen . Es würde mein Problem wahrscheinlich nicht lösen, ich bin mir nicht sicher. Eine andere Sache, die ich am Laufwerk abschalten wollte, ist Relatime. Zumindest ist es auf dem Server auf noatime eingestellt.

Gibt es eine Möglichkeit, dies in Nautilus config zu tun (ich weiß, dass es in fstab möglich ist)? Gibt es eine andere Möglichkeit, dieses langsame SMB-Geschwindigkeitsproblem irgendwie zu beheben?

2
Ich habe die gleichen Probleme mit gvfs. Hast du eine Lösung gefunden? emk2203 vor 7 Jahren 0
@ emk2203 Nein, ich habe es nicht geschafft, das zu lösen. Samba-Entwickler könnten das wahrscheinlich beheben. So viel ich weiss. Hier finden Sie einen Fehlerbericht: https://bugzilla.samba.org/show_bug.cgi?id=10879, die Seite ist jedoch aufgrund eines https-Problems derzeit nicht verfügbar. Ich denke, das wird nicht so schnell behoben ...: S inf3rno vor 7 Jahren 0
@ emk2203 Das Hinzufügen der CIFI-Mount-Datei zur Fstab ist wahrscheinlich die beste Lösung. Es ist nicht sicher (Speichern des Samba-Passworts im Klartext), aber es funktioniert zumindest. inf3rno vor 7 Jahren 0

1 Antwort auf die Frage

1
inf3rno

Entsprechend einem Forum ist das Problem mit gvfs und cifs viel besser. Ich bin mit diesen Begriffen nicht vertraut, aber ich kann das bestätigen. Indem Sie das Laufwerk manuell montieren:

mount -t cifs -o username=root,password=xxxxx //192.168.0.186/asmedia-hdd /media/asmedia-hdd 

Ich kann 10MB / s in Nautilus erreichen. Das einzige Problem, dass ich keine Netzwerkerkennung habe und das Laufwerk nicht von Nautilus abmounten kann. Ich denke, das ist keine echte Lösung.

Gibt es überhaupt einen Zwang, den Nautilus zu zwingen, anstelle von gvfs cifs zu verwenden?

Nächster

Ich habe eine Konfigurationsdatei gefunden, die sehr relevant erscheint:

/usr/share/gvfs/mounts/smb.mount

[Mount] Type=smb-share Exec=/usr/libexec/gvfsd-smb AutoMount=false Scheme=smb 

Ich denke, gvfs ist kein Partitionstyp, es verwendet auch Cifs. Ich schätze, ich kann die Puffergröße der Cifs hier irgendwie einstellen. Ich konnte noch nicht herausfinden, wie das geht.

Laut Wiki handelt es sich bei dem gvfs um ein virtuelles Dateisystem, es kann also auf Cifs gesetzt werden, also hatte ich recht.

Nächster

Ich habe diese Antwort gefunden: https://unix.stackexchange.com/a/44318/126217, indem ich versuche, gvfs vom Terminal einzuhängen. Demnach export $(dbus-launch)ist das vor dem Verwenden eines gvfs-Befehls wichtig. Ich bestätige, dass ich keine gvfs-Befehle vom Terminal verwenden konnte, und ich erhielt nur vage Fehlermeldungen über das Problem.

Ich konnte das Laufwerk manuell mit gvfs mounten:

gvfs-mount smb://WORKGROUP\;root@192.168.0.186/asmedia-hdd 

Ich konnte die gemounteten Laufwerke auflisten

gvfs-mount -l  Drive(0): KINGSTON SV300S37A120G Type: GProxyDrive (GProxyVolumeMonitorUDisks2) Drive(1): ST31000528AS Type: GProxyDrive (GProxyVolumeMonitorUDisks2) Volume(0): data Type: GProxyVolume (GProxyVolumeMonitorUDisks2) Volume(1): system Type: GProxyVolume (GProxyVolumeMonitorUDisks2) Volume(2): Rendszer számára fenntartott Type: GProxyVolume (GProxyVolumeMonitorUDisks2) Drive(2): TSSTcorp CDDVDW SH-222AB Type: GProxyDrive (GProxyVolumeMonitorUDisks2) Mount(0): asmedia-hdd on 192.168.0.186 -> smb://WORKGROUP;root@192.168.0.186/asmedia-hdd/ Type: GDaemonMount 

Es gibt immer noch nicht viele Informationen über die Konfiguration dieser Laufwerke. Nautilus zeigte das montierte Laufwerk nicht. Dies ist interessant, weil ich den Mount-Befehl in Terminal verwendet habe, in dem das eingebaute Laufwerk in Nautilus auftauchte.

Ich habe den Mountpunkt hier gefunden:

cd ~/.gvfs/smb-share\:domain\=WORKGROUP\,server\=192.168.0.186\,share\=asmedia-hdd\,user\=root/ 

Ich war in der Lage, aus dem gvfs-Laufwerk eine MKV-Datei zu laden, und ich verwendete sie

watch -- du -h test.mkv 

Um die Übertragungsgeschwindigkeit zu messen, waren es etwa 4,3 MB / s. Ich habe die gleiche Technik verwendet, indem ich die Geschwindigkeit von cp gemessen habe, als ich den Befehl smbclient verwendet habe. Ich konnte also reproduzieren, was Nautilus im Hintergrund macht. Jetzt muss ich nur noch eine Option hinzufügen, um die Cifs-Puffergröße zu ändern, sofern dies möglich ist.

Fazit:

Am Ende fügte ich der fstab folgendes hinzu:

//192.168.0.186/asmedia-hdd /media/asmedia-hdd cifs rw,workgroup=WORKGROUP,username=root,password=xxxxx,noauto,users,iocharset=utf8 0 0 

und verwendet

chmod 4755 /usr/sbin/mount.cifs 

Weil Nautilus schrieb, dass nur Root das Laufwerk einhängen kann, anstatt die Eingabeaufforderung für das Root-Kennwort anzuzeigen.

Diese Lösung gefällt mir nicht, da Nautilus die Netzlaufwerke auf diese Weise nicht erkennt. Ein weiteres Problem, dass ich allen Benutzern die Berechtigung erteilen musste, dieses Laufwerk zu mounten, und ich musste das SMB-Kennwort angeben, da ich dazu keine Eingabeaufforderung hatte. Die Download-Geschwindigkeiten waren in Ordnung, und auch das Hochladen hat mir gefallen. Durch den Upload erhielt ich falsche Geschwindigkeits- und Dateigrößenberichte von Nautilus, es schreibt am Anfang 120 MB / s, was ständig abnimmt. Durch das Überprüfen der Dateigröße mit einem gvfs-angehängten Laufwerk konnte ich Informationen über die tatsächlichen Geschwindigkeiten abrufen. Es waren ungefähr 10 MB / s.

Ich versuche das mit gvfs zu lösen. Wenn ich das schaffe, werde ich eine Antwort posten, aber bis dahin benutze ich diese cifs-Problemumgehung.

nächstes ~ 2016

Fügte einen Fehlerbericht hier hinzu: https://bugzilla.gnome.org/show_bug.cgi?id=762384 Vielleicht haben sie eine Antwort.

nächste ~ 2017

Laut Gnome-Entwicklern ist dies ein Samba-Fehler. Sie schreiben vielleicht einen Patch, aber es gibt keine Garantie. Die Samba-Entwickler haben sich in den letzten 3 Jahren (2014-17) nicht darum gekümmert, ich bin mir nicht einmal sicher, ob das Projekt beibehalten wird.

hinweis :

Ich habe diese 10MB / s über eine WLAN-Verbindung gemessen. Ich habe einige Messungen über Ethernet mit demselben Odroid XU4 durchgeführt, als ich versuchte, dies zu debuggen. (Das GVFS verwendet libsmbclient, so dass es etwas Ähnliches wie das Aufrufen macht smbget.)

Kopie mit Nautilus (18-19MB / s)

# mount with nautilus on GUI # copy with nautilus on GUI 

Kopie mit smbget-Standardblockgröße (23-24 MB / s)

# mount with nautilus on GUI smbget -u root -w WORKGROUP smb://192.168.0.186/asmedia-hdd/testfile 

Kopieren mit Smbget 16K (1-64K) Blockgröße (38-57 MB / s)

# mount with nautilus on GUI smbget -u root -w WORKGROUP smb://192.168.0.186/asmedia-hdd/testfile --blocksize=16777216 

Kopieren mit CIFS-Halterung (70-90 MB / s)

# mount in fstab //192.168.0.186/asmedia-hdd /media/asmedia-hdd cifs rw,workgroup=WORKGROUP,username=root,password=...,noauto,users,iocharset=utf8 0 0 # copy with nautilus on GUI 

Ein offensichtlicher Engpass ist die zu kleine Blockgröße hier in GVFS, aber die Geschwindigkeit liegt bei etwa 1k Blockgröße und erreicht höchstens 63% der CIFS-Geschwindigkeit. Daher muss in der smb lib ein weiterer nicht identifizierter Engpass vorhanden sein.

Vielen Dank, dass Sie sich die Zeit und Mühe genommen haben, dieses Problem zu untersuchen. Ich habe auch dieses Problem, und ich habe nach Wegen gesucht, um den Netzwerkdurchsatz zu / von Samba-Freigaben in Nautilus und Nemo zu verbessern. Es sieht so aus, als ob die Ursache des Problems tatsächlich in gvfs liegt. Es scheint auch, dass es derzeit keine Möglichkeit gibt, die Puffergröße (Blockgröße) in gvfs zu erhöhen, da der aktuelle Wert fest in ihn kodiert ist. Ich sehe nicht, wie dieses Problem derzeit behoben werden kann, ohne gvfs zu kompilieren, und wahrscheinlich Gnome, zu dem gvfs gehört, aus dem Quellcode ... Beef Eater vor 5 Jahren 0
@ BeeEater Sie können versuchen, die Entwickler davon zu überzeugen, das Problem zu beheben. Vielleicht sind Sie einflussreicher als ich. : D inf3rno vor 5 Jahren 0