Leistungs Tips¶
Die Leistung von ownCloud, ist wie jede LAMP application, abhängig von allen Komponenten des Stacks. Die Maximierung der Leistung kann durch die Optimierung der Vorgänge und Wechselwirkungen der zugrundeliegenden Netzwerk-Hardware, Betriebssysteme, Webserver, Datenbanken und Speicher erreicht werden.
Dieses Handbuch kann nicht alle möglichen Konfigurationen aufzeigen und wird statt dessen Tipps geben die ownCloud spezifisch sind oder die Ihnen den größten Nutzen versprechen.
SSL / Verschlüsselungs App¶
SSL (HTTPS) und Datei-Verschlüsselung / Entschlüsselung kann auf die AES-NI-Erweiterung eines Prozessors ausgelagert werden. Das kann sowohl diese Operationen beschleunigen als auch gleichzeitig die Verarbeitungsaufwand senken. Dies erfordert einen Prozessor, der das AES-NI instruction set verwendet.
Hier sind einige Beispiele, wie Sie überprüfen können, ob Ihre CPU / Enviroment die AES-NI-Erweiterung unterstützt:
- Für jeden CPU-Kern ist Folgendes vorhanden: grep flags /proc/cpuinfooder als Zusammenfassung für alle Cores ist Folgendes vorhanden: grep -m 1 ^flags /proc/cpuinfoWenn das Ergebnis erscheint, enthält jeder davon die entsprechende aes Erweiterung und zeigt damit an, dass dieser verfügbar ist.
- Unter Windows können Sie coreinfo ausführen, den Download finden Sie unter:wo Ihnen weiter Details zum Prozessors und ob Erweiterungen vorhanden sind, anzeiegt werden.Hinweis: Sie müssen möglicherweise diese Befehlsshell als Administrator ausführen, um eine Ausgabe zu erhalten.
- Suchen z.Bsp. auf der Intel-Webseite nach Ihrem verwendeten Prozessor, um zu erfahren welche Erweiterungen dieser unterstütztSie können einen Filter setzen, "AES New Instructions" um eine reduzierte Ergebnismenge zu erhalten.
- Für Versionen von OpenSSL > = 1.0.1, wird AES-NI nicht mit diese Engine arbeiten und sie wird das auch nicht mit dem openssl engine Kommando anzeigen. Es ist standardmäßig auf der unterstützten Hardware aktiv.Sie können die OpenSSL-Version via openssl version -a überprüfen.
- Wenn Ihr Prozessor AES-NI unterstützt, es aber nicht z.Bsp über grep oder Coreinfo auftaucht, wird sie vielleicht im BIOS deaktiviert sein.
- Wenn Ihr Environment virtualisiert läuft, prüfen Sie, ob Ihr Virtualisierungsanbieter dafür die Unterstützung bereitstellt.
OPcache Extension¶
OPcache verbessert die PHP Leistung, indem vorkompilierter Skript Bytecode in den gemeinsamen Speicher geschrieben wird, wodurch der Bedarf jede PHP-Anfrage erneut zu laden und die Skripte zu analysieren und zu entfernen sinkt. Diese Erweiterung ist mit PHP 5.5.0 gebündelt und in höheren Versionen, ab den PHP-Versionen 5.2, 5.3 und 5.4, steht es in der PECL zur Verfügung.
Memory Caching¶
ownCloud wurde geschrieben um die Vorteile der Speicher-Caching zu verwenden. Welche Backends zur Verfügung stehen, finden Sie in den verfügbaren Klassen in dem config.sample.php
Einige Backends werden für den lokalen Gebrauch konzipiert, während andere für den dezentralen Einsatz verwendet werden. Eine lokale Backends die sich lokal auf dem Server befinden, tun Dinge, wie Dateipfade zwischenspeichern, und werden nicht von anderen Servern im Cluster erkannt. Verteiltes Backends sind für die gesamte Instanz relevant, Sie tun Dinge, wie beispielsweise den Datenbank-Cache zwischenzuspeichern.
Um einen lokalen Backend aktivieren (APCU wird empfohlen) verwenden Sie die Option Config memcache.local. Um einen verteilten Backend zu verwenden, ermöglicht dies standardmäßig das ersetzen des Wertes memcache.local, durch memcache.distributed.
Wenn Sie den Memcached-Backend verwenden, müssen Sie Ihren Server in der Option Config unter memcached_servers konfigurieren. Wenn Sie den Redis Backend verwenden, müssen Sie den Server in der Option Config redis konfigurieren.
aktivieren des SPDY Protokolls¶
Ihr Webserver kann für die Verwendung des SPDY-Protokoll entsprechend konfiguriert werden, womit Sie die Gesamtleistung von ownCloud verbessern. Bitte schauen Sie in der Dokumentation zu Ihrem Webserver-Modul nach, wenn Sie mehr Infos benötigen:
Hinweis
Wenn Sie SPDY für Apache aktivieren möchten beachten Sie bitte die bekannten Probleme dieses Moduls, um Probleme nach der Aktivierung zu vermeiden.
versenden statischer Dateien über den Webserver¶
Sehen Sie dazu im Abschnitt Auslieferung statischer Dateien für eine bessere Leistung nach, wo Ihnen das entsprechend beschrieben wird und wir Ihnen die Vorteile erklären.
verwenden von Cron für eine bessere Leistung von Hintergrund-Jobs¶
Sehen Sie dazu im Abschnitt Hintergrund Jobs definieren nach, wo Ihnen das entsprechend beschrieben wird und wir Ihnen die Vorteile erklären.
verwenden von MySQL anstatt von SQLite¶
MySQL oder MariaDB sollte wegen der Leistungseinschränkungen von SQLite mit vielen gleichzeitige Anwendungen bevorzugt mit ownCloud verwendet werden.
Bei vielen Instanzen könnte man erwägen MySQLTuner zu starten um die Datenbank zu optimieren.
Sehen Sie dazu im Abschnitt Datenbank Konfiguration nach, wie Sie ownCloud für MySQL oder MariaDB konfigurieren. Wenn die Installation bereits auf SQLite läuft, dann ist es möglich, diese zu MySQL oder MariaDB zu konvertieren. Die Schritte dazu werden im Abschnitt Konvertieren des Datenbanktyps zur Verfügung gestellt.
Verbessern der geringen Leistung mit MySQL unter Windows¶
Auf Windows-Hosts, auf denen MySQL auf dem gleichen System läuft, sollte der Parameter dbhost in der config/config.php von localhost zu 127.0.0.1 geändert werden, um die Ladezeiten zu verbessern.
Siehe dazu auch unter dem Forum-Thread nach, wenn Sie mehr darüber erfahren möchten.
Nginx: cachen der ownCloud Gallery Thumbnails mit fastcgi_cache_purge¶
Nginx module prüfen¶
Kompilieren von Nginx mit dem nginx-cache-purge Modul¶
- Vorbereitungcd /optwget http://nginx.org/keys/nginx_signing.keysudo apt-key add nginx_signing.keysudo vi /etc/apt/sources.list.d/nginx.listFügen Sie folgende Zeilen (im Fall ersetzen {trusty} Ihren Distribution Namen):deb http://nginx.org/packages/mainline/ubuntu/ trusty nginxdeb -src http://nginx.org/packages/mainline/ubuntu/ trusty nginxDann machen Sie einsudo apt-get updateHinweis:Wenn Sie sich nicht übervorsichtig sind, werden die neuesten und besten Nginx Pakete und Features installiert, Sie müssen Nginx von ihrem Mainline-Repository aus installieren.Von der Nginx Homepage: "In der Regel sollten Sie Nginx von seinem Mainline-Repository aus jederzeit einsetzen können."Möchten Sie nur das Standard-Nginx aus der aktuellen Mainline aber ohne Kompilierung zusätzliche Module verwenden, führen Sie einfach sudo apt-get install nginx aus.
- Laden Sie Nginx von einer Quelle aus einem PPA Repository heruntercd /optsudo apt-get build-dep nginxsudo apt-get source nginx
- Kompilieren der Download-Modul(e) und konfigurieren der Compiler Argumentels -laBitte ersetzen Sie {release} durch das heruntergelade Releasecd /opt/nginx-{release}/debianWenn der Ordner "modules" nicht vorhanden ist, tun Sie Folgendes:sudo mkdir modulescd modulessudo git clone https://github.com/FRiCKLE/ngx_cache_purge.gitsudo vi /opt/nginx-{release}/debian/rulesFalls nicht vorhanden, fügen Sie die folgende Zeile am oberen Rahmen hinzu: #export DH_VERBOSE=1:MODULESDIR = $(CURDIR)/debian/modulesund am Ende jedes ./configure Kommandos für sie Folgendes an:--add-module=$(MODULESDIR)/ngx_cache_purgeVergessen Sie nicht, vorausgehenden Zeilen mit einem Backslash \ abzuschließen.Die Parameter können jetzt so aussehen:$(WITH_SPDY) \--with-cc-opt="$(CFLAGS)" \--with-ld-opt="$(LDFLAGS)" \--with-ipv6 \--add-module=$(MODULESDIR)/ngx_cache_purge
- Kompilieren und Installieren von Nginxcd /opt/nginx-{release}sudo dpkg-buildpackage -uc -bls -la /optsudo dpkg --install /opt/nginx_{release}~{distribution}_amd64.deb
- Überprüfen Sie, ob die Kompilierung und Installation des ngx_cache_purge Moduls erfolgreich warnginx -V 2>&1 | grep ngx_cache_purge -oEs sollte nun: ngx_cache_purgeDie Nginx Version mit allen Features kompiliert und installiert angezeigt werden:nginx -V 2>&1 | sed s/" --"/"\n\t--"/g
- Nginx auf weitere Updates sperren apt-getsudo dpkg --get-selections | grep nginxFür jede nginx Komponente die aufgeführt wird, tun sie Folgendes:sudo apt-mark hold <component>
- Regelmäßige Kontrollen für die Aktualisierung von nginxFühren Sie einen regelmäßigen Besuch auf der Nginx news page durch und führen Sie bei Aktualisierungen die Schritte 2 bis 5 erneut aus.
Konfigurieren Sie Nginx mit dem nginx-cache-purge Modul¶
- VorbereitungErstellen Sie ein Verzeichnis, in dem Nginx die zwischengespeicherten Miniaturansichten speichern soll. Verwenden Sie einen Pfad, der zu Ihrer Umgebung passt. Ersetzen {path} mit dem Pfad der von Ihnen verwendet wird, beispielsweise den Pfad:sudo mkdir -p /usr/local/tmp/cache
- Konfigurationsudo vi /etc/nginx/sites-enabled/{your-ownCloud-nginx-config-file}Hinweis: Der keys_zone / fastcgi_cache Name und der {path} müssen einzigartig für jede Instanz von ownCloud Server mit Nginx sein !Fügen Sie am Anfang, aber Außerhalb des server{} Blocks Folgendes ein:fastcgi_cache_path {path} levels=1:2 keys_zone=OWNCLOUD:100m inactive=60m;Fügen Sie ingerhalb des server{} Blocks, als ein Beispiel für eine Konfiguration Folgendes ein:set $skip_cache 1;# POST requests and urls with a query string should always go to PHPif ($request_uri ~* "thumbnail.php") {set $skip_cache 0;}fastcgi_cache_key "$scheme$request_method$host$request_uri";fastcgi_cache_use_stale error timeout invalid_header http_500;fastcgi_ignore_headers Cache-Control Expires Set-Cookie;location ~ \.php(?:$|/) {fastcgi_split_path_info ^(.+\.php)(/.+)$;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param HTTPS on;fastcgi_pass php-handler;fastcgi_cache_bypass $skip_cache;fastcgi_no_cache $skip_cache;fastcgi_cache OWNCLOUD;fastcgi_cache_valid 60m;}Hinweis in Bezug auf den fastcgi_pass Parameter:Verwenden Sie das, was zu Ihrer Konfiguration passt. Im obigen Beispiel upstream wurde Nginx in einer globalen Konfigurationsdatei definiert.Dies kann dann so aussehen:upstream php-handler {server 127.0.0.1:9000;# or#server unix:/var/run/php5-fpm.sock;}
- Testen der Konfigurationsudo service nginx restart
- Öffnen Sie Ihren Browser und löschen Sie den Cache.
- Anmeldung zu Ihrem ownCloud Beispiel, öffnen Sie die Galerie-App bewegen sich durch Ihre Ordnerund beobachten Sie es, während die Thumbnails zum ersten Mal generiert werden.
- Sie können auch mit z.Bsp. mit htop Ihre Systemlast beobachten, während die Miniaturansichten verarbeitet werden.
- Gehe zu einer anderen App oder melden Sich ab und loggen Sie sich erneut ein.
- Wieder Öffnen Sie die Galerie-App und navigieren Sie zu den Ordnern, die Sie vor abgerufen haben.Ihre Thumbnails sollte mehr oder weniger sofort angezeigt werden.
- htop wird die zusätzliche Belastung bei der Verarbeitung, im Vergleich zu der hohen Last vorher, anzeigen.