2016-05-30 3 views
1

Ich benutze WordPress-Framework und arbeiten auf dedizierten Server von Name-billig und nur eine Website läuft auf diesem Server. Auch danach bekomme ich Wasserfallzeit im Bereich von 500ms, aber ich will es um 100ms schaffen. Dies ist meine Website (http://ucbrowserdownload.net/) und der Wasserfall Sie können sehen, dass alles von meinem Ende perfekt ist, aber immer noch keine Lösung erhalten. Kann auch prüfen, http://labnol.org/ Diese Website ist auch in WordPress und mit dem gleichen Thema, auch ich rufe sehr weniger Bilder oder Blogs auf meiner Indexseite sogar ich bin ein großer Wasserfall Fehler. Möchten Sie wissen, wie Sie all diese Probleme lösen und wissen, wo das Problem entweder in WordPress oder im Theme oder im Host liegt. Völlig stecken geblieben und keine Lösung aus den letzten Wochen. Ihre Hilfe wird sehr geschätzt. Danke. enter image description herewie die Zeit des ersten Bytes zu reduzieren

+0

Ich weiß nicht, warum Leute negative Rate geben, meiner Meinung nach kennen sie die Antwort nicht. – Gnziet

+0

Manchmal bietet das ** [Google Pageseed Insights] (https://developers.google.com/speed/pagespeed/insights/) ** Tool einige gute Hinweise. Achten Sie auf die Reihenfolge des Ladens von Ressourcen (einige Ressourcen blockieren das Rendern bis zum Laden). – YvesLeBorg

+1

Das ist grundsätzlich richtig. Sie können die Antwort nicht wissen, denn es gibt ungefähr 12831239 Gründe für Ihre Website sind langsam. Alles, was wir sehen können, ist, dass Ihr Server langsam ist und ungefähr 400ms benötigt, nur um Ihre 4kb-Hauptseite zu generieren. Sie sollten allgemeine Tipps zur Leistung ausprobieren, [google page insights] (https://developers.google.com/speed/pagespeed/insights/), [Apache-Leistungsoptionen] (http://httpd.apache.org/docs) /current/misc/perf-tuning.html) und [wordpress optimization] (https://codex.wordpress.org/WordPress_Optimization) (und wahrscheinlich viele weitere, siehe [google] (https://www.google.com)). – Solarflare

Antwort

0

Original Source

Optimierung von Nginx

Optimale Nginx Konfiguration in diesem Artikel vorgestellt. Noch einmal kurz die bereits bekannten Parameter durchlaufen und fügen Sie einige neue , die TTFB direkt beeinflussen.

Verbindungen

Zuerst müssen wir die Zahl der "Arbeiter" Nginx definieren. worker_processes Nginx Jeder Workflow kann viele -Verbindungen verarbeiten und ist mit den physischen Prozessorkernen verbunden. Wenn Sie genau, wie viele Kerne in Ihrem Server kennen, können Sie die Nummer selbst festlegen, oder Vertrauen Nginx:

worker_processes auto; 
# Determination of the number of working processes 

Darüber hinaus müssen Sie die Anzahl der Verbindungen angeben:

worker_connections 1024; 
# Quantification of compounds by one working process, ranging from 1024 to 4096 

Anfragen

Um den Web-Server kann die maximale Anzahl von Anfragen verarbeiten, ist es notwendig, eine ausgeschaltete Standard-Anweisung multi_ verwenden akzeptieren:

multi_accept on; 
# Workflows will accept all connections 

Bemerkenswert ist, dass die Funktion gleichzeitig nur dann, wenn eine große Anzahl von Anfragen nützlich sein wird. Wenn die Anforderung nicht so viel, es macht Sinn, Arbeitsprozesse zu optimieren, so dass sie nicht in funktionierten vergeblich:

accept_mutex on; 
# Workflows will take turns Connection 

Verbesserung TTFB und Antwortzeit des Servers hängt von den Richtlinien TCP_NODELAY und tcp_nopush:

on tcp_nodelay; 
tcp_nopush on; 
# Activate directives tcp_nodelay and tcp_nopush 

Wenn Sie zu sehr ins Detail gehen nicht, die beiden Funktionen erlauben Sie deaktivieren bestimmte Merkmale des TCP, die in den 90er Jahren relevant waren, , wenn das Internet war nur an Dynamik gewinnt, aber nicht machen Sinn in die moderne Welt.Die erste Anweisung sendet die Daten, sobald sie verfügbar sind ( sind verfügbar) (den Nagle-Algorithmus umgehen). Die zweite ermöglicht Ihnen senden Sie eine Header-Antwort (Webseite) und den Anfang der Datei, warten auf das Füllen des Pakets (dh enthält TCP_CORK). So kann der Browser die Webseite vorher anzeigen.

Auf den ersten Blick sind die Funktionen widersprüchlich. Daher sollte die Direktive tcp_nopush in Verbindung mit der Sendedatei verwendet werden. In diesem Fall sind die Pakete vor dem Versand gefüllt, wie Richtlinie ist viel schneller und optimaler als die Methode des Lese + schreiben. Nachdem das Paket voll ist, deaktiviert Nginx automatisch tcp_nopush, und tcp_nodelay bewirkt, dass der Socket die Daten sendet. sendfile aktivieren ist sehr einfach:

sendfile on; 
# Enable more effective, compared to read + write, file sending method 

So ist die Kombination aller auf dem Netz die Last drei Richtlinien reduziert und beschleunigt von Dateien das Senden.

Puffer

Eine weitere wichtige Optimierung wirkt sich auf die Größe des Puffers - wenn sie sind zu klein, Nginx wird oft auf die Scheiben zu groß sind - schnell die RAM aufzufüllen. Nginx-Puffer Um dies zu tun, müssen Sie vier Direktiven einrichten. Client_body_buffer_size und client_header_buffer_size legen Sie die Puffergröße für den Körper und lesen Sie die Client-Anfrage-Header. Von client_max_body_size legt die maximale Größe der Clientanforderung fest, und large_client_header_buffers gibt die maximale Anzahl und Größe der Puffer zum Lesen großer Anforderungsheader an.

Die optimalen Puffereinstellungen werden wie folgt aussehen:

10K client_body_buffer_size; 
client_header_buffer_size 1k; 
of client_max_body_size 8m; 
large_client_header_buffers 2 1k; 
# 10k buffer size on the body of the request, 1 KB per title, 8MB to the query buffer and 2 to read large headlines 

Timeouts und Keep-Alive-

Die richtige Konfiguration Standby-Zeit und Keep-Alive kann auch deutlich Server Reaktionszeiten verbessern.

Richtlinie client_body_timeout und client_header_timeout eingestellten Zeitverzögerung auf den Körper und das Lesen der Request-Header:

client_body_timeout 10; 
client_header_timeout 10; 
# Set the waiting time in seconds 

Im Falle der fehlenden Antwort vom Client reset_timedout_connection verwenden, können Sie Nginx solche Verbindungen deaktivieren angeben:

reset_timedout_connection on; 
# Disable connections timed-out 

Richtlinie keepalive_timeout die Wartezeit vor dem Anschlag Verbindung eines Set d keepalive_requests begrenzt die Anzahl der Keep-Alive-Anfragen von dem gleichen Client:

keepalive_timeout 30; 
keepalive_requests 100; 
# Set the timeout to 30 and limitations 100 on client requests 

Well send_timeout die Wartezeit in der Übertragungsantwort setzt zwischen zwei Schreiboperationen:

send_timeout 2; 
# Nginx will wait for an answer 2 

Caching

Durch das Aktivieren des Caching wird die Antwortzeit des Servers erheblich verbessert. Nginx Cache Methoden sind im Material über das Caching mit Nginx detaillierter ausgelegt, aber in diesem Fall die Einbeziehung von wichtigen Cache-Kontrolle. Nginx ist in der Lage, eine Anfrage an redkoizmenyaemyh Cache-Daten, , die oft auf der Client-Seite verwendet werden, zu senden. Um dies zu tun, um den Server Abschnitt möchten Sie eine Zeile hinzufügen:

. Location ~ * (jpg | jpeg | png | gif | ico | css | js) $ {expires 365d;} 

Targets Dateiformate und Dauer Cache

Auch schadet es nicht, Informationen über häufig verwendete Dateien zwischenzuspeichern:

open_file_cache max = 10000 = 20s the inactive; 
open_file_cache_valid 30s; 
open_file_cache_min_uses 2; 
open_file_cache_errors on; 
# Enables the cache tags 10 000 files in 30 seconds 

open_file_cache gibt die maximale Anzahl von Dateien an, für die Informationen gespeichert werden, und die Speicherzeit. open_file_cache_valid legt die Zeit fest, nach der Sie die Relevanz der Informationen überprüfen müssen, open_file_cache_min_uses gibt die Mindestanzahl von Verweisen auf die Datei seitens der Kunden an und open_file_cache_errors enthält Caching-Fehlerbehebungsdateien.

Anmeldung

Dies ist ein weiteres Merkmal, das die Leistung des gesamten Servers und deutlich reduzieren kann dementsprechend die Reaktionszeit und TTFB. So die beste Lösung ist einfach log und speichern Informationen über kritische Fehler nur zu deaktivieren:

off the access_log; 
the error_log /var/log/nginx/error.log crit; 
# Turn off the main logging 

gzip-Kompression

Usefulness gzip schwierig ist, zu überschätzen. Komprimierung kann den Verkehr erheblich reduzieren und den Kanal entlasten. Aber er hat eine Nachteil - Zeit komprimieren müssen. Also muss es auf deaktivieren TTFB und Server-Reaktionszeit zu verbessern.Gzip Zu diesem Zeitpunkt können wir nicht empfehlen, Gzip aus zu deaktivieren, da die Komprimierung das Time To Last Byte verbessert, dh die Zeit, die für eine vollständige Seitenladung benötigt wird. Und dies ist in den meisten Fällen ein wichtiger Parameter. Auf TTFB und Verbesserung der Server-Reaktionszeit großen Einfluss großen Implementierung von HTTP/2, enthält eine integrierte Methoden für Header-Komprimierung und Multiplexing. So dass in die Zukunft deaktivieren kann Gzip wird nicht so prominent wie es jetzt ist.

PHP-Optimierung: FastCGI in Nginx

Alle Standorte verwenden moderne Servertechnologie. PHP zum Beispiel, das ist auch wichtig, um zu optimieren. In der Regel öffnet PHP eine Datei, überprüft und kompiliert den Code und führt dann aus. Solche Dateien und Prozesse können eingestellt werden, , so kann PHP das Ergebnis für redkoizmenyaemyh Dateien mit OPcache Modul zwischenspeichern. Und Nginx, mit PHP über FastCGI-Modul verbunden, kann das Ergebnis des PHP-Skripts speichern, um dem Benutzer einen Augenblick zu senden.

Die wichtigste

Optimierung der Ressourcen und die richtigen Einstellungen für den Webserver - die wichtigsten Einfluss TTFB und Antwortzeit des Servers Faktoren. Vergessen Sie auch nicht, regelmäßige Software-Updates für die stabile Version, die zu optimieren und die Leistung zu verbessern sind.

+0

Ausgezeichnete, gründliche Antwort! :) – Will

+1

Immer Quelle bereitstellen, nur einfach kopieren/einfügen ... Credits gehen zu http://thehighload.com/post/TTFB+analysis+and+optimization Und bist du sicher, OP läuft Server unter Nginx? –

+0

können Sie erklären, wie Sie die obigen Schritte verwenden. – Gnziet

Verwandte Themen