Ako znížiť zaťaženie servera pomocou admin-ajax vo WordPress. Ako zrýchliť WordPress – zbaviť sa admin-ajaxu Úprava frekvencie požiadaviek na server

Ahojte všetci. Pokračujeme v téme zrýchlenia WordPress stránky. V článku sme zo súborov odstránili nepotrebné veci, no ešte nie všetko. Vo všeobecnosti je dobrá vec na WordPress, že vám umožňuje zmeniť kód tak, ako chcete, aby vyhovoval rôznym želaniam.

Pri kúpe hostingu potom, samozrejme, odhadnete, koľko pamäte potrebuje stránka a aká bude záťaž. A ak máte obmedzené finančné prostriedky, mali by ste tieto parametre uložiť.

V motore je taký mechanizmus - HeartBeat API. Prečo je to potrebné? Čo to je?

Je zodpovedné za HeartBeat API

  • pre automatické ukladanie;
  • na zablokovanie stránky alebo príspevku pre všetkých ostatných správcov stránok, kým tam niečo upravujete;
  • na aktualizáciu informácií o prítomnosti používateľa v konzole.

Chápete, dúfam, že v tejto chvíli jednoducho dochádza k požieraniu zdrojov, pretože neustále prichádzajú požiadavky na hosťovanie do súboru admin-ajax.php. A ak chcete otvárať niekoľko kariet administračného panela naraz, potom je to úplný trapas. Prepáčte mi ten žargón. Požiadavky sa odosielajú autonómne pre každú kartu.

V podstate HeartBeat API je mechanizmus s najnáročnejšími zdrojmi v motore WordPress.

Potrebujete takýto mechanizmus? Samozrejme, každý sa rozhodne sám za seba. ja to nepotrebujem.

Predpokladá sa, že má zmysel ho zakázať, ak ste jediným správcom, a tiež ak máte na svojom účte dostatok zdrojov, ale kým je správca v konzole, zaťaženie sa zvyšuje a výrazne.

Podľa mojich pozorovaní sa po vypnutí HeartBeat API znížil objem obsadenosti mojej stránky takmer 2,5-krát! Myslím to vážne. Škoda, že som neurobil snímku obrazovky, ale nechcem sa vrátiť do pôvodného stavu.

Ako zrýchliť web WordPress vypnutím rozhrania HeartBeat API

Vypnúť HeartBeat API kód

Všetko je veľmi jednoduché. Musíte ho pridať na začiatok súboru functions.php, hneď za značku

Add_action("init", "stop_heartbeat", 1); funkcia stop_heartbeat() ( wp_deregister_script("heartbeat"); )

A budete šťastní.

Pozor! Tento kód nemusí byť vhodný pre vašu stránku. Všetko závisí od nainštalovanej témy, pluginov a nastavení. Môžete to skúsiť a ak je kód nekompatibilný s akýmkoľvek prvkom stránky alebo sa niečo pokazí a nefunguje, vždy môžete všetko vrátiť späť. Stačí vymazať kód.

Doplnok HeartBeat Control

Nevyhovujú vám kódy a bojíte sa poškodenia vašej stránky? Je tu pre vás také riešenie.

Nainštalujte doplnok HeartBeat Control (vyberte pluginy v konzole, nainštalujte nový, vyhľadajte plugin, nainštalujte a aktivujte).

Prejdite do nastavení (v konzole Tools -> HeartBeat Control). V nastaveniach si môžete vybrať z nasledujúcich možností:

1. Či zakázať funkciu HeartBeat pre celú stránku alebo ju použiť pre niektoré sekcie.

2. Môžete a mali by ste upraviť frekvenciu požiadaviek na súbor admin-ajax.php. Pri inštalácii sa s najväčšou pravdepodobnosťou uvádza 15 sekúnd. Ak zmeníte povedzme na 30 sekúnd, spotreba zdrojov pre tieto požiadavky sa zníži o 25 %! A ak čas predĺžite ešte viac, potom ešte viac. Pôsobivé, však?

Pozor!

  • Vypnutím rozhrania HeartBeat API sa vypne funkcia automatického ukladania. Z času na čas uložte strany a záznamy pri ich úprave (podľa potreby).
  • K deaktivácii rozhrania HeartBeat API dochádza v špecifickej šablóne. Ak zmeníte šablónu, všetko sa musí urobiť znova.
  • Ak ste aktualizovali aktuálnu tému, musíte po aktualizácii zopakovať vypnutie.

Veľa šťastia všetkým!

2016-05-05T09:48:44+00:00 Nádej WordPress ako urýchliť wordpress

Ahojte všetci. Pokračujeme v téme zrýchlenia WordPress stránky. V článku Ako zrýchliť WordPress minifikáciou CSS, HTML a Javascriptu sme zo súborov odstránili nepotrebné veci, no nie všetko. Vo všeobecnosti je dobrá vec na WordPress, že vám umožňuje zmeniť kód tak, ako chcete, aby vyhovoval rôznym želaniam. Keď si kupujete hosting, potom, samozrejme, zvažujete...

Nadežda Trofimová [e-mail chránený] Blogová stránka správcu

Mohlo by vás tiež zaujímať:

Ako vytvoriť favicon pre webovú stránku

Favicon je krásna ikona, ktorú každý vidí vedľa názvu stránky v prehliadači. Favicon umožňuje vašej stránke vyniknúť v záložkách prehliadača aj...

Krásne tlačidlá pre stránku

Pekný deň všetkým. Zrazu sú ľudia, ktorí chcú umiestniť krásne tlačidlá na svoje webové stránky, ale nemôžu ich nájsť. V skutočnosti som to skúšal vo vyhľadávačoch...

Príklad 404 strán

Dobrý deň, milý čitateľ môjho blogu. Tento článok je absolútne o ničom, len som sa konečne dostal na stranu 404.

Ako a kde sa píšu značky Title a Description

Čo sú značky Title a Description? Tieto značky sú potrebné na optimalizáciu vášho webu. Ak sú značky napísané nesprávne, vyhľadávače nebudú indexovať váš článok. Veľa...

Pre lepšie SEO a používateľskú skúsenosť odborníci vždy odporúčajú pre koncového používateľa. V tomto kontexte, ak váš web navštevuje veľa používateľov, hlavný panel WordPress môže reagovať pomaly.

Pri testovaní rýchlosti vášho webu WordPress pomocou online nástrojov na testovanie rýchlosti ste si možno všimli, že súbor admin-ajax.php zodpovedný za pomalé načítanie. V tomto článku vysvetlíme o tomto súbore a o tom, ako môžete znížiť čas odozvy servera a využitie procesora znížením počtu požiadaviek generovaných admin-ajax.php.

Čo je admin-ajax.php vo WordPress?

Už v roku 2013 WordPress predstavil WordPress Heartbeat API, ktoré poskytovalo niekoľko dôležitých funkcií, ako je funkcia automatického ukladania po vypršaní prihlásenia a upozornenie na zákaz, keď iný používateľ píše alebo upravuje príspevok na WordPress.

Dve veľmi charakteristické vlastnosti Heartbeat API:

1. Automatické ukladanie

Vždy, keď uložíte koncept príspevku a budete na ňom pokračovať, WordPress automaticky uloží vaše pridané príspevky. Existuje jasný rozdiel medzi automatickým a manuálnym ukladaním projektu. Pozrite si nasledujúcu snímku obrazovky, ktorá zobrazuje oba typy ukladania:

2. Blokovať správu

Vždy, keď sa pokúsite upraviť príspevok, na ktorom pracuje iný používateľ, vyskočí varovanie o situácii. K dispozícii máte tri akcie.

Vyššie uvedené funkcie umožňuje rozhranie WordPress Heartbeat API, ktoré vytvára spojenie medzi serverom a prehliadačom pre zodpovedajúcu správu a odpovede.

Rozhranie WordPress Heartbeat API generuje požiadavky na komunikáciu so serverom a spúšťa udalosti na prijímanie/odpovedanie údajov. To vo všeobecnosti zvyšuje zaťaženie servera a v konečnom dôsledku spomaľuje panel správcu WordPress.

Živý príklad

Prihlásili sme sa do hlavného panela WordPress a začali upravovať príspevok. Ďalej sme kartu nechali niekoľko minút otvorenú a začali sme prehliadať ďalšie karty. Prístrojový panel je stále v systéme a je to vidieť admin-ajaxneustále posiela požiadavky.

Podľa vyššie uvedeného tiketu admin-ajax.php vo WordPress generuje požiadavky každých 15 sekúnd. Požiadavkou môže byť akékoľvek pripojenie k serveru.

Zrýchlite administračný panel WordPress

Ak chcete zrýchliť backend WordPress, najlepším spôsobom je vypnúť Heartbeat API alebo ho aspoň nastaviť na dlhšie časové obdobie, aby negenerovalo požiadavky na server každých pár sekúnd.

Nainštalujte doplnok Heartbeat Control

Prihláste sa do svojho správcu WordPress a prejdite na Pluginy >> Pridať nové, Nájsť Kontrola srdcového tepu, Inštalácia A Aktivovať jeho.

Prejdite na kartu Nastavenia >> Ovládanie nastavení srdcového tepu. Tam nájdete tri rozbaľovacie ponuky na konfiguráciu doplnku.

Môžete vybrať oblasť, kde bude rozhranie Heartbeat API fungovať. Na výber sú tri možnosti:

  • Informačný panel WordPress: Toto povolí rozhranie Heartbeat API na hlavnom paneli WordPress.
  • Frontend: Toto povolí API vo webovom rozhraní.
  • Editor správ: Toto políčko začiarknite, ak chcete, aby rozhranie Heartbeat API povolilo funkcie automatického ukladania a blokovania pošty.

Túto možnosť vyberte, ak chcete, aby bolo rozhranie WordPress Heartbeat API na určitých miestach zakázané. Pri výbere miesta buďte opatrní, pretože rozhranie WordPress Heartbeat API môžu používať aj iné doplnky. Ak ste jediným používateľom backendu WordPress, navrhol by som ho všade vypnúť a potom skontrolovať, či neporušuje webovú stránku. Ak má však vaša stránka viac ako jedného používateľa, ktorý pravidelne prispieva, odporúčame vám povoliť rozhranie Heartbeat API iba na stránkach s úpravami príspevkov.


Táto rozbaľovacia ponuka vám umožňuje nastaviť časový interval v rozsahu od 0 do 300 sekúnd na vykonanie požiadaviek správcu Ajax. Ak ho nainštalujete na 120 sekúnd, potom sa požiadavka generuje každých 120 sekúnd. To výrazne zníži zaťaženie servera. Prispôsobte si ho podľa svojich potrieb.

Vytváranie viacerých pravidiel

Na základe vašich požiadaviek môžete vytvoriť viacero pravidiel. Napríklad chcete, aby sa WordPress spúšťal každých 120 sekúnd, ale po úprave sa spúšťal 60 sekúnd. Aby ste to dosiahli, musíte vytvoriť dve pravidlá. Jeden pre informačný panel WordPress a druhý pre editor príspevkov a nastavte ich frekvenciu na 120 a 60.

Teraz, keď máte všetko nastavené, je čas skontrolovať, ktoré pluginy spomaľujú váš web pomocou súboru admin-ajax.php.

Prejdite na GTmetrix, zadajte adresu URL svojej stránky. Analýza stránky zaberie niekoľko minút. Potom prejdite na kartu Waterfall a uvidíte, ako dlho trvá pripojenie a odpoveď súboru. Prejdite trochu nadol a zistite, či je tam záznam POST admin-ajax.php. Ak áno, rozbaľte ho a prejdite na kartu Príspevok. Tu môžete identifikovať vinníka. V našom prípade plugin „desktop switch“ používa súbor admin-ajax.php a neustále posiela požiadavky na server. Toto je čas na rozhodnutie, či ho nahradiť iným doplnkom alebo ho odstrániť.

Záverečné slová

Vzhľadom na svoju sadu funkcií je rozhranie Heartbeat API na vašom webe WordPress veľmi užitočné. Ak sa však nepoužíva správne, môže predĺžiť čas načítania na backende WordPress a na samotnom webe a posielať požiadavky tam a späť do WordPress.

Existujú len dve riešenia tohto problému. Alebo zakázať Heartbeat API/povoliť ho len na niekoľkých miestach.

Ak používate akýkoľvek doplnok na ukladanie do vyrovnávacej pamäte, ako napríklad W3TC, nezabudnite vypnúť vyrovnávaciu pamäť objektov. To tiež zrýchli váš informačný panel WordPress.

Ak máte nejaké návrhy alebo požiadavky, neváhajte zanechať komentár nižšie.

Bežným scenárom pri práci s WordPress je diagnostikovanie zvýšeného používania admin-ajax.php. Ak už nejaký čas pracujete s WordPress, s najväčšou pravdepodobnosťou ste sa s týmto problémom stretli pri spustení testov rýchlosti tretích strán alebo pri kontrole protokolov prístupu na server. Zvýšené používanie admin-ajax.php je zvyčajne spojené s používaním doplnkov tretích strán alebo častými požiadavkami, ktoré nemožno uložiť do vyrovnávacej pamäte z panela správcu na základe rozhrania Heartbeat API (napríklad automatické ukladanie konceptov). Je veľmi dôležité okamžite identifikovať takéto vysoké špičky v prístupoch na admin-ajax.php, pretože môžu viesť k nedostupnosti stránky. Pozrite si nižšie uvedené odporúčania na riešenie problémov admin-ajax.php vo WordPress.

Čo je súbor admin-ajax.php?

Samotný súbor admin-ajax.php nie je zlý, ak sa používa správne. Pôsobí ako súčasť jadra. Súbor bol pridaný vývojárskym tímom WordPress vo verzii 3.6. Účelom admin-ajax.php je vytvoriť spojenie medzi prehliadačom a serverom pomocou AJAX. To umožňuje pokročilé funkcie vrátane vylepšeného automatického ukladania, sledovania verzií, časového limitu prihlásenia, správy relácií a upozornení na uzamknutie príspevku, keď príspevok upravuje viacero autorov. Všetky tieto funkcie sú skvelé najmä pre tých používateľov, ktorí podporujú stránky s viacerými autormi a správcami.

„Myšlienkou je implementovať relatívne jednoduché API, ktoré bude odosielať požiadavky XHR na server každých 15 sekúnd a spúšťať udalosti (alebo spätné volania) pri prijatí údajov. Ostatné komponenty sa tiež budú môcť „pripájať“ alebo prijímať upozornenia o aktivite iných používateľov. To sa dá použiť na blokovanie simultánnych úprav miniaplikácií alebo ponúk alebo iných úloh, ktoré si vyžadujú pravidelné aktualizácie zo servera."

Pokiaľ nie ste technicky zdatný používateľ, jediná situácia, ktorá bude pre vás v kontexte admin-ajax.php dôležitá, je pokúsiť sa pochopiť, prečo sa tento súbor spomaľuje v testoch (napríklad v Pingdome). Alebo môžete vidieť veľa žiadostí o tento súbor v denníkoch prístupu hosťovania.

Výskyt admin-ajax.php v testoch rýchlosti a protokoloch prístupu je zvyčajne výsledkom dvoch rôznych scenárov: jeden na frontende a jeden na backende. O tom si povieme neskôr.

Pluginy môžu spôsobiť spomalenie admin-ajax.php

Najpopulárnejší problém, s ktorým sa stretávajú používatelia v kontexte admin-ajax.php, je spôsobený zásuvnými modulmi tretích strán. To je zvyčajne viditeľné na prednej časti a ukazuje sa to v rýchlostných testoch. Vývojári používajú tento súbor alebo AJAX na pridávanie funkcií do svojich doplnkov. To, že vidíte požiadavku na admin-ajax.php neznamená, že to nevyhnutne spomalí stránku. AJAX sa načíta po zobrazení stránky a niektoré požiadavky sa môžu načítať asynchrónne. To však vždy neznamená, že vývojár vykonal sťahovanie správne a napísal efektívny kód z hľadiska výkonu.

Nižšie sú uvedené príklady, ako sme rýchlo diagnostikovali spomalenia v admin-ajax.php. Použili sme GTmetrix, pretože nám umožňuje skúmať jednotlivé údaje o príspevkoch a odpovediach. Pingdom nám, žiaľ, neumožňuje vidieť žiadosti o údaje vo formulároch. Môžete tiež použiť Google Chrome Devtools alebo WebPageTest.

Vysoká záťaž admin-ajax.php pri používaní doplnku Visual Composer

Nižšie je naša stránka WordPress, kde sme zaznamenali veľmi vysoké latencie pri používaní admin-ajax.php. Ako môžete vidieť z GTmetrix, latencia požiadaviek na admin-ajax.php je viac ako 8 sekúnd. Zvyšok „vodopádu“ vyzerá dobre, ale toto oneskorenie musia vyriešiť majitelia stránok.

Ak kliknete na požiadavku POST admin-ajax.php, zobrazia sa vám tieto tri karty: Hlavičky, Príspevok a Odpoveď. Pri diagnostike problémov, na ktoré sa pozeráme, nás budú zaujímať iba karty Príspevok a Odpoveď. Rady nájdete na karte Odpoveď. Vidíme, že časť požiadavky je spojená so skriptom vc_shortcodes-custom-css.

Rýchle skopírovanie a prilepenie do Google odhalí, že problém je spôsobený doplnkom Visual Composer.

Ďalším krokom pre používateľa je zabezpečiť, aby bol doplnok Visual Composer úplne aktuálny. Ak áno, musíte kontaktovať vývojárov pluginu a povedať im o probléme s admin-ajax.php. V skutočnosti ide o pomerne bežný problém, súdiac podľa príspevkov na Stack Overflow. Ak to vývojár nevie vyriešiť vo svojom plugine, vždy existuje niekoľko alternatívnych pluginov, ktoré robia zhruba to isté – v tom je sila WP. Ak napríklad potrebujete tvorcov stránok, môžete vyskúšať Beaver Builder alebo Elementor.

Vysoká latencia s admin-ajax.php vďaka doplnku Notification Bar

Druhý príklad, s ktorým sme sa sami stretli, nastal po inštalácii doplnku tretej strany. Zaznamenali sme prudký nárast požiadaviek na admin-ajax.php.

Opäť, ak kliknete na požiadavku admin-ajax.php POST, potom môžete všetko podrobne preskúmať. Vidíme, že údaje obsahujú reťazec „action=mtsnb_add_impression&bar_id=88&ab_variation=none“.

Správne, prvá časť akcie post zvyčajne odkazuje na triedu CSS pluginu. Na Google rýchlo vyhľadáme „mtsnb“ a zistíme, že táto trieda sa používa v doplnku Notification Bar, ktorý máme spustený na našej stránke.

Ak ste vývojár, existujú aj iné spôsoby, ako sledovať, ktorý doplnok môže generovať odpoveď POST, ale metódy opísané v tomto článku považujeme za veľmi účinné.

Staromódny spôsob určovania zdroja admin-ajax.php požiadaviek

Vyššie sme uviedli niekoľko jednoduchých spôsobov, ako nájsť doplnok na stránke WordPress, ktorý môže viesť k tomuto problému s admin-ajax.php. Podľa našich skúseností tieto metódy fungujú v 99% prípadov. Stáva sa však aj to, že POST dáta alebo akcie nemusia byť také prehľadné, a preto budete musieť ísť starou osvedčenou cestou. Jednoducho zakážte všetky doplnky na svojom webe WordPress. Spustite test rýchlosti. Ak admin-ajax.php nikde nenájdete, povoľte postupne každý plugin a vykonajte test rýchlosti. Takto môžete rýchlo identifikovať problematický plugin.

Problémy s CPU s admin-ajax.php v backende

Druhým hlavným problémom je, že rozhranie WordPress Heartbeat API používa admin-ajax.php na spúšťanie volaní AJAX z webového prehliadača, čo môže viesť k vysokému zaťaženiu procesora. Každá požiadavka AJAX tiež načíta celý backend WordPress a obíde všetky formy ukladania do vyrovnávacej pamäte. Pri testoch rýchlosti to zvyčajne neuvidíte. Toto je obzvlášť dôležité vedieť pre tých, ktorí používajú lacný zdieľaný hosting, pretože nemajú veľa priestoru na pohyb, pokiaľ ide o CPU. Tento problém sa už predtým objavil pri hostení HostGator.

Jedným zo scenárov, pri ktorých musíte byť veľmi opatrní, je automatické ukladanie vo WordPress a otvorené karty. Napríklad sme spustili nový projekt na našej webovej stránke a nechali sme kartu otvorenú. Rozhranie Heartbeat API v predvolenom nastavení vyhľadáva súbor admin-ajax.php každých 15 sekúnd, aby sa automaticky uložilo. Dá sa to vidieť v prístupových protokoloch. Ak by sme nechali kartu otvorenú jeden deň, jeden príspevok by mohol vygenerovať 5 760 žiadostí za deň.

To je príliš veľa backendových požiadaviek na jednu osobu. Predstavte si, čo by sa stalo, keby ste na svojej stránke mali niekoľko redaktorov. Tieto požiadavky budú exponenciálne narastať. Stretli sme sa s tým počas nášho výskumu s DARTDrones, v ktorom sme pomohli rozšíriť ich WooCommerce stránku pre Shark Tank. Denne mali viac ako 4100 hovorov na admin-ajax.php, pričom návštevníkov ich bolo len 2000. To nie je najlepší pomer požiadaviek a návštev. Náš prieskum ukázal, že väčšina požiadaviek prichádzala z konzoly – boli generované vďaka tomu, že administrátori aktualizovali stránku a pripravovali ju na zobrazenie.

Existuje spôsob, ako zistiť niektoré problémy s volaniami admin-ajax.php v backende, pokiaľ ide o automatické ukladanie, revízie, zamykanie záznamov atď. Ak to chcete urobiť, musíte si nainštalovať doplnok Heartbeat Control.

Doplnok Heartbeat Control je momentálne nainštalovaný na viac ako 50 000 stránkach a má hodnotenie 5 z 5. Od jeho aktualizácie prešli 2 roky, no stále funguje rovnako, keďže nebolo aktualizované ani rozhranie Heartbeat API.

Doplnok vám umožňuje ovládať frekvenciu volaní do rozhrania WordPress Heartbeat API niekoľkými kliknutiami. Prvá možnosť vám umožňuje ovládať umiestnenie srdcového tepu – napríklad ho všade zakázať alebo povoliť iba na stránkach na úpravu príspevkov. Odporúčame použiť druhú možnosť, pretože úplné zakázanie doplnku môže spôsobiť, že niektoré doplnky, ktoré závisia od rozhrania Heartbeat API, prestanú fungovať.

Druhá možnosť vám umožňuje nastaviť frekvenciu hlasovania. Zmena z 15 sekúnd na 60 sekúnd vám umožní výrazne ušetriť počet požiadaviek a ušetriť zdroje servera (zníženie zaťaženia procesora).

Môžete tiež použiť prémiový doplnok, ako je perfmatters, na vypnutie srdcového tepu, zmenu frekvencie dotazovania a úpravu intervalu automatického ukladania.

Záver

Ako vidíte, existuje niekoľko rýchlych a jednoduchých možností na diagnostiku a opravu problémov s admin-ajax.php. Zvyčajne sa objavujú v dôsledku doplnkov tretích strán, ktoré môžu byť vo vzájomnom konflikte alebo majú zlú kódovú základňu.

Stretli ste sa na svojom webe s týmto problémom? Ak áno, podeľte sa o svoje príbehy.

Tok užitočných rád používateľom svetovo najpopulárnejšieho bezplatného CMS nekončí. Práve preto, že je obľúbený a má vlastnosti, ktoré je dôležité si zapamätať. Predtým sme hovorili o tom, ako:

Dnes trochu rozšírime druhú tému a zakážeme veľmi náročný na zdroje a nie každý potrebuje mechanizmus WordPress tzv HeartBeat API.

HeartBeat API— Funkcia WordPress, ktorá poskytuje veci ako:

  • Automatické ukladanie;
  • Uzamknutie príspevku alebo stránky pre iných redaktorov lokality, kým príspevok alebo stránku upravuje jedna osoba;
  • Aktualizujte informáciu, že používateľ je stále v administratívnej časti (konzole).

Robí to udržiavaním spojenia medzi vaším prehliadačom (kde upravujete stránku) a serverom (na ktorom je stránka uložená).

V skutočnosti je to vyjadrené neustálymi požiadavkami s intervalom 15-30 sekúnd (v závislosti od nainštalovanej verzie) na jeden konkrétny súbor admin-ajax.php z takmer akejkoľvek stránky administratívneho panela. Situácia sa ešte zhorší, ak uprednostňujete ponechanie viacerých kariet konzoly otvorených naraz: požiadavky sa odosielajú autonómne z každej karty. V skutočnosti, HeartBeat API je najnáročnejšie na zdroje zo všetkých štandardných mechanizmov WordPress.

Dnes túto funkciu vypneme. Odporúča sa zakázať rozhranie HeartBeat API pre váš web WordPress, ak:

  • Vo všeobecnosti majú vaše stránky dostatok zdrojov na vašom účte, významné k prekročeniam dochádza len pri práci v konzole;
  • Stránku upravujete len vy osobne(to znamená, že stránka má 1 editora, nie niekoľko).

Pozor! Toto riešenie nie je vhodné pre všetky lokality. Závisí to od témy nainštalovanej na stránke, doplnkov a individuálnych nastavení stránky. Môžete to vyskúšať a ak sa ukáže, že nie je kompatibilný s akýmkoľvek prvkom lokality alebo ovplyvňuje funkciu lokality, ktorá je pre vás dôležitá, vždy môžete povoliť rozhranie HeartBeat API vrátením predchádzajúcich nastavení.

Ako vypnúť HeartBeat API

Ak to chcete urobiť, musíte vykonať zmeny v súbore funkcie.php v priečinku s aktuálnou aktívnou témou (šablónou) lokality. Dá sa to urobiť v správcovi súborov alebo cez FTP.

Cesta k súboru functions.php vyzerá takto: /path_to_site_root/wp-content/themes/theme_name/functions.php.

Pridajte na úplný začiatok súboru za značku

Add_action("init", "stop_heartbeat", 1); funkcia stop_heartbeat() ( wp_deregister_script("heartbeat"); )

Tieto riadky deaktivujú HeartBeat pre celú lokalitu.

Doplnok HeartBeat Control

Existuje aj menej radikálne riešenie ako úplné vypnutie rozhrania HeartBeat API. Poskytuje ho špeciálny plugin HeartBeat Control. Nainštalujte si ho, aktivujte ho a prejdite do nastavení (Nástroje -> HeartBeat Control). V nastaveniach môžete vybrať nasledujúce možnosti:

1. Či zakázať HeartBeat pre celú stránku alebo povoliť jeho používanie len pre určité jej časti, napríklad pre stránku na úpravu a publikovanie príspevkov v administračnom paneli.

2. Frekvencia požiadaviek na súbor admin-ajax.php. V predvolenom nastavení to môže byť 15 sekúnd - zmeňte túto hodnotu napríklad na 60 sekúnd, a tým Znížte spotrebu zdrojov pre tieto dopyty až o 75 %!

Čo je dôležité mať na pamäti

  • Vypnutím rozhrania HeartBeat API sme deaktivovali funkciu automatického ukladania. Upravené stránky a príspevky pravidelne ukladajte (podľa potreby).
  • Keďže rozhranie HeartBeat API je vypnuté na úrovni témy (šablóny) lokality, hneď ako zmeníte tému (šablónu), rozhranie HeartBeat API bude opäť fungovať. Postup deaktivácie bude potrebné zopakovať pre každú novú tému, ktorú začnete na stránke používať.
  • To isté platí pre aktualizáciu aktuálnej témy: po aktualizácii sa musí postup vypnutia zopakovať.

Prajeme príjemnú prácu!

K vytvoreniu tohto príspevku ma prinútil problém, ktorý na moju stránku začal klopať čoraz nástojčivejšie. Problémom je otváranie stránok lokality a práca na paneli správcu. Stali sa takými silnými a častými, že bolo ťažké napísať čo i len malú správu. Spojenie so serverom neustále vypadávalo. Vysoké zaťaženie CPU, čo znamená prekročenie takzvaného mäkkého limitu, sa vyskytovalo neustále; Začal som veľmi často dostávať e-mailové správy od Metricy a pluginu Jetpack s tým, že stránka bola často nedostupná, dokonca aj v čase, keď som na nej nepracoval. Skrátka, opäť ma prepadla strašná hrôza s problémom rýchlosti stránky. A znova som kontaktoval podpornú službu na mojom hostingu „Gino“

Odpoveď prišla okamžite a pri ďalšom dialógu s malými vysvetleniami som pochopil podstatu problémov a dokázal ich opraviť.

Podpora hostingu ma v prvom rade upozornila na veľký počet žiadostí /wp-admin/admin-ajax.php.„Požiadavky vytvárajú akcie v administratívnom paneli lokality. Toto správanie je typické, ak niektorý z doplnkov nefunguje správne. Zakážte doplnky stránky jeden po druhom a sledujte jeho fungovanie. Ak nájdete problematický doplnok, skúste ho aktualizovať alebo nainštalovať stabilnú verziu, prípadne ho nahradiť analógovým, ktorý nespôsobuje problémy.“

Na mojej stránke je nainštalovaných pomerne veľa pluginov a kontrola každého jednotlivo je veľmi problematická. Preto som si dal pozor na odkaz, ktorý mi pre plugin nechala technická podpora Kontrola srdcového tepu. Inštalácia a niektoré ďalšie nastavenia vyriešili môj problém!

Služba technickej podpory poukázala aj na ďalší problém a navrhla vykonať niekoľko krokov na opravu kódu v súbore wp-cron.php. Ale o tomto probléme na konci správy.

No a teraz prejdime k podstate vyššie uvedeného.

Čo je Heartbeat API na WordPress a ako ho obmedziť

Slovo „Heartbeat“ sa prekladá ako „Heartbeat“ a z nejakého dôvodu sa tak nazýva pre API. Poskytuje určitú frekvenciu požiadaviek na server. V predvolenom nastavení av závislosti od stránky administračného panela sa to deje v rôznych intervaloch: pri úprave záznamov - každých 15 sekúnd, pri práci v konzole - jednu minútu. WordPress Heartbeat API je funkcia, ktorá poskytuje:

  • Automatické ukladanie pri vytváraní správ;
  • Blokovanie príspevkov alebo stránok pre iných redaktorov lokality, kým príspevok alebo stránku upravuje jedna osoba;
  • Aktualizujte informácie, že používateľ je stále v administratívnej časti (konzola alebo stránka na úpravu príspevkov).

Táto funkcia, napísaná v engine WordPres, je veľmi dôležitá, najmä keď na stránke môže pracovať viacero autorov a správa je kolektívna. Môže to však spôsobiť aj spomalenie stránky a výrazné zvýšenie zaťaženia servera.

Ak ste jediným autorom stránky, funkciu Heartbeat API možno úplne deaktivovať alebo nakonfigurovať do režimu, ktorý vám vyhovuje, čo vám umožní regulovať zaťaženie servera.

Úplné vypnutie rozhrania Heartbeat API

Tento ťažký scenár, ktorý som nechcel urobiť, je, že musíte vykonať nejakú operáciu v súbore functions.php vašej témy, ktorá je momentálne nainštalovaná na stránke.

Add_action("init", "stop_heartbeat", 1); funkcia stop_heartbeat() ( wp_deregister_script("heartbeat"); )

Samozrejme, pri aktualizácii tejto témy alebo jej výmene za inú budete musieť túto operáciu vykonať znova.

Plugin Heartbeat Control a jeho nastavenia

Nastavenia sú len dve a aj napriek tomu, že plugin je v angličtine, pre tých, ktorí tento jazyk neovládajú, nebude ťažké ich pochopiť. Dovoľte mi pripomenúť, že nastavenie pluginu použi predvolené znamená, že rozhranie Heartbeat API nie je zakázané na žiadnej stránke a interval požiadaviek na server je 15 sekúnd. To znamená, že všetko vyzerá, ako keby tento doplnok nebol na vašom webe.

4. Používanie nastavení pre stránky administračného panela

Kvôli prehľadnosti upresním:

1. použiť predvolené – štandardne používať Heartbeat API;
2. vypnúť všade — vypnúť Heartbeat API všade;
3. vypnúť na stránke dashboard — deaktivovať Heartbeat API na stránke dashboard (konzola);
4. povoliť len zo stránok na úpravu príspevkov – rozhranie Heartbeat API používajte iba pri úprave stránok.

2. Úprava frekvencie požiadaviek na server

Všetko je tu veľmi jednoduché. Stačí si vybrať vhodný interval požiadaviek na sever. Čím vzácnejší je „impulz“ – čím zriedkavejšie sú požiadavky – tým menšie je zaťaženie servera.

Po vykonaní nastavení uložte zmeny.

Keďže automatické ukladanie nahrávok pri ich úprave zostáva žiaducou funkciou (nepotrebné úpravy môžete neskôr vymazať čistením pomocou špeciálnych pluginov) a strata takmer dokončenej nahrávky z nejakého technického dôvodu je nepríjemná (strata internetu alebo spojenia so serverom atď.). ) je veľmi nežiaduce . Preto je možné nastavenie pre prvý blok v poli nastaviť na režim „použiť predvolený“, ale úplne postačí vykonať nastavenia v druhom bloku, pretože nastavenie časovača frekvencie požiadaviek na súbor admin-ajax.php . V 60 sek. zníži spotrebu zdrojov pre tieto požiadavky až o 75 %!

Samozrejme, existuje veľa dôvodov, prečo sa webové stránky môžu spomaliť. Bez náležitých znalostí a práce s nimi jednoducho nevieme, čo spôsobuje takéto veľmi nežiaduce procesy. Pravdepodobne budeme musieť častejšie kontaktovať špecialistov vrátane technickej podpory hostingu.

Na začiatku článku som spomenul, že pracovníci podpory ma upozornili na ďalší dôvod problémov s prevádzkou mojich stránok. Dôvod -

Nežiaduce procesy v súbore wp-cron.php

Technická podpora si v dôsledku skúmania fungovania mojich stránok všimla, že na nich sú „pozorované procesy wp-cron.php“. Odporúčali: "Ak spustenie tohto súboru spôsobuje nezdravé zaťaženie servera - môžete tieto úlohy zakázať."

  1. Ak to chcete urobiť, v konfiguračnom súbore WordPress wp-config.php pridajte riadok:
    define('DISABLE_WP_CRON', 'true');
    Po nainštalovaní jazyka ho môžete niekde pridať, t.j. po čiare
    define('WPLANG', 'ru_RU');
  2. Ďalšie riešenie je v samotnom súbore wp-cron.php zakomentujte riadok: wp-cron.php ignore_user_abort(true); Ak to chcete urobiť, musíte pred ním uviesť dvojitú lomku. Dopadne to takto: //ignore_user_abort(true); Tento riadok sa nachádza v riadku 12 súboru.

To je všetko, priatelia.

(Navštívené 304-krát, dnes 1 návštev)