Verzeichnistruktur, Zugriff, Performance

Probleme mit Samba, NFS, FTP und Co.
Antworten
curt123
Beiträge: 486
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Verzeichnistruktur, Zugriff, Performance

Beitrag von curt123 » 07.02.2021 10:54:53

Hallo,

ich habe Perfomance-Probleme beim Zugriff auf ein per Samba freigebenes Unterverzeichnis.

Bei einem PC wird von Thunar das Verzeichnis nach vielleicht 0,5 Sekunden angezeigt, der andere PC benötigt offenbar um die 12 Sekunden.
1Gb-LAN bei beiden PCs, Kopiertempo auf die Ressorce ist auch ähnlich. Der schnellere PC 16GB RAM, CPU-Bench bewertet die CPU mit 8.300, beim langsamen sind es 8GB RAM und 2.300. Einmal Debian Bullseye/Testing, dann Buster. Beide Xfce, Zugriff per Thunar über die direkte Eingabe smb://... .

Die Probleme hängen wohl mit der sehr großen Menge an Unterverzeichnissen, und vmtl. mit der schlechten Leistungsfähigkeit des zugreifenden PCs zusammen. Allerdings wundert mich dabei, dass sich der Leistungsunterschied so stark auswirken soll, zumal bei der Einbindung die Datenmenge schon reduziert ist, so werden bei Bildern in Thunar im Gegensatz zu Verzeichnissen auf dem eigenen PC keine Vorschauen angezeigt.

Es geht z.B. um über 2.000 Verzeichnisse in dem freigegebenen. Die flache Hierarchie erspart mir eine aufwändigere Verwaltung; wenn ich z.B. nochmal Fotos vom Winter 2010/2011 anschauen wollte, habe ich Ordner wie 2010-12-3x und 2011-01-01_05 beieinander, und muß nicht über Jahres- und evtl. noch Monatsgrenzen durch einen Verzeichnisbaum.

Nun habe ich folgende Fragen:

- Wäre hier wirklich eine Optimierung der Verzeichnisstruktur sehr hilfreich oder mehr oder weniger nötig?
- Gibt es für das Problem noch Verbesserungsmöglichkeiten bei der Sambakonfiguration?
- Kann der zugreifende PC anders eingestellt werden, indiziert er womöglich unnötig viel?

Danke und Grüße

Benutzeravatar
niemand
Beiträge: 14653
Registriert: 18.07.2004 16:43:29

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von niemand » 07.02.2021 11:43:52

Nachdem du nichts davon schreibst, dass ein Windowsrechner beteiligt wäre, ist die einfachste und erfolgversprechendste Optimierungsmöglichkeit, SMB/CIFS durch ein besser geeignetes Protokoll zu ersetzen.
non serviam.

MSfree
Beiträge: 7153
Registriert: 25.09.2007 19:59:30

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von MSfree » 07.02.2021 12:09:50

niemand hat geschrieben: ↑ zum Beitrag ↑
07.02.2021 11:43:52
Nachdem du nichts davon schreibst, dass ein Windowsrechner beteiligt wäre, ist die einfachste und erfolgversprechendste Optimierungsmöglichkeit, SMB/CIFS durch ein besser geeignetes Protokoll zu ersetzen.
Selbst, wenn Windowsrechner im Netz hängen, ist man zwischen Linuxrechnern nicht auf SMB angewiesen. Es ist überhaupt kein Problem, serverseitig Dateibäume mit SMB und mit NFS freizugeben.

Ggfls. hilft aber schon, nicht SMB in Userspace zur fahren, wie es Thunar macht. Man kann SMB-Shares auch über die /etc/fstab einbinden, dann kümmer sich der Kernel um das SMB-Protokoll, was oft sehr viel schneller ist. Das gilt aber auch für NFS, denn diese ganzen Filemanager führen die Netzwerkzugriffe innerhalb ihres Prozesses aus. Daher tauchen solche Verbindungen auch nicht auf, wenn man die Befehle mount und df auf der Kommandzeile abssetzt.

Mountet man die Netzwerkdateisysteme über die fstab, kann man natürlich mit Dateimanager auch darauf zugreifen, dann alllerdings nicht über den smb:// Syntax sondern über das Verzeichnis, in dem die Netzwerkquelle eingehängt wurde.

Benutzeravatar
jph
Beiträge: 914
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von jph » 07.02.2021 14:02:57

MSfree hat geschrieben: ↑ zum Beitrag ↑
07.02.2021 12:09:50
Ggfls. hilft aber schon, nicht SMB in Userspace zur fahren, wie es Thunar macht.
Korrekt, zumal der Userspace häufig nur veraltete Protokollversionen versteht. GNOME Nautlius kann m.W. nur SMBv1.
MSfree hat geschrieben: ↑ zum Beitrag ↑
07.02.2021 12:09:50
Man kann SMB-Shares auch über die /etc/fstab einbinden, dann kümmer sich der Kernel um das SMB-Protokoll, was oft sehr viel schneller ist.
Spätestens dann würde ich aber auf NFS setzen, weil man SMB/CIFS immer pro User einbinden muss, wenn ich richtig informiert bin. Bei mehreren Usern ist NFS einfacher einzurichten.

Lesetipps im Wiki: Wiki-Artikel zum Thema Netzlaufwerke einbinden und (optional) Wiki-Artikel zum Thema NFSv4-Mini-Howto

curt123
Beiträge: 486
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von curt123 » 07.02.2021 14:22:20

Mittelfristig sollen auch Windows-Systeme zugreifen können (irgendwo ist auch noch 7 drauf). Kurzfristig möchte ich erstmal von USB-Medien kopieren und aufräumen, da nutze ich derzeit die PCs mit Linux.

SMB und NFS gleichzeitig sollte eigentlich kein großes Problem sein. Die Einbindung von smb-Ressourcen per /etc/fstab wäre eigentlich noch einfacher, das kann ich nachher mal versuchen und schauen, ob sich die Zeit deutlich verbessert.

Allerdings: Der Server muß wahrscheinlich immer zuerst laufen. Die gleiche IP-Adresse muß er aber wohl nicht immer haben, wenn per Name verbunden werden kann, wie bei dem Fundstück:

Code: Alles auswählen

//SERVER/share /mnt/samba cifs username=user,password=password 0 0
Dabei wird ist das Passwort von einem smbuser dort offenbar unverschlüsselt eingetragen.

Benutzeravatar
jph
Beiträge: 914
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von jph » 07.02.2021 14:55:43

curt123 hat geschrieben: ↑ zum Beitrag ↑
07.02.2021 14:22:20
Allerdings: Der Server muß wahrscheinlich immer zuerst laufen.
Nicht, wenn du die von mir angeratenen systemd-Automounts verwendest – dann wird erst versucht, die entfernte Ressource einzubinden, wenn ein Anwender darauf zugreift. systemd-Automounts lassen sich auch in der fstab einrichten, allerdings werden die Zeilen dann etwas lang und (für meinen Geschmack) unübersichtlich.

MSfree
Beiträge: 7153
Registriert: 25.09.2007 19:59:30

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von MSfree » 07.02.2021 15:15:52

curt123 hat geschrieben: ↑ zum Beitrag ↑
07.02.2021 14:22:20
Die gleiche IP-Adresse muß er aber wohl nicht immer haben, wenn per Name verbunden werden kann
Die Methode mit dem Hostnamen ist sogar zu bevorzugen. Heutzutage kümmert sich der DHCP- und DNS-Server in deinem Plastikrouter zuhause darum, daß Hostnamen in die korrekte IP-Adresse aufgelöst werden. Damit ist es dann auch völlig egal, ob Rechner wechselnde IP-Adressen zugeteilt bekommen.

curt123
Beiträge: 486
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von curt123 » 07.02.2021 17:21:59

jph hat geschrieben: ↑ zum Beitrag ↑
07.02.2021 14:55:43
Nicht, wenn du die von mir angeratenen systemd-Automounts verwendest – dann wird erst versucht, die entfernte Ressource einzubinden, wenn ein Anwender darauf zugreift. systemd-Automounts lassen sich auch in der fstab einrichten, allerdings werden die Zeilen dann etwas lang und (für meinen Geschmack) unübersichtlich.
Danke, das klingt erstmal gut. Du meinst wohl die o.g. Quelle https://wiki.debianforum.de/Netzlaufwer ... SMB.2FCIFS
Ich finde nur im ersten Moment entgegen der Aussage "Mount und Automount lassen sich in der /etc/fstab auch in einer Zeile definieren, die Definition über separate Units ist jedoch übersichtlicher. " die, wenn ich es richtig verstanden habe, Verwendung zweier zusätzlicher Text-Dateien ("Mount- und Automount-Units werden üblicherweise in /etc/systemd/system/ abgelegt") auch etwas umständlich im Vergleich zu nur einem Verwaltungsort. Oder z.B. die "NetworkManager-Dispatcherskripte", wenn bei so etwas Änderungen oder Anpassungen nötig werden sollten, muß ich das wohl gut merken oder irgendwo dokumentieren und diese Doku auch wiederfinden, und hoffen dass das Skript verläßlich und updatesicher etc. ist.

curt123
Beiträge: 486
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von curt123 » 07.02.2021 22:02:26

Das will wohl noch nicht so richtig.

Eine mount-Datei habe ich angelegt, auch eine automount.

Wenn ich als Test die Anmeldung im Terminal als User per systemctl enable mnt-a-medien.automount ausführe, kommt eine Frage nach dem Root-Passwort. Bei systemctl status mnt-a-medien.automount kommt, nach Eingabe des Passworts, Active: inactive (dead).
Beim testweisen Start von automount

Code: Alles auswählen

systemctl start mnt-a-medien.automount
kommt ebenfalls die Abfrage des Passworts. Bei Falscheingabe ist der Status Active: failed ....
Sonst:

Code: Alles auswählen

systemctl status mnt-a-medien.mount
● mnt-a-medien.mount - CIFS-Freigabe //a/medien einbinden
   Loaded: loaded (/etc/systemd/system/mnt-a-medien.mount; enabled; vendor preset: enabled)
   Active: inactive (dead)
    Where: /mnt/a/medien
     What: //a/medien
Ausserdem habe ich beim rumprobieren noch so etwas getippt:

Code: Alles auswählen

systemctl enable mnt-a-medien.automount
Created symlink /etc/systemd/system/multi-user.target.wants/mnt-a-medien.automount → /etc/systemd/system/mnt-a-medien.automount.
Muss ich den Symlink irgendwo wieder löschen?

Muss ich die Skripte mit Rechten ausstatten, um die Abfragen nach root wegzubekommen? Und wie bekomme ich einen "active" Status?


Nachtrag

Wenn NFS deutlich performanter sein sollte, kann ich auch gleich NFS installieren.
Das wäre dann nfs-kernel-server, und beim Client nfs-common.
Hat jemand Erfahrung mit diesem 'NFS Client for windows': https://github.com/DeCoRawr/NFSClient ?

Benutzeravatar
jph
Beiträge: 914
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von jph » 08.02.2021 17:53:45

curt123 hat geschrieben: ↑ zum Beitrag ↑
07.02.2021 17:21:59
Ich finde nur im ersten Moment entgegen der Aussage "Mount und Automount lassen sich in der /etc/fstab auch in einer Zeile definieren, die Definition über separate Units ist jedoch übersichtlicher. " die, wenn ich es richtig verstanden habe, Verwendung zweier zusätzlicher Text-Dateien ("Mount- und Automount-Units werden üblicherweise in /etc/systemd/system/ abgelegt") auch etwas umständlich im Vergleich zu nur einem Verwaltungsort.
Das ist Geschmacksache. Ich persönlich arbeite lieber mit zwei Textdateien als mit einer Riesenbandwurmzeile, aber jeder so wie er mag. ;-)
curt123 hat geschrieben: ↑ zum Beitrag ↑
07.02.2021 22:02:26
Eine mount-Datei habe ich angelegt, auch eine automount.

Wenn ich als Test die Anmeldung im Terminal als User per systemctl enable mnt-a-medien.automount ausführe, kommt eine Frage nach dem Root-Passwort.
Der Automount gilt systemweit, daher muss root die Automount-Units enablen/starten. Wenn danach aber ein User einen Mountpoint betritt, der von einem Automount überwacht wird, dann wird der Mountpoint automatisch eingehängt.

Ich werde das im Wiki überarbeiten.

Nachtrag: hier kann man das Verhalten sehr schön sehen.

Code: Alles auswählen

jan@t460s:~$ systemctl status mnt-proliant.automount
● mnt-proliant.automount - Automount /mnt/proliant
   Loaded: loaded (/etc/systemd/system/mnt-proliant.automount; disabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-02-08 17:34:31 CET; 19min ago
    Where: /mnt/proliant

Feb 08 17:34:31 t460s systemd[1]: Set up automount Automount /mnt/proliant.
Feb 08 17:42:10 t460s systemd[1]: mnt-proliant.automount: Got automount request for /mnt/proliant, triggered by 14550 (nautilus)
Der Automount wird beim Aufwachen aus dem Standby vom NetworkManager-Dispatcher-Skript gestartet (systemd-System-Unit, 17:34 Uhr). Sowie mein Nautilus auf den Mountpoint zugreift (17:42), wird er automatisch eingehängt, d.h. die Mount-Unit gestartet.

Code: Alles auswählen

jan@t460s:~$ systemctl status mnt-proliant.mount
● mnt-proliant.mount - Mount /mnt/proliant via NFS
   Loaded: loaded (/etc/systemd/system/mnt-proliant.mount; static; vendor preset: enabled)
   Active: active (mounted) since Mon 2021-02-08 17:42:10 CET; 14min ago
    Where: /mnt/proliant
     What: proliant.fritz.box:/
    Tasks: 0 (limit: 4915)
   Memory: 260.0K
   CGroup: /system.slice/mnt-proliant.mount

Feb 08 17:42:10 t460s systemd[1]: Mounting Mount /mnt/proliant via NFS...
Feb 08 17:42:10 t460s systemd[1]: Mounted Mount /mnt/proliant via NFS.
Nachnachtrag: während ich den Wik-Artikel überarbeitete, hat der Automount den Mountpoint wieder ausgehängt, weil nicht darauf zugegriffen wurde.

Code: Alles auswählen

jan@t460s:~$ systemctl status mnt-proliant.mount
● mnt-proliant.mount - Mount /mnt/proliant via NFS
   Loaded: loaded (/etc/systemd/system/mnt-proliant.mount; static; vendor preset: enabled)
   Active: inactive (dead) since Mon 2021-02-08 18:05:33 CET; 12min ago
    Where: /mnt/proliant
     What: proliant.fritz.box:/

Feb 08 17:42:10 t460s systemd[1]: Mounting Mount /mnt/proliant via NFS...
Feb 08 17:42:10 t460s systemd[1]: Mounted Mount /mnt/proliant via NFS.
Feb 08 18:05:33 t460s systemd[1]: Unmounting Mount /mnt/proliant via NFS...
Feb 08 18:05:33 t460s systemd[1]: mnt-proliant.mount: Succeeded.
Feb 08 18:05:33 t460s systemd[1]: Unmounted Mount /mnt/proliant via NFS.

curt123
Beiträge: 486
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Verzeichnistruktur, Zugriff, Performance

Beitrag von curt123 » 08.02.2021 18:25:17

jph hat geschrieben: ↑ zum Beitrag ↑
08.02.2021 17:53:45
Der Automount gilt systemweit, daher muss root die Automount-Units enablen/starten.
Geht das beim Hochfahren des PC automatisch?
Sowie mein Nautilus auf den Mountpoint zugreift
Ich bekomme aber nunmal gar kein "active", weder "running" noch "mounted", auch nicht nach nach erfolgreicher Legitimation.

Antworten