Ein Dateiserver kann sich langsam anfühlen, selbst wenn die CPU-Auslastung gering erscheint: Verzeichnisauflistungen dauern Sekunden, Uploads stocken bei Lastspitzen, oder der Prozess scheint täglich mehr RAM zu verbrauchen. Ein Vergleich von ownCloud Infinite Scale (oCIS) und Nextcloud 28 anhand des RAM-Verbrauchs pro Benutzer reicht nicht aus, um dieses Problem zu diagnostizieren. Es gibt keinen offiziellen, direkten Vergleichsmaßstab, der einen eindeutigen Sieger ermittelt, und beide Projekte dokumentieren den Speicherbedarf als abhängig von Arbeitslast und Konfiguration. Für einen aussagekräftigen Vergleich sollten Sie jede Plattform mit denselben Dateien, Clients, demselben Speicher, derselben Parallelität und demselben Testzeitraum messen. Prüfen Sie zunächst, ob der Flaschenhals die Anwendung, die Datenbank, der Speicher oder Hintergrundprozesse sind.
Es gibt auch eine Wartungsbeschränkung: Nextcloud 28 hat laut Projektplan im Dezember 2024 das Ende seines Lebenszyklus erreicht. Es werden keine regelmäßigen Fehlerbehebungen mehr über den Community-Kanal bereitgestellt. Wenn Nextcloud 28 bereits im Einsatz ist, sollten Sie ein Upgrade planen, bevor Sie Leistungsoptimierung als alleinige Lösung betrachten. Die folgenden Schritte helfen beim Vergleich des Verhaltens und der Lokalisierung von Ressourcenengpässen; sie gewährleisten jedoch nicht, dass eine nicht mehr unterstützte Version sicher eingesetzt werden kann.
Warum weichen die RAM- und Geschwindigkeitsmesswerte voneinander ab?
Infinite Scale und Nextcloud verwenden unterschiedliche Serverarchitekturen. oCIS ist als Dienste auf einer Go-basierten Plattform organisiert; der integrierte Supervisor startet seine Dienste als einen Serverprozess. Der Speicherbedarf kann zwischengespeicherte Benutzer- und Speichermetadaten umfassen, und die ownCloud-Dokumentation stellt einen Zusammenhang zwischen der Anzahl der im Speicher gehaltenen Bereiche und Metadaten und dem verfügbaren RAM sowie der Zugriffs- oder Synchronisierungsleistung her. Ein Server mit einem größeren Arbeitsspeicher nach einem umfangreichen initialen Scan ist allein kein Beweis für ein Speicherleck. Prüfen Sie, ob sich der Speicherverbrauch nach der Indizierung stabilisiert und die Latenz akzeptabel bleibt.
Nextcloud 28 ist eine PHP-Anwendung. Ihr Speicherbedarf hängt von der Anzahl der PHP-FPM-Worker und deren Verhalten, aktivierten Anwendungen, dem Webserver, der Datenbank, den Caches, der Vorschaugenerierung und Hintergrundprozessen ab. Laut offiziellem Administrationshandbuch variiert der Speicherbedarf erheblich je nach Benutzern, Anwendungen, Dateien und Serveraktivität. Das Hinzufügen von Workern kann die Verarbeitung paralleler Anfragen verbessern, aber gleichzeitig die maximale RAM-Auslastung erhöhen. Vergleichen Sie daher den gesamten Speicherbedarf des Hosts oder Containers und nicht nur den eines einzelnen PHP-Prozesses mit dem eines einzelnen oCIS-Prozesses.
Speicher kann auf beiden Plattformen eine entscheidende Rolle spielen. Eine langsame Festplatte, ein langsames Netzwerkdateisystem, ein langsamer Objektspeicher, eine langsame Datenbank oder ein langsamer Virenscan können dazu führen, dass Anfragen anwendungsgebunden erscheinen. Ebenso führen ein leerer und ein gefüllter Cache nicht zu vergleichbaren Antwortzeiten. Die entscheidende Frage ist nicht, welches Produkt die geringere Leerlaufzeit aufweist, sondern welcher Stack Ihre tatsächliche Arbeitslast innerhalb des RAM- und Latenzbudgets bewältigt.
Vergleichen Sie sie unter den gleichen Bedingungen.
- Dokumentieren Sie die genauen Builds und die Bereitstellung. Notieren Sie die oCIS-Version, den Patch-Level von Nextcloud 28, das Betriebssystem, die Container-Limits, die CPU-Zuweisung, die Datenbank, das Storage-Backend, die aktivierten Anwendungen und Dienste, die PHP-Version und den Webserver. Verwenden Sie nach Möglichkeit dieselbe Hardware und denselben Datenpfad. Vermeiden Sie es, das Container-Speicherlimit einer Plattform mit der Speichernutzung des gesamten Hosts einer anderen Plattform zu vermischen.
- Verwenden Sie einen repräsentativen Testdatensatz. Berücksichtigen Sie dabei Operationen, die im Produktivbetrieb langsam sind: initiale Synchronisierung, inkrementelle Synchronisierung, Durchsuchen großer Verzeichnisse, Herunterladen und Hochladen von Dateien, Freigabe und gleichzeitige Anmeldungen. Achten Sie auf eine konsistente Dateianzahl, Dateigrößenverteilung, Anzahl aktiver Clients und Parallelität. Verwenden Sie eine Testumgebung und vermeiden Sie es, Produktionsdaten zu belasten.
- Messen Sie zunächst einen Ausgangswert und wiederholen Sie den Vorgang. Erfassen Sie den Leerlaufspeicher nach dem Start, den Speicherverbrauch während jeder Arbeitslast, die maximale Speicherauslastung, die CPU-Auslastung, die Festplatten-E/A, die Datenbankaktivität sowie die Latenz von Anfragen oder Synchronisierungen. Führen Sie den Test einmal nach einem Neustart und erneut mit aufgewärmten Caches durch. Wiederholen Sie jeden Durchlauf so oft, bis Sie die Stabilität des Ergebnisses überprüfen können; ein einzelner Durchlauf gilt nicht als Benchmark.
- Trennen Sie den Anwendungsspeicher vom Hostspeicher. Überprüfen Sie bei Containern den Arbeitsspeicher und das Speicherlimit des Containers; verwenden Sie bei Linux-Prozessen einen Prozessmonitor und die Systemspeicherstatistik. Beobachten Sie außerdem Auslagerungsspeicher, Speichermangelereignisse und den Datenbankspeicher. Ein wachsender Host-Cache ist nicht gleichbedeutend mit einem Speicherleck in der Anwendung, und die Speicherlimits von Containern können je nach Laufzeitumgebung unterschiedlich angezeigt werden.
Für die oCIS-Überwachung konsultieren Sie die versionsspezifische Dokumentation zu Servicemetriken und Prometheus-Endpunkten. Die ownCloud-8.2-Dokumentation beschreibt Metriken für unterstützte Dienste; diese variieren je nach Dienst und Version. Die Administrationsübersicht und die Systemtools von Nextcloud können Konfigurationswarnungen anzeigen, während die Überwachung von Betriebssystem und Datenbank erforderlich ist, um den gesamten RAM-Verbrauch zu erklären. Halten Sie die Testinstrumentierung nach Möglichkeit identisch und protokollieren Sie Einheiten und Abtastintervalle.
Was sollten Sie zuerst einstellen?
1. Bestätigen, dass tatsächlich ein Speicherdruck vorliegt.
Achten Sie auf anhaltend hohe Speichernutzung in Verbindung mit Auslagerungsvorgängen, Speichermangel-bedingten Abbrüchen, Container-Neustarts oder steigender Anfragelatenz. Eine hohe RAM-Nutzung allein kann auf sinnvolles Caching hindeuten. Steigt die Nutzung während eines Scans an und stabilisiert sich anschließend, ist eine Speichererhöhung möglicherweise nicht erforderlich. Steigt die Nutzung unter gleichbleibender Last kontinuierlich an, überprüfen Sie die Protokolle, den Speicherverbrauch des Dienstes und den Job, der vor der Änderung der Grenzwerte ausgeführt wurde.
2. Vermeiden Sie unnötige Hintergrundarbeit.
Identifizieren Sie die Vorschaugenerierung, Virenprüfungen, Indizierung, Synchronisierungsspitzen und geplante Wartungsarbeiten. Diese Aufgaben können mit interaktiven Anfragen konkurrieren. Verschieben Sie ressourcenintensive Prozesse in Zeiten mit geringerer Auslastung oder reduzieren Sie deren gleichzeitige Ausführung mithilfe der dokumentierten Steuerungsmethoden für die installierten Versionen. Deaktivieren Sie Sicherheitsprüfungen oder erforderliche Wartungsarbeiten nicht, nur um die Diagramme übersichtlicher zu gestalten; ermitteln Sie zuvor die Kosten und die Auswirkungen der jeweiligen Aufgabe auf die Benutzer.
3. Die PHP- und Cache-Konfiguration von Nextcloud gezielt anpassen
Prüfen Sie für Nextcloud die unterstützte PHP-Konfiguration für Version 28 und dimensionieren Sie die PHP-FPM-Worker entsprechend dem verfügbaren RAM. Zu wenige Worker können zu einer Warteschlangenbildung führen, zu viele zu einem Speichermangel. Konfigurieren Sie gegebenenfalls einen unterstützten Speichercache und Redis für die transaktionale Dateisperrung gemäß der Dokumentation zu Version 28. Caches belegen zwar Speicher, können aber wiederholte Operationen verbessern. Vergleichen Sie daher Latenz und Speicherverbrauch. Vermeiden Sie es, Einstellungen aus aktuellen Nextcloud-Versionen ohne Prüfung der versionsspezifischen Dokumentation in Version 28 zu übernehmen.
4. Überprüfung der oCIS-Metadaten und Speicheroptionen
Für Infinite Scale sollten Sie die Anzahl der Speicherbereiche, Datei- und Verzeichnismetadaten, den Speichertreiber und das Cache-Verhalten prüfen. Die offizielle Dokumentation zu den Voraussetzungen erklärt, dass im Speicher gehaltene Metadaten die Zugriffs- und Synchronisierungsleistung beeinflussen. Wenn umfangreiche Auflistungs- oder Synchronisierungs-Workloads mit Speicherengpässen einhergehen, vergleichen Sie die relevanten Dienst- und Speichermetriken, bevor Sie RAM hinzufügen. Prüfen Sie die speicherspezifischen Optionen anhand der genauen oCIS-Version; gehen Sie nicht davon aus, dass sich verschiedene Speichersysteme identisch verhalten.
5. Die Kapazität sollte erst nach Ermittlung des Engpasses erhöht werden.
Wenn die gemessene Arbeitslast eine stabile, akzeptable Latenz aufweist, aber die Speichergrenze erreicht, erweitern Sie den Arbeitsspeicher (RAM) oder passen Sie die Ressourcenzuweisung an und wiederholen Sie den Test. Ist die Latenz hingegen hoch, während der Speicher noch ausreichend ist, untersuchen Sie stattdessen Datenbankabfragen, Speicherlatenz, Netzwerkdurchsatz, Sperren und die CPU-Auslastung. Die Skalierung von oCIS-Diensten oder das Hinzufügen von Workern kann den Durchsatz in einer korrekt konzipierten Bereitstellung verbessern, verändert aber auch den Ressourcenbedarf und die Betriebskomplexität. Ändern Sie jeweils nur eine Variable, um die Auswirkungen eindeutig nachvollziehen zu können.
Wie kann das Ergebnis überprüft werden?
Wiederholen Sie die ursprüngliche Arbeitslast nach jeder Änderung und vergleichen Sie dieselben Metriken: maximale und stabile RAM-Auslastung, Swap-Aktivität, p95-Anfrage- oder Synchronisierungslatenz (falls verfügbar), abgeschlossene Übertragungen sowie Fehler- und Neustartzahlen. Eine erfolgreiche Korrektur sollte die von den Nutzern gemeldete Leistung verbessern, ohne an anderer Stelle Speicherdruck zu erzeugen. Für einen fairen Plattformvergleich veröffentlichen Sie die Testbedingungen zusammen mit den Ergebnissen und geben Sie an, ob die Caches leer oder gefüllt waren; verallgemeinern Sie nicht von einem einzelnen kleinen Server oder Datensatz.
Behandeln Sie den End-of-Life-Status von Nextcloud 28 als separates Betriebsproblem. Nutzen Sie die Upgrade-Anleitung des Projekts, um auf eine unterstützte Version zu wechseln, und führen Sie den Vergleich anschließend erneut durch, da neuerer Code, PHP-Versionen, Anwendungen und Migrationsänderungen den Ressourcenbedarf beeinflussen können. Aktuelle Bereitstellungsanforderungen und versionsspezifische Einstellungen finden Sie in den Dokumentationen zu ownCloud Infinite Scale 8.2 (Voraussetzungen) , ownCloud-Metriken für Prometheus , Nextcloud 28 (Systemanforderungen) , Nextcloud 28 (Speicher-Caching ) sowie im Nextcloud-Wartungs- und Veröffentlichungsplan .