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. wie die Zeit des ersten Bytes zu reduzieren
Antwort
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.
Ausgezeichnete, gründliche Antwort! :) – Will
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? –
können Sie erklären, wie Sie die obigen Schritte verwenden. – Gnziet
- 1. Wie CPU-Zeit jquery.min.js zu reduzieren?
- 2. wie die Zeit Komplexität dieses Codes zu reduzieren
- 3. Web - Video: Bytes Bereich zu Zeit
- 4. Entfernen Sie die ersten 16 Bytes?
- 5. die Größe des Selenrahmens reduzieren
- 6. Wie die Zeit zu reduzieren, die es dauert, an SQL-Datenbank in Python zu hängen
- 7. Wie bekomme ich nur die ersten zehn Bytes einer Binärdatei?
- 8. Wie viele Bytes können im ersten TCP-Fenster gesendet werden?
- 9. Wie kann man die Einrückung zwischen der ersten und der zweiten Linie innerhalb des Kreises reduzieren?
- 10. C++ Größe der Speicherseite von 4096 Bytes reduzieren
- 11. Reduzieren mehrere Tabellen die Geschwindigkeit des Ergebnisses?
- 12. php: wie die CPU-Nutzung zu reduzieren
- 13. Wie Internetgeschwindigkeit zu reduzieren
- 14. Aggregieren ohne die Dimension des Datenrahmens zu reduzieren
- 15. Algorithmus, um Spitzenverbrauch im Laufe der Zeit zu reduzieren?
- 16. Ist es möglich, die Kontextwechselzeit zu reduzieren
- 17. Reduzieren Sie die Zeit zum Erstellen von PHP
- 18. FNV-1A Hash - xoring 4 Bytes zu einer Zeit
- 19. Speicher des Java-Prozesses reduzieren
- 20. Wie XMLHttpRequest Zeitverzögerung zu reduzieren?
- 21. Kann nicht herausfinden, wie zu beheben, reduzieren/reduzieren Konflikt
- 22. Wie drucke ich die ersten n Bytes, wenn die Länge der Zeichenfolge größer als n ist?
- 23. Wie zwei Arrays von Bytes zu vergleichen
- 24. Größe des PNG-Speichers reduzieren
- 25. Bilder komprimieren, um die Dateigröße zu reduzieren
- 26. Wie gucke ich auf die ersten zwei Bytes in einem InputStream?
- 27. mongoDB Karte/reduzieren minus die reduzieren
- 28. Wie kann ich die Zeit reduzieren, die MPAndroidChart zum Anzeigen von Daten benötigt?
- 29. FreeMarker-Layouts, um die Vorlagenredundanz zu reduzieren?
- 30. Was könnte die richtige Regex sein, um die ersten paar Bytes in der Datei mit fester Größe zu lesen und die restlichen Bytes aus dem ersten Regex-Teil (. *) In Ruby zu lesen?
Ich weiß nicht, warum Leute negative Rate geben, meiner Meinung nach kennen sie die Antwort nicht. – Gnziet
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
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