- Bei welchen Anbieter? Was für ein Server?
Selbst gehostet auf einem DELL PowerEdge R660 als ESXi, virtualisiert mit vmWare. Das System hat 4 CPU-Kerne mit 16 GB RAM. Steht in der DMZ, geht direkt ohne Proxy oder sonstiges raus über unsere Firewall per 443.
- Betriebssystem sowie Version ALLER beteiligten Systeme: Ubuntu 20.04
- Nextcloud Version: 27.0.2
- PHP Version: 8.2.10 (fpm)
- Welche Datenbank? MariaDB 10.6.15
- Apache version: 2.4.57
- Netzwerk Aufgliederung: VM in der DMZ, Firewall (nur Port 443 erlaubt eingehend, ausgehend alles erlaubt), dann Internet
Hallo zusammen,
ich betreibe bei uns eine NextCloud Instanz. Wir haben ca. 300 registrierte Benutzer, die alle per LDAP angebunden sind. Es kommt jede Woche vor, dass die Leute sich beschweren, dass die Cloud im Browser langsam sei. Ich selbst kann das auch sporadisch immer wieder feststellen, dass die Übersicht der Dateien beim ersten Aufruf bis zu 10 Sekunden dauert, bevor man dann die Ordner sieht.
Ist die Übersicht einmal da, geht es danach sehr zügig, wenn man durch die einzelnen Unterordner switcht.
Im Admin-Bereich merke ich die Performance-Probleme leider auch regelmäßig, dass die Seite dann beim Klick auf einen Link (z.B. Grundeinstellungen, Sicherheit etc.) auf einmal super lange braucht zum Laden. Wenn die Seite geladen ist, dann ist danach meist wieder alles bestens, so dass man dann problemlos die anderen Seiten aufrufen kann.
Ich habe testweise mal eine Wordpress-Seite auf den selben Server gepackt, um zu prüfen, ob es da auch zu Performance-Problemen kommt. Hier kann man das nie nachstellen, die Seite lädt dort immer unter 200ms bei egal welcher Seite.
Es muss also an NextCloud selbst liegen. Ich habe alle Performance-Optimierungen die auf der Website bei NextCloud stehen gemacht, wie redis installiert, apcu und opcache, aktuelle Versionen installiert, Server Push aktiviert, http2 konfiguriert usw. aber es bessert sich kein bisschen, die Geschwindigkeit ist stellenweise unterirdisch, so dass die Leute das merken und sich regelmäßig dazu melden und versuchen Alternativen zu finden wie OneDrive und Co…
Der Serverload sieht auch gut aus, da sind wir immer bei 0.1 bis maximal 1.0 bei 4 Kernen, der RAM ist ebenfalls in Ordnung. Speicherplatz auf dem Server ist auch genug frei (aktuell fast 100 GB). Aktuell sieht es beispielsweise so in htop:
Gehe ich nun mal zur Startseite bei den Dateien sieht man gut, dass die Seite gerade wieder über 8 Sekunden gebraucht hat, obwohl gerade keiner mit der Cloud arbeitet.
iotop liefert beim Laden der Seite folgende Werte:
Ich habe folgende Config in NextCloud definiert:
{
"system": {
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"cloud.meinedomain.de",
"cloud.domain.local", #interner Name
"10.20.15.55", #interne IP
"123.123.123.123" #externe IP
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"dbtype": "mysql",
"version": "27.0.2.1",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"mysql.utf8mb4": true,
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"default_phone_region": "DE",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_smtpmode": "sendmail",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"loglevel": 2,
"ldapIgnoreNamingRules": false,
"forcessl": true,
"theme": "",
"lost_password_link": "disabled",
"auth.webauthn.enabled": false,
"maintenance": false,
"trashbin_retention_obligation": "auto,7",
"ldapProviderFactory": "\\OCA\\User_LDAP\\LDAPProviderFactory",
"overwriteprotocol": "https",
"overwrite.cli.url": "https:\/\/cloud.meinedomain.de",
"skeletondirectory": "",
"force_language": "de_DE",
"force_locale": "de_DE",
"allow_user_to_change_display_name": false,
"updater.release.channel": "stable",
"encryption.key_storage_migrated": false,
"app_install_overwrite": [
"bruteforcesettings",
"pdfdraw"
],
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"mail_sendmailmode": "pipe",
"mail_smtphost": "***REMOVED SENSITIVE VALUE***",
"mail_smtpport": "25",
"mail_smtpauth": 1,
"mail_smtpname": "***REMOVED SENSITIVE VALUE***",
"mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
"memcache.local": "\\OC\\Memcache\\APCu",
"memcache.distributed": "\\OC\\Memcache\\Redis",
"memcache.locking": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"port": 0
}
}
}
Folgende Apps sind installiert:
Enabled:
- activity: 2.19.0
- bruteforcesettings: 2.7.0
- calendar: 4.4.5
- circles: 27.0.1
- cloud_federation_api: 1.10.0
- collectives: 2.7.1
- comments: 1.17.0
- contacts: 5.3.2
- contactsinteraction: 1.8.0
- dav: 1.27.0
- deck: 1.10.0
- federatedfilesharing: 1.17.0
- federation: 1.17.0
- files: 1.22.0
- files_pdfviewer: 2.8.0
- files_rightclick: 1.6.0
- files_sharing: 1.19.0
- files_trashbin: 1.17.0
- files_versions: 1.20.0
- firstrunwizard: 2.16.0
- groupfolders: 15.2.0
- logreader: 2.12.0
- lookup_server_connector: 1.15.0
- nextcloud_announcements: 1.16.0
- notifications: 2.15.0
- notify_push: 0.6.3
- oauth2: 1.15.1
- onlyoffice: 8.2.0
- photos: 2.3.0
- polls: 5.3.2
- privacy: 1.11.0
- provisioning_api: 1.17.0
- related_resources: 1.2.0
- serverinfo: 1.17.0
- settings: 1.9.0
- sharebymail: 1.17.0
- spreed: 17.0.3
- systemtags: 1.17.0
- text: 3.8.0
- theming: 2.2.0
- twofactor_backupcodes: 1.16.0
- updatenotification: 1.17.0
- user_ldap: 1.17.0
- viewer: 2.1.0
- workflowengine: 2.9.0
Disabled:
- admin_audit: 1.17.0
- dashboard: 7.7.0 (installed 7.2.0)
- encryption: 2.15.0 (installed 2.13.0)
- files_external: 1.19.0 (installed 1.4.1)
- password_policy: 1.17.0 (installed 1.3.0)
- recommendations: 1.6.0 (installed 0.7.0)
- support: 1.10.0 (installed 1.0.0)
- survey_client: 1.15.0 (installed 1.1.0)
- suspicious_login: 5.0.0
- twofactor_totp: 9.0.0 (installed 2.1.2)
- user_status: 1.7.0 (installed 1.0.1)
- weather_status: 1.7.0 (installed 1.4.0)
Der Integrity-Status findet keine Fehler, da ist alles sauber.
Das Logfile hat nur 5 Einträge, wo es falsche Zugangsdaten von Benutzern gab, also nichts auffälliges.
Den PHP FPM Pool habe ich auch schon mal angepasst, um hier ggf. nach Fehlern zu suchen. Der ist aktuell wie folgt konfiguriert:
pm = dynamic
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18
Sonst habe ich schon mehrmals folgendes geprüft und umgesetzt:
Server tuning — Nextcloud latest Administration Manual latest documentation
Hat vielleicht irgendjemand einen Tipp, wo ich ansetzen könnte, um das Problem zu finden?
Falls noch Infos benötigt werden, liefere ich die natürlich gerne.
DANKE!