Nextcloud für alle: Hardwareanforderungen und Aufspaltung der Ressourcen

Hallo.
Wir hatten das Thema vor gar nicht so langer Zeit schon mal, doch ich mache nochmal einen neuen Thread dazu auf:

Wir wollen unsere Nextcloud in absehbarer Zeit für alle SuS und KuK öffnen. Somit ver-x-facht sich die Userzahl von knapp 100 auf über 1300 User. Vorher waren nie mehr als 10 gleichzeitig online; künftig ist natürlich unklar, wie groß der Andrang tatsächlich sein wird. Dennoch stellt das die Nextcloud-Installation vor ein paar Probleme. Nicht nur das Storage muss ganz anders bedacht werden sondern auch alle anderen Ressourcen, die damit im Zusammenhang stehen.

Auf dieser Seite sind die „offiziellen Empfehlungen“ für „Mid-sized Enterprises“ (150-1000 User) aufgelistet.

Es wird also eine Trennung empfohlen:

  • App Server
  • DB Server
  • Redis Server

Macht das jemand bereits so? Der Aufbau ist auf diese Art ja deutlich komplexer als eine einfache Installation (keine Spur mehr von KISS).

Ich weiß nicht, ob eine einfache Installation auch funktionieren würde. Es wäre aber ein denkbar schlechter Start, wenn man da eine halbgare Lösung präsentiert, die dann mit dem Userandrang nicht klar kommt. Daher die Frage in die Runde: Wie macht ihr das?

Schöne Grüße,
Michael

Hallo Michael,

ich hab meien Nextcloud seit Jahren offen für alle Beteiligten am
Semianrbetrieb: das sind also ca. 600 Leute: und es wird viel genutzt,
auch mit Collabora auf dem gleichen server.

Große Performanceprobleme hatte ich noch nicht.

Es lohnt sich also erstmal das simple setup um zu setzen und dann Dinge
wie DB oder REDIS aus zu lagern, wenn es Performanceproblmee gibt.

LG

Holger

Hallo Michael, das hast ja gut was vor.

Mit 450 potentiellen User auf einem Server betreibe ich gerade die Nextcloud. JEtzt wird es auch interessant was für Module du betreiben möchtest. (Talk (mit STUN/TURN Server), Only Office etc. brauchen noch zusätzlich Last) Schwachstellen sind CPU und RAM bei uns aufgrund den vielen php-FPM Instanzen auf dem Server. , da solltest du gut ausbauen (haben 32GB RAM und 6 KErne, da sind wir gerade so an der Grenze, RAM hier 64 oder 128 GB). GigabitAnbindung im Up / Download sollte ausreichen, Festpaltte je nach Bedarf (Ich rechne 1 bsi 5 GB pro Nutzer, aber denke hier sollten vorerst auch mal 4 bis 8 TB reichen. Bei der Nutzerzahl solltest du DB Verbindungen erhöhen und bei zu viel Arbeitslast der DB diese als estes auslagern. Redis dann im nächsten Schritt.

LG Sebastian

Hallo zusammen.
Ja, das meinte ich damit: Es wird komplex(er). Die Frage ist ob man einfach anfangen kann und bei Bedarf ausbauen kann – oder ob man gleich in die Vollen gehen sollte…?
Ich tendiere auch zum ersten Fall…
Michael

Ihr solltet auf jeden Fall mit php-fpm und nginx arbeiten. Datenbankverbindungen hochsetzen (Verbindungen sind standard bei 150, habe es auf 1500 hochgesetzt). Eventuell Only Office deaktivieren, ist nicht unbedingt nötig. Talk wiederum würde ich empfehlen, da die Kommunikation sehr gut darüber läuft.

Hallo Michael,

Wir haben unsere Schulhomepage (Joomla), Moodle und Nextcloud (nur fürs Kollegium) auf einem Server, ich habe direkt vorm Corona-Shutdown die Datenbank auf einen neuen schnellen Server ausgelagert, was erstaunlich leicht vonstatten ging (der DB-Server steht in einem separaten Netz, über eine zweite Netzwerkkarte auf dem Server angebunden, der DB-Server selbst ist aus dem Internet damit nicht erreichbar…). Danach flutschte Moodle deutlich performanter (vielleicht war das aber auch der parallele Umstieg von MySQL auf MariaDB?), auf unserer Cloud ist aber nicht genug los, um sagen zu können, ob das bei Nextcloud wirklich viel bringt.

Viele Grüße,
Stefan

Hi,
bei uns laufen NC18.02, Mariadb, Redis und ein LDAP-Klon (noch ohne Replikation) als container auf einem Intel® Core™ i7-4770 CPU ( 8-Kerne, glaub ich, 32 GB RAM). Da läuft auch noch Rock.Chat (ebenfalls container). Angebunden ist das mit 1Gb. Damit versorgen wir 900 Benutzer.

Viele Grüße

ch

Das sind doch mal harte Fakten. Danke.

… was mich zurück zu der Frage bringt, ob man Nextcloud auch performant (genug) als docker-Container laufen lassen kann?? Ich hatte bisher immer den Eindruck, dass es nicht wirklich flott im Container läuft, oder?
In Sachen Konfiguration hätte man aber deutlich weniger zu tun…
Schöne Grüße,
Michael

Hallo Michael,

bei NC?!?
Was muss man da groß konfigurieren außer in der Cloud selbst?

Viele Grüße
Steffen

in diesem Szenario sieht das aber anders aus … da gibt es jede Menge zu konfigurieren, wenn man’s mit der Trennung der Ressourcen ernst nimmt. Daher frage ich ja nach einem möglichst einfachen Weg (der trotzdem performant ist)

Hallo Michael,

na, aber das muss ich doch konfigurieren (z.B. DB auf anderem Server), ob ich jetzt die NC im Container oder nicht habe :confused:

Vielleicht bin ich altmodisch, weshalb mir ganz tolle Dinge entgehen, aber ich habe bis heute für viele Dinge nicht verstanden, wo der Vorteil von Docker & Co sein sollen, außer, dass beim Update nginx oder Apache oder was da noch im Umfeld gebraucht wird gleich mitgeliefert wird und damit keine Inkompatibiliät entstehen kann.

Aber darum geht’s ja hier gar nicht, sondern um das Trennen von Diensten aus aus Performancegründen :confused:

Viele Grüße
Steffen

eben nicht … wenn NC direkt im docker-container daher kommt, reicht doch ein docker-compose up und die Kiste rennt.

Und wenn aus einem Server der alles unter einer Haube hat, nun „plötzlich“ drei werden (was ja offenbar nicht zwingend notwendig ist, wie Holger und „ch“ schreiben), dann hat man anstelle von einem Server drei Server zu pflegen. Ich will damit nur sagen, dass es dann eben kein KISS mehr ist – nicht, dass es unmöglich wäre.

Hallo Michael,

ja, in der Standard-Config, aber wenn du z.B. die DB auf einen anderen Server legen willst (Aufspaltung von Ressourcen), dann musst du doch an die Docker Config genauso Hand anlegen wie an eine Nicht-Container Installation.

Ich würde da sogar bei Docker mehr Nachteile als Vorteile sehen, denn mySQL läuft dann ja immer noch im Docker, obwohl die DB auf einem anderen Server liegt.

Viele Grüße
Steffen

… wir drehen uns im Kreis. Meine Frage lautet ja auch: Wie installiert man es so, dass es einfach ist UND performant läuft.

Hi,

wir haben die Cloud vor Kurzem auf einen deziderten Server umgezogen, da die alte Cloud an einem T@school-Anschluss mit 16Mb down und 2Mbit up hing. da ging natürlich schnell nix mehr. Beim Umzug haben wir einfach mal docker ausprobiert und abgesehen davon, dass die Migration von nc 16 auf 18 ein bissl gezwickt hat, hat das ganz gut funktioniert,
Wenn du deine docker.compose.yml zusammengebastelt hast, die Datenbank in den mariadb-container importiert hast und die Daten auch zur Hand hast, ist eigentlich nicht viel mehr zu machen (reverseproxy und zertifikate noch). Auf jeden Fall einfacher und am Ende auch schneller als eine NC z.B. in einer VM aufzusetzen, wie ich das beim letzten Mal gemacht habe. Und die Performance stimmt auch, denke ich.
Einen nacken Stack mit nc,mariadb, redis hast du in 5 Minuten laufen.
Ich würde wieder Docker nehmen für die NC

Viele Grüße

christian

Hallo Christian.

na ja – ich dachte da an fertige yml-Files; wie beispielsweise hier angeboten (in der Hoffnung, dass da viele Settings schon optimiert wurden??).

Andere hier berichteten schon mal davon, dass der docker-Container (aus Gründen, die imho nie ganz geklärt wurden) gefühlt oder tatsächlich messbar langsamer war als eine direkte Installation. Aber wenn du sagst, dass es flüssig läuft, wäre das ja nochmal eine Überlegung wert …

Schöne Grüße,
Michael

Hallo Michael,

ja, klar. So hab ich das auch gemacht und angepasst an meine Bedürfnisse.

Ich hab das nicht nachgemessen.
Man kann da sicher ne Menge optimieren (Wahl des docker-storage-Treiber usw), wenn man Zeit und Lust dazu hat. Ich habe beides nicht.
Die NC läuft hier wie oben beschrieben problemlos, sauber und flüssig. Das reicht mir!

Viele Grüße

christian

Ein Beitrag wurde in ein neues Thema verschoben: Quota für Schüler in der Nextcloud

Hi,
zur Frage, wie performant die eigene Nextcloud läuft, habe ich gerade (zufällig) etwas gefunden. Wenn man den redis-Cache im Hintergrund verwendet, kann man einen Benchmarktest durchführen. Ich habe das gerade mal gemacht:

redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -d 1000000 -c 200

und erhalte dabei die Größenordnung: 40.000 requests per second
Ob das jetzt „brauchbar/mittel/schlecht“ ist, kann ich so aber nicht beurteilen. Welche Werte spucken Eure Nextclouds denn so aus?

Viele Grüße,
Michael