Samba smb process crashes with memory leak

Ich habe auf einem älteren Gigabyte Mainboard, dass nur maximal 4GB Arbeitsspeicher nutzen kann, Openmediavault 6 mit Samba / SMB Freigaben, konfiguriert. Samba ist auf diesem Debian 11 Bullseye in Version 4.13.13 installiert.

SMB Memory leak Problem

Das Problem war nun, dass wenn ich größere Dateien (z.b. 15GB, 60GB usw.) per SMB von einem anderen Debian System, auf dieses System kopiert hatte, der Arbeitsspeicher nach und nach voll lief und irgendwann dann der smb Prozess gekillt wurde. Die Fehlermeldung im syslog:

 Out of memory: Killed process 97421 (smbd) 

SMB Memory leak Lösung

Die Lösung des Problems war es, die Konfiguration (/etc/samba/smb.conf) von Samba anzupassen und oplocks zu deaktivieren:

[global]
oplocks = no

Opportunistic Locking (oplock)

.. ist normalerweise eingeschaltet und soll zu einer schnelleren Verarbeitung von Dateien führen. Oplock funktioniert so, dass wenn ein weiterer Prozess auf die Datei zugreifen möchte, Samba informiert wird, dass es nicht der einzige Writer ist, der auf die Datei zugreift und diese und dessen Änderungen zwischenspeichert, was nicht in auf dem Samba Server stattfindet, um so den Zugriff auf die Datei zu beschleunigen. Sobald Samba weiß dass ein weiterer Writer auf die Datei zugreift, wird dessen Version markiert und Samba wartet bis der Client die Arbeit an der Datei abgeschlossen hat. Zudem erwartet Samba, dass die Änderungen des Clients an Samba, für die finale Synchronisation, gesendet werden. Wenn nun ein zweiter Client vor dem ersten Client auf die Datei zugreift, dann kann Samba die Datei so bereitstellen, wie sie final wäre.

o’Reilly zu oplocks

If you are in an extremely unstable network environment or have many clients that cannot take advantage of opportunistic locking, it may be better to shut this Samba feature off. Oplocks should be disabled if you are accessing the same files from both Unix applications (such as vi ) and SMB clients (unless you are lucky enough to have an operating system that supports kernel oplocks as discussed earlier).

[Chapter 5] 5.5 Locks and Oplocks (oreilly.com)

Thats it .. Have Fun!

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.