Nextcloud Perfomanz große Nutzerzahlen

Hi zusammen,

wer hat mehr Erfahrung?
Ich habe die Nextcloud bei unserer Schule als zentrale Plattform für die Coronazeit etabliert (für Moodle waren wir nicht bereit). Nach zwei Hardwareupgrades ist die Performanz der NExtcloud so, dass man trotzdem bei längerem Arbeiten schon Einbußen sieht (längere Ladezeiten der Webseite, z.B.).

Daher mal eine Analyse, heute abgerufen:

<activeUsers>
<last5minutes>84</last5minutes>
<last1hour>160</last1hour>
<last24hours>639</last24hours>
</activeUsers>

( Für alle, die das in ihrer Nextcloud checken wollen: die Info wird hergegeben, wenn man als Administrator eingeloggt ist und folgendes abruft: https://cloud.meine-schule.de/ocs/v2.php/apps/serverinfo/api/v1/info)

Ich habe ja schon ein paar Dinge geändert, um nicht unnötig Balast zu erzeugen:

  • eigene IP und außer Belwue-Router nichts dazwischen
  • NC Talk deaktiviert - hat bei Benutzung alles lahmgelegt, außerdem unsinnig, weil die Cloud in der Schule hinter einer 200/20 Leitung liegt.
  • nginx statt apache
  • php7.2-fpm statt php-fcgi (oder wie die zwei möglichkeiten heißen)
  • aktuelle Version von nextcloud (18.0.3)
  • folgendes eingeschalten:
<memcache.local>\OC\Memcache\APCu</memcache.local>
<memcache.distributed>none</memcache.distributed>
<filelocking.enabled>yes</filelocking.enabled>
<memcache.locking>\OC\Memcache\Redis</memcache.locking>

Jetzt habe ich nach Tuning-parametern gesucht. Ich habe folgende im Verdacht, die ich verändern kann:

  • php-parameter der php7.2-fpm engine, bspw. sieht unser php-status so aus (für diesen Punkt gibt es (durch mein demenzkrankes anderes ich) schon einen Beitrag: Nextcloud / php (fpm) tuning
idle processes:       11
active processes:     4
total processes:      15
max active processes: 40
max children reached: 258
slow requests:        0

weil meine Konfiguration so aussah:

pm.max_children = 40
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15

Jetzt stelle ich nach diesem Link hier: https://myshell.co.uk/blog/2012/07/adjusting-child-processes-for-php-fpm-nginx/ auf

pm = dynamic
pm.max_children = 150
pm.start_servers = 45
pm.min_spare_servers = 15
pm.max_spare_servers = 75
pm.max_requests = 500

Weitere Vorschläge? Her damit!
VG, Tobias

1 „Gefällt mir“

Wenn ich nicht davon ausgaenge, dass Du das wohl schon als Hauptbremsen ausgeschlossen hast wuerde ich folgendes schreiben.

Der 20MBit/s-Uplink scheint mir etwas schlapp, der ist beim Download schnell dicht und irgendwer laedt ja dauernd irgendwas runter. Ich hab Zweifel, dass das Drehen an unzaehligen Optimierungsschraeubchen spuerbare Verbesserungen bringt, mag da aber falsch liegen.
Was sagt denn htop und iftop ueber die load auf der CPU und der Netzwerkkarte wenn das System anfaengt traege zu reagieren?

Damit duerftest Du die Serverdienste, die die Latenz generieren, ausfindig machen koennen bzw. ob die Netzwerkverbindung das hergibt. Daraus ergeben sich die Konsequenzen zum Tuning.
Nextcloud raus ins Internet oder staerkere Hardware (was ich nicht vermute). Server draussen sind mit 1GBit/s symmetrisch angebunden, 20MBit/s stinken da mies ab.

Gruss Harry

1 „Gefällt mir“

Hallo,

Der 20MBit/s-Uplink scheint mir etwas schlapp, der ist beim Download
schnell dicht und irgendwer laedt ja dauernd irgendwas runter. Ich hab
Zweifel, dass das Drehen an unzaehligen Optimierungsschraeubchen
spuerbare Verbesserungen bringt, mag da aber falsch liegen.
Was sagt denn htop und iftop ueber die load auf der CPU und der
Netzwerkkarte wenn das System anfaengt traege zu reagieren?

das würde ich nicht so sehen.
Meine Schule war mit 150/10 angebunden und unsere erste „Lösung“ war
ebenfalls Nextcloud.
Die 10 MBit/s waren nicht das Problem.
Bei uns war ein Problem, dass ich Colabora installiert habe und dann die
Leute nicht auf „Herunterladen“ geklickt haben soindern auf „öffnen in
Colabora“ und dann haben halt mal 20 Leute auf dem Server
Textverarbeitung gemacht: das war dann nciht so gut über die Leutung.
Also hab ich das AddOn deaktiviert: seit dem gab es keine Probleme mehr.

Mein Server ist aber auch nicht so alt und ich war großzügig bei den
Resourcen.
Sie hat 6 CPU Kerne und 10 GB RAM

Viele Grüße

Holger

1 „Gefällt mir“

Hallo Holger,

ich bin inzwischen auch großzügig :slight_smile: ich habe auch 6 Kerne und 12 GB RAM.

Der Tipp mit Collabora ist in der Tat sinnvoll. Allerdings: Gilt das auch, wenn ich Collabora auf einem anderen Rechner habe? Der Rechner mit Office scheint sich zu langweilen. Ich bin mir nicht sicher, wer denn die Rechenarbeit übernimmt von den beiden?

Außerdem halte ich das für schade: Schüler, die nur ein Handy zur Verfügung haben und evtl. kein Office drauf können vllt. keine ODT/DOC/DOCX Dateien lesen.
Klar haben wir die Vorgabe, nur PDFs hochzuladen, aber da halten sich sicher wieder ein paar nicht dran.

Ich werde beides überlegen: Collabora abschalten (es können ja eh nicht mehr als X (20?) gleichzeitig) und den Server zu Hetzner kopieren…
VG, Tobias

Hallo Harry,

vielen Dan kfür den Input.
Ich mus smich mit htop und iftop noch auseinandersetzen, ich war nie der große Nutzer von Monitoring software, leider.

Ich habe z.B: jetzt einen Load von 9 (6 cores) und mäßiger RAM-auslastung, dabei gibt es ca. 175 Cloud-Nutzer in den letzten 5 Minuten und der php-status sagt mir:

idle processes:       37
active processes:     50
total processes:      87
max active processes: 150

aber erstens schwanken diese Zahlen stark, immer wenn ich F5 drücke kommt da was anderes raus, die entstehen und verschwinden also sehr schnell und zweitens weiß ich gar nicht, ob die was aussagen, ob das besser/schlechter wird, wenn ich da mehr oder weniger zur Verfügung stelle. Nur die Doku zu php-fpm suggeriert das.

Wie gesagt: Ich denke über den Umzug zu Hetzner nach…

VG, Tobias

Naja, iftop ist Kommandozeile und zeigt Dir an, was gerade so rein und raus geht und wenn das was rausgeht um die 20MBit/s rumduempelt, ist das Nadeloehr gefunden.
htop ist nur ein top, welches auch die Last auf den einzelnen Cores anzeigt, auch Kommandozeile.

Load von 9? Ich weiss ja nicht, wie Du diese ermittelst, aber bei 9 ist die Maschine normalerweise dicht.

Gruss Harry