Cum să repari încărcarea lentă a WordPress la prima accesare (pe server local)?

1 feb. 2018, 02:36:34
Vizualizări: 17.1K
Voturi: 11

Rezumat

Accesarea unei pagini WordPress pentru prima dată durează aproximativ 5-7s pe un server local, față de 300-500ms pentru încărcările ulterioare. Este de aproximativ 10 ori mai lent la prima accesare, ceea ce este inacceptabil. Cache-ul browserului este dezactivat în instrumentele de dezvoltare. Cum se poate repara?

Informații detaliate

Am observat că atunci când accesez o pagină WordPress pentru prima dată (după ce am șters tot în Chrome), acea pagină durează aproximativ 5-7s să se încarce, ceea ce este inacceptabil pentru un server local. Cu toate acestea, după prima încărcare, accesările ulterioare durează doar 0,3-0,5s sau 300-500ms (tot relativ lent pentru server local, dar mult mai rapid decât prima încărcare). Pentru a elimina problema cache-ului, l-am dezactivat din instrumentele de dezvoltare ale browserului, astfel încât toate cererile de pagină, indiferent dacă sunt prima sau ulterioare, accesează fișierele web direct de la server.

Teste efectuate până acum

La început am crezut că este o problemă de server, așa că am mutat totul pe localhost pentru a vedea dacă problema persistă. Și într-adevăr, așa este.

Am crezut și că ar putea fi o problemă DNS, așa că am verificat fișierul httpd.conf și fișierele DNS din Windows, unde am găsit un singur IP, 127.0.0.1. De asemenea, am actualizat host-ul în config.php al WordPress și în baza de date la 127.0.0.1. Totuși, încărcarea lentă la prima accesare persistă. Dacă ar fi o problemă DNS, fie pagina nu s-ar încărca deloc, fie s-ar încărca într-un timp consistent. În schimb, lentitudinea afectează doar prima încărcare.

Repornirile serverului sau oprirea completă și repornirea nu au niciun efect asupra timpilor de încărcare. Este vorba doar dacă este prima accesare de către client sau nu.

Am dat peste un post despre nginx & php-fpm foarte lent la prima accesare, unde utilizatorul a crezut inițial că este vina serverului, dar s-a dovedit că era CMS-ul. Pe baza experienței mele, WordPress ar putea fi cauza încărcării lente la prima accesare. Totuși, nu știu ce parte din WordPress trebuie abordată pentru a rezolva problema. Poate cineva să mă ajute să repar încărcarea lentă a WordPress la prima accesare (pe server local)?

Server

WAMP (localhost), 32 de nuclee Xeon 2.7Ghz, 24GB RAM, HDD SATAIII, OpCache activat prin Zend Engine

WordPress

Fără plugin-uri, versiunea 4.9

Client

Chrome & Firefox cu cache dezactivat în Instrumentele de Dezvoltare, cUrl

8
Comentarii

Ai verificat cache-ul de interogări din MySQL? Ai o tabelă wp_options extrem de mare?

janh janh
1 feb. 2018 05:37:42

.nu este mare, doar 4 articole, dar cred că a fost dezactivată implicit https://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/

Jones G Jones G
1 feb. 2018 11:42:45

wp_options, nu wp_posts, ar trebui să beneficieze mult de cache-ul de interogări, dar cu un site atât de mic, sună puțin probabil ca WP să fi acumulat multe acolo. Poți provoca comportamentul prin repornirea php-fpm/nginx/mysql?

janh janh
1 feb. 2018 11:48:00

Repornirea/oprirea serverului nu a declanșat problema, am golit și opcache înainte de a reporni/opri serverul. Am observat că încărcarea paginii durează doar 0.3s, așa că presupun că serverul meu este întotdeauna pregătit să servească fișiere chiar și după o repornire/oprire completă + pornire.

Jones G Jones G
1 feb. 2018 12:02:57

Poți reproduce problema folosind curl? Afișează jurnalul de acces pentru Apache cereri suplimentare?

janh janh
1 feb. 2018 12:10:48

Salut, am repornit atât clientul cât și serverul. Doar accesul unui client nou la site poate declanșa problema. Am verificat jurnalul de acces Apache și nu era nimic în el, este gol. Pot încerca să folosesc curl dar nu știu cum să-l folosesc pentru această problemă? Pot să cer niște comenzi curl?

Jones G Jones G
1 feb. 2018 12:24:01

continuăm această discuție în chat.

janh janh
1 feb. 2018 12:24:24

Cred că am găsit cauza. De fiecare dată când se întâmplă asta, am observat că wp-cron pornește, l-am dezactivat pentru moment și încă testez.

Jones G Jones G
10 feb. 2018 02:59:51
Arată celelalte 3 comentarii
Toate răspunsurile la întrebare 1
1

Viteza de încărcare a paginii unui site web (WordPress) depinde de mulți factori.

  1. Interogări MySql
  2. Optimizarea imaginilor
  3. Fișiere CSS (cu cât sunt mai multe fișiere CSS, cu atât crește timpul de încărcare și viteza paginii).
  4. Fișiere JavaScript (cu cât sunt mai multe fișiere JS, cu atât crește timpul de încărcare și viteza paginii).
  5. Amânarea analizei JavaScript
  6. Minificarea JavaScript
  7. Minificarea CSS
  8. Activarea compresiei gzip
  9. Utilizarea cache-ului browserului
  10. Minimizarea dimensiunii cererii Și multe altele.

Testează-ți site-ul cu https://gtmetrix.com și începe să remediezi problemele pe care site-ul ți le prezintă. Pentru asta, va trebui să pui serverul local online cu un IP.

Viteza și încărcarea paginii necesită multă atenție și reprezintă un proces, nu o singură problemă.

25 aug. 2018 16:30:29
Comentarii

Salut, mulțumesc pentru informație. Pe baza testelor făcute până acum, se pare că problema este PHP-ul din WordPress. Am reconstruit site-ul folosind același server, dar am utilizat propriile mele coduri PHP. Acum, site-ul complet încarcă în doar 34-170ms față de 300ms - 500ms pentru WordPress pe localhost.

Jones G Jones G
28 sept. 2018 18:45:04