Samba-plugin und Speicherbedarf

Hallo,

seit einigen Tagen ist die NC nach einigen Stunden Betrieb nicht mehr erreichbar und muss neu gestartet werden. Sie läuft hier schon einige Jahre in einer VM auf dem debian-fileserver, der von einem Dienstleister administriert wird.

Besonderheit ist, dass eine wechselne aber relativ große Datenmenge über Samba als externer Speicher angebunden ist. Es gab immer wieder Performance-Probleme, die NC hatte lange nur etwa 2GB Speicher. Seit etwa einem halben Jahr ist der Server neu und die NC hat 8 GB zur Verfügung. Es ging dann einige Zeit gut, klemmt aber jetzt wieder.

Es gibt nur eine Handvoll User, der Zugriff erfolgt auch eher sporadisch, es geht aktuell darum, Daten online für unterwegs verfügbar zu machen. regelmäßig synchronisieren 2-3 Dektop-Clients mit dem Server. Geändert habe ich zuletzt nichts, lediglich etwas mit der bereits länger installierten App Deck experimentiert.

Auffällig ist, dass mysqld allein bereits mehr als 6GB beansprucht. Dazu kommen eine größere Anzahl von Prozessen (ca. 20) “php-fpm7.4”, die alle www-data gehören. Wenn man diese testweise killt, werden sie neu gestartet, das scheint planmäßig zu sein. In diesem Zustand ist aber alles stabil.

Innerhalb einiger Stunden werden aber zusätzlich eine ähnlich große Zahl von Prozessen (30-50) “smbclient” gestartet. Irgendwann ist die NC dann nicht mehr erreichbar. Die smbclient-Prozesse lassen sich schadlos killen, dann geht zunächst alles wieder.

  1. Lässt sich das smb-plugin so konfigurieren, dass diese Probleme nicht auftreten?

  2. Würde eine maßvolle Ressourcenerhöhung helfen oder dauert es dann nur ein paar Stunden länger, bis der Speicher voll ist? Wodurch wird der Speicherbedarf determiniert?

  3. Ist die Anbindung der Daten über externen Speicher und Samba insgesamt nicht zu empfehlen? Es bestünde ja die Möglichkeit, die zu teilenden Daten als Kopie der NC direkt zu übergeben. Dazu bedürfte es aber eines robusten Clients auf der Seite des Fileservers, der schnell und zuverlässig synchronisiert. Der Umweg über Desktop-Clients scheint mir keine Option zu sein. Was wäre hier ein sinnvoller Ansatz, mit dem Problem bin ich doch sicher nicht allein?

Ich lasse mich auch ins englischsprachige Forum verweisen, wäre aber dankbar für ein Stichwort, unter dem das Thema dort behandelt wird.

Schöne Grüße
Edwin

  • Bei welchen Anbieter? Was für ein Server? v-server, shared, root, usw. Oder Lokal?
    VM auf lokalem Server
  • Auf welcher Hardware? PC, Raspberry PI, Banana, NAS usw…
    aktueller Intel Xenon 6 Kerne
  • Betriebssystem sowie Version ALLER beteiligten Systeme
    debian 11.2
  • Nextcloud Version: 23.0.1
  • PHP Version: 7.4.25
  • Welche Datenbank? MySql,Engine X (Nginx),MariaDB usw…
    mariadb
  • Apache version, usw.
    apache2
  • Läuft NC in Docker,Snap oder VM
    KVM
  • Netzwerk Aufgliederung: zb. Router>Switch>PI>
    LAN
  • Wurden vor kurzen Server Updates gemacht? Wenn ja von was?
    nein

SMB ist ein extrem veraltetes und störanfälliges Protokoll, mal abgesehen davon das der Mist schon lange nicht mehr als sicher gilt.
Es verursacht regelmäßig Probleme und die Symptomatik, wie beschrieben, ist typisch.
Ich würde das SMB-Plugin von PHP deinstallieren und SMB komplett einstampfen.

Wenn es unbedingt noch einige Jahre mit SMB gehen muss würde ich die Prozesse alle paar Stunden über einen Cronjob neustarten lassen.

Gibt es so etwas wie einen “Serverclient”, der ein lokales Dateisystem mit einer Nextcloud robust synchonisiert?

Was könnte sonst das smb-plugin ersetzen? Ist ein anderes Netzwerkprotokoll für externe Speicher verfügbar?

Welche Prozesse sind das, die regelmäßig neu gestartet werden müssten, muss es die die ganze VM sein?

Die NC bietet inzwischen verschiedene Möglichkeiten an externen Speicher einzubinden.
Dropbox, Googledrive, S3 CIFS ftp sftp. Dokumentation: https://docs.nextcloud.com/server/19/benutzerhandbuch/external_storage/external_storage.html

Verwendet für der php smbclient php-smbclient den testweise deinstallieren und sehen ob sich die vm immer noch aufhängt. Wenn das nicht hilft würde ich einfach die VM alle paar Stunden komplett neustarten. geht über einen entsprechenden Cronjob.