NextCloud Performance

  • Hallo,

    ich habe eine Frage zur Performance von Nextcloud.

    Ich habe Nextcloud auf dem RPi installiert. Die Daten werden auf einen 64GB Stick mit ext4 gespeichert. Außerdem habe ich ein LetEncrypt-Zertifikat. Auf mein Handy habe ich die Nextcloud-App installiert. Meine DSL-Geschwindigkeit liegt i.d.R. bei über ca. 40MBit/12Mbit. Im lokalen Netz ist der RPi bei 72Mbit.

    Alles funktioniert einwandfrei, egal ob aus dem lokalen Netz oder über das Internet, ob vom Handy oder PC.

    Nur ist die Geschwindigkeit ist so langsam, dass eine praktische Nutzung von Nextcloud unsinnig für mich ist. Up- und Download liegen bei ca. 200-250 Kbit.

    Dabei ist es egal, ob ich einen RPi 2B oder RPi 3 verwende.

    Nun zu meiner Frage. Ist diese Performance normal oder liegt es an einer schlechten/ falschen Installation/ Einstellungen?

    Welche Up- und Downloadraten sollte man mit der RPi erreichen können?

    Gruß

    Apollon

  • Hallo Bernd,

    ich habe mir die Messreihe angesehen. Diese Werte, die erreicht wurden, habe ich auch erwartete. Sie liegen um Welten von meinen Ergebnissen entfernt.

    Irgendetwas liegt bei mir im argen. Mal sehen, ob ich etwas finde.

    Danke dir für die Mühe.

    Gruß

    Apollon

  • Schau doch mal in den Einstellungen von Nextcloud in Verwaltung/Übersicht. Da werden dir eventuelle Fehlkonfigurationen genannt, die sowohl Sicherheit als auch Geschwindigkeit betreffen. Und es ist auch kein Fehler, mal den Sicherheitsscanner laufen zu lassen (falls noch nicht geschehen). Letzteres hat zwar mit deinem Geschwindigkeitsproblem nichts zu tun, trotzdem sollte man das Thema Sicherheit nicht vernachlässigen, wenn man selber einen Webserver einrichtet und online stellt.

  • Nun zu meiner Frage. Ist diese Performance normal oder liegt es an einer schlechten/ falschen Installation/ Einstellungen?

    Welche Up- und Downloadraten sollte man mit der RPi erreichen können?

    Schau Dir mal mit htop die CPU-Auslastung an. Wenns nicht installiert ist, dann installieren:

    Code
    apt install htop
  • Hallo,

    ich habe mir nun die Übersicht von Nextcloud angesehen. Dort bin ich auf die Meldung "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB" gestoßen. Diese Meldung habe ich seinerzeit, nach der Installation, nicht erhalten.

    Ich habe in der php.ini - von php- den Wert memory_limit von 128MB auf 512MB geändert. Damit sind nun ganz gute Datenraten möglich (Upload ca. 12MBit). Aber das ist natürlich schon sehr viel Speicher für den RPi mit 1GB Arbeitsspeicher.

    Alles andere wird nun extrem langsam. Aber da ich diesen RPi nur als NAS nutzen möchte, soll mir das egal sein.

    Als nächstes werde ich nun noch htop installieren. Mal sehen, ob ich hier noch etwas erkennen kann.

    Erst einmal vielen Dank für eure Antworten.

    Gruß

    Apollon

  • Es gibt einige Fallstricke dazu; meine Erfahrungen von früher:

    - SQLite performt selbst auf einem Raspberry sehr schlecht. Selbst dafür lohnt es sich, z.B. MariaDB als Backend für Nextcloud zu nutzen.

    - Als Dateisystem bevorzuge ich f2fs. Hat zwar kein Journalling wie ext3 und ext4, ist performancemäßig aber (gerade auf Flash-Hardware) dann doch merklich schneller, gerade auf Pi1, 2 und 3. Ob das SO viel ausmacht, weiß ich nicht, aber ein paar Sekunden lassen sich da definitiv einsparen^^. (Und ich mache regelmäßig Backups, sodass ich auf das Journalling verzichten kann...)

    - Hast du die ganzen Sicherheits- und Performance-Tipps beherzigt, die auf der eigenen Nextcloud-Seite (ich glaube, unter dem Reiter "Sicherheit") angezeigt werden? Besonders die Caching-Mechanismen machen viel aus!

    - Welchen Webserver nutzt du? Nginx etwa beherrscht die Fähigkeit, alle 4 CPU-Kerne des Raspberries zu nutzen (wenn es entsprechend konfiguriert wurde), was auch einiges bringt.

    - Welche PHP-Implementation nutzt du? Hier habe ich auch die Erfahrung gemacht, dass php-fcgi auf dem Pi irre langsam ist, über einen dedizierten PHP-Manager wie php-fpm aber deutlich an Performance gewinnt. Dito, wenn man direkt Socket-Dateien nutzt, statt den PHP-Server über das lo-Interface anzusprechen.

    - Generell: Wie greifst du auf deine Nextcloud zu? Ist er vom HTTPS-Port aus direkt aus dem Internet erreichbar, oder über was anderes, z.B. eine VPN-Lösung?

    - Generell²: Zeig uns mal die Konfiguration deines Webservers; poste mal die Configdatei hier rein.

    EDIT:

    - Welche PHP-Version nutzt du? Je neuer die PHP-Version, desto performanter arbeitet die. Vorallem PHP7 hat einiges an deutlich spürbaren Optimierungen erhalten...

    - Überhaupt: Welches System nutzt du? Raspbian 7 Wheezy (hoffentlich nicht!), 8 Jessie (auch nicht mehr empfehlenswert), 9 Stretch oder 10 Buster?

    Edited once, last by Astorek86 (August 15, 2019 at 1:14 PM).

  • Ich habe installiert:

    • Stretch
    • MySQL
    • Apache2
    • PHP 7.0
    • Nextcloud 14.0.3

    Bei den Sicherheits- & Einrichtungswarnungen tauchen nun noch auf:

    1. /.well-known/caldev ist nicht eingerichtet
    2. PHP-Memory-Cach ist nicht konfiguriert
    3. Referrer-Policy HTTP-Header ist nicht gesetzt

    Zu 1. habe ich schon man nachgesehen. Wenn ich das richtig interpretiere, benötige ich das nur, wenn ich den Kalender etc. verwenden möchte. Möchte ich nicht und deshalb habe ich mich darum nicht weiter gekümmert.

    zu 2. Taucht jetzt erst auf, oder habe ich vorher nicht gesehen. Das muss ich mir genauer ansehen.

    zu 3. Die Meldung ist mir unbekannt und damit kann ich nichts anfangen. Da muss ich recherchieren.

    Momentan habe ich keinen Zugriff auf den RPi. Die Konfig-Datei des Webservers stelle ich heute Abend zur Verfügung.

    @ThomasL

    htop habe ich nicht installiert. Ich habe auf dem RPi Webadmin installiert. Damit habe ich gestern die Auslastung beobachtet. Beim Up- und Download lag die CPU-Auslastung zwischen 50-80%.


    Als nächstes werde ich wohl auf Nextcloud 15 und PHP 7.2 umstellen.

  • Als nächstes werde ich wohl auf Nextcloud 15 und PHP 7.2 umstellen

    Ich glaube kaum, dass das irgendeine Verbesserung bringen wird und das es stattdessen einfach nur planloses rumstochern im Nebel ist.

    Ich habe auf dem RPi Webadmin installiert

    Genau das halte ich für das Problem... oder besser gesagt, einen Hinweis darauf, worauf das eigentliche Problem basiert. Ganz offensichtlich hast Du auf dem PI ein völlig unnötiges grafisches Desktop-Envrionment installiert. Mein Rat wäre, den PI mit Raspbian Lite neu aufzusetzen, zusätzlich alle unbenötigten Dienste wie Networkmanager, DHCPD, rsyslog, ntp und avahi ebenfalls zu löschen und dann nur die tatsächlich benötigten Services zu installieren. Damit ist eine Performance-Verbesserung garantiert vorhersagbar.... im Moment hast Du dem PI Eisenkugeln an die Füsse gekettet... rennen kann er damit jedenfalls nicht... und vor allem, außer Clicki-Bunti als einzigen Vorteil hat das auf jedem Server ansonsten nur Nachteile.... und sogar ganz besonders auf den eher untermotorisierten PI's.

    BTW, ich denke, ich würde speziell auf einem PI auch eher auf das schmalere nginx setzen, anstatt dem dickeren apache... oder besser noch nach Alternativen suchen, das ganz zu vermeiden.... sofern das möglich ist. Und wenns nicht möglich ist, würde ich den PI gegen einen Intel NUC austauschen.... der käme dann auch sogar mit so einem Quatsch wie dem grafischen Desktop klar.

  • Der Webadmin ist kein grafisches Desktop-Envrionment. Es ist eine Weboberfläche, die nur Ressourcen in Anspruch nimmt, wenn sie gestartet wird (glaube ich). Mir ist nicht bekannt, dass dafür permanent ein Dienst läuft. Die grafische Oberfläche von Raspien wird auch nicht gestartet.

    Ich habe mich für apache und gegen nginx entschieden, weil mein Webserver-Know-How sehr beschränkt ist und die Lösungen im Netz für apache besser und umfangreicher sind. Für MySQL habe ich mich entschieden, weil ich schon mal MySQL verwendet habe und MariaDB mir völlig unbekannt ist.

    Im übrigen habe ich mit den geringfügigen Änderungen in der php.ini schon viel erreicht. Natürlich bin ich bestrebt, soweit es mir möglich ist, das System zu verbessern.

    Die Cloud ist für mich nicht lebensnotwendig. Ich habe sie eingerichtet, um meine Kenntnisse in Linux ,Webserver, PHP zu verbessern. Nur, wenn ich mir die Mühe mache, so ein System einzurichten, dann möchte ich es auch nutzen. Die Anschaffungs- und laufenden Kosten für einen Intel Nuc sind mir nun wieder zu hoch.

  • aktuell ist 16.04 / hab heut erst einen pi2 von 16.03 auf 16.04 aktualisiert. Tipp: vorher immer Backup der kompletten SD Karte und anschließend das Update via Konsole. Nach dem Update und einem vorsorglichen Reboot kannst dann deine Installation in den Einstellungen/Übersicht prüfen lassen und ggfs auftrendende Optimierungsvorschläge durchführen.

    Grüße M.

    P.S. Evtl liegt es an deiner php Version dass die 16.x nicht angeboten werden, kann ich dir aber nicht mit 100%iger Gewissenheit sagen

  • Anbei die apache2.conf. Hier habe ich keine Änderungen vorgenommen. Es ist die Standardkonfiguration.

    Hier noch die 000-default-le-ssl.conf, die ich im Zusammenhang mit meinem Letsencrypt eingerichtet habe. Das gleiche gibt es noch einmal für den Port 80.

    Edited 2 times, last by Apollon (August 17, 2019 at 10:10 AM).

  • Nein, nginx habe ich nicht probiert. Mit apache habe ich schon genug zu tun.

    Vor einiger Zeit hatte ich mal eine eigene Webseite für mein Smarthome entwickelt und hatte mich für apache und php entschieden. Daher bin ich bei diesen Varianten geblieben.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!