Nextcloud teilweise sehr langsamer Seitenaufbau

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Tuxnet

Benutzer
Registriert
02. Jan. 2019
Beiträge
640
Reaktionspunkte
76
Punkte
48
Guten Morgen zusammen,
momentan ärgere ich mich mit dem Aufbau der Nextcloud Seiten herum.
Ich habe eine Synology DS218+ und 10GB RAM,
aber die Seiten bauen sich teilweise extrem langsam auf.

Hat jemand auch dieses Problem,
und gibt es eine Lösung ?

danke


# Apache 2.4
# Php 7.3
# MariaDB10
# Nextcloud hub 20.0.1
 
Guten Morgen Andy+

Alle Überprüfungen bestanden.
Ein grüner Punkt wie es sich gehört
 
Wie sind Deine Defaulteinstellungen in der Webstation? Ich meine damit php, Apache usw.
 
Hmmm, gute Frage ..... ich habe da einiges abgeändert. Hast du evt. die wichtigsten Einstellungen, die ich kontrollieren sollte ?
 
Bei mir sieht das so aus:

1604929192549.png

1604929232693.png


was nun aber nichts heissen muss. Den open_basedir habe ich immer geleert, zumindest in früheren ownCloud-Versionen hat das gestört.
 
Ist bei mir identisch
 
Ich habe Apache 2.2, allerdings wegen anderer Belange. Aber einfach mal durchtesten, manchmal gibt es Aha-Geschichten.
 
Hat jemand auch dieses Problem,
und gibt es eine Lösung ?
Ich habe mich auch lange mit dem Problem rumgeärgert und bei meiner Optimierung an die folgende Anleitung von Boerny's Blog angelehnt.
MariaDB auf Synology DiskStation beschleunigen

Der Eintrag "innodb_additional_mem_pool_size" sollte allerdings nicht mehr verwendet werden, da es damit ab MariaDB 10.2 Probleme gibt.

Für meine DS716+II und DS920+ habe ich somit die optimalen Einstellungen in der my.cnf Datei gefunden und damit rennt meine Nextcloud im Galopp.

Die Datei liegt bei mir in diesem Ordner:
/usr/syno/etc/packages/MariaDB10/my.cnf

[client]
port=3307
socket = /run/mysqld/mysqld10.sock

[mysqld]
port=3307
socket = /run/mysqld/mysqld10.sock

# InnoDB
innodb_buffer_pool_size = 2G
innodb_io_capacity=4000

# Basics
key_buffer_size = 512M
max_allowed_packet = 128M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 128M
# Versuchen Sie die Anzahl der CPU's*2 für thread_concurrency
# DS920+ Intel(R) Celeron(R) J4125 CPU @ 2.00GHz (4 cores)
thread_concurrency = 8
thread_cache_size = 8

# folgende beiden Werte sollten immer identisch sein
tmp_table_size = 512M
max_heap_table_size = 512M

# Query Cache
query_cache_type = 1
query_cache_limit = 256K
query_cache_min_res_unit = 2k
query_cache_size = 100M

[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
 
"memcached" und "redis" wären da vlltnoch passende Stichworte :)
 
Das steht bei mir so in der config, habe ich in owncloud und nextcloud so, was m.E. kein Unterschied sein sollte

'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
),
 
memcached" und "redis" habe ich bereits aktiviert
 
@Crashandy
Danke für die Bereitstellung deiner config ;-)

Für wieviel cpu`s ist sie ausgelegt ?
Mein System hat ja leider nur 2
 
Hallo @Tuxnet,

# Versuchen Sie die Anzahl der CPU's*2 für thread_concurrency
# DS920+ Intel(R) Celeron(R) J4125 CPU @ 2.00GHz (4 cores)
thread_concurrency = 8
thread_cache_size = 8

Demnach müsstest Du bei Deiner DS jeweils 4 eintragen.
thread_concurrency = 4
thread_cache_size = 4

Vorausgesetzt Du verwendest PHP 7.4, dann solltes Du noch eine benutzerdefinierte Datei "user_settings.ini" in dem folgenden Ordner anlegen.
/usr/local/etc/php74/cli/conf.d/user_settings.ini
Dort dann noch diesen Inhalt einfügen, damit APC auch wirklich funktioniert:

extension = apcu.so
extension = imagick.so
extension = redis.so

[core]
memory_limit = 512M
upload_max_filesize = 512M
post_max_size = 512M

[apc]
apc.shm_size = 512M
apc.enable_cli = 1

Die wichtigen Änderungen, im eigens für die Nextcloud angelegten PHP-Profil, hast Du hoffentlich schon getätigt.

Gruß
Crashandy
 
Zuletzt bearbeitet:
  • Like
Reaktionen: luddi
@Crashandy

perfekt,....danke

Habe alles direkt umgesetzt.
Ja, das PHP Profil habe ich bereits geändert.



Ich werde berichten
 
@Crashandy

hat sich im laufe der Jahre etwas einer deiner conf geändert ?
 
Hallo @Tuxnet,

eigentlich nicht viel, außer dass ich heute DSM 7.1 und PHP 8.0 verwende.
Meine "/usr/local/etc/php80/cli/conf.d/user_settings.ini" hat noch den nachfolgenden Inhalt:

extension = apcu.so
extension = redis.so

[core]
memory_limit = 512M
upload_max_filesize = 512M
post_max_size = 512M

[apc]
apc.shm_size = 512M
apc.enable_cli = 1

Das PHP Profil für Nextcloud 24 habe ich auf mehreren Synos wie nachfolgend eingestellt.

PHP-Cache aktivieren

Erweiterungen aktivieren:
bcmath, bz2, curl, exif, ftp, gd, gettext, gmp, iconv, imagick, intl, ldap, mysqli,
openssl, pdo_mysql, posix, soap, sockets, sodium, ssh2, zip, zlib

Erweiterte Einstellungen -> Kern
Name Wert (Original -> Änderung)
memory_limit 128M -> 4G
post_max_size 32M -> 8G
upload_max_filesize 32M -> 8G
upload_tmp_dir /var/services/tmp -> /volume1/Freigegebener Ordner/nextcloud/data/upload-tmp
apc.enable_cli 0 -> 1
apc.shm_size 32M -> 512M
apc.ttl 0 -> 7200
opcache.enable_cli 0 -> 1
opcache.file_cache "" -> /volume1/web/.opcache
opcache.interned_strings_buffer 8 -> 32
opcache.memory_consumption 128 -> 512
opcache.revalidate_freq 2 -> 60
output_buffering 4096 -> 0
max_execution_time 240 -> 3600
max_input_time 60 -> 3600

Erweiterte Einstellungen -> FPM
FPM-Modus: Dynamisch
Max. Prozesse: 120
Kindprozesse bei Start: 12
Mindestanzahl Prozesse: 6
Maximalanzahl Prozesse: 18

Das läuft bei mir auf DS1618+, DS1821+, DS215+, DS716+II, DS720+ und DS920+ schon relativ flott.

Weitere Optimierungen kann man noch mit mysqltuner erreichen, aber immer schön vorsichtig und vor jedem Schritt eine Sicherung machen.
Vorgegangen bin ich zuerst nach der Anleitung von Jan-Dirk,
https://addictedtocode.de/nas-und-co/mariadb10-auf-einem-synology-nas-optimieren/
... und habe anschließend nach der Anleitung von Carsten Rieger eine passenden Mischung für meine DS gefunden.
https://www.c-rieger.de/nextcloud-installationsanleitung-apache2-fast-track/

Gruß
Crashandy
 
  • Like
Reaktionen: Tuxnet
@Crashandy

Das nenne ich mal eine aussagekräftige Antwort ;-)
Habe mal deine Werte übernommen, ca. 80% waren eh identisch.

Meinen .OPcache habe ich auf einen USB 3.0 Stick ausgelagert,

Das mit der MariasDB Optimierung bekomme ich nicht hin ( Brett vorm Kopf ).

Kannst du mal bitte deine mysqltuner.pl in den Anhang packen ?

Interessant wäre auch der Inhalt deiner my.cnf zu sehen
 
Zuletzt bearbeitet:
Hallo @Tuxnet,

zunächst muss unbedingt das Paket "Perl" installiert sein, dann muss noch die entsprechende PATH-Variable hinzugefügt werden.
PATH=$PATH:/usr/local/mariadb10/bin
Damit sind die Voraussetzungen geschaffen.
Alles muss als root ausgeführt werden, dazu nun folgende zwei Befehle:
aktuelle mysqltuner.pl herunterladen: wget mysqltuner.pl
Skript ausführen: perl index.html
Nun bekommst Du ein paar Vorschläge, welche Du Stück für Stück abarbeiten könntest. Leider siehst Du ein korrektes Ergebnis immer erst nach einer längeren Nutzungsdauer (Stunden, Tage, Wochen?) und dem erneuten Aufruf des Skriptes.

Meine letzte Optimierung habe ich in der my.conf auf der DS1821+ mit 32 GB RAM durchgeführt.
Einige Werte müssen entsprechend Deiner CPU und dem verwendeten RAM angepasst werden.

Den Wert "default-time-zone = 'Europe/Berlin'" solltest Du auf jeden Fall erst einmal auskommentieren oder weglassen, wenn Du im MariaDB die Standard-Zeitzone am Laufen hast. Das siehst Du in phpMyAdmin mit dem Befehl "SELECT @@global.time_zone, @@session.time_zone" und dem Ergebnis "SYSTEM".
Bei mir steht dort z.B. "Europe/Berlin", da ich es für eine andere SQL-Anwendung dringend benötige.

Gruß
Crashandy
 

Anhänge

Zuletzt bearbeitet:
  • Like
Reaktionen: Tuxnet
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat