Jak snížit zatížení serveru pomocí admin-ajax ve WordPress. Jak zrychlit WordPress – zbavit se admin-ajaxu Úprava frekvence požadavků na server

Ahoj všichni. Pokračujeme v tématu zrychlení webu WordPress. V článku jsme ze souborů odstranili nepotřebné věci, ale ještě ne vše. Obecně platí, že na WordPressu je dobré, že vám umožňuje měnit kód tak, jak chcete, aby vyhovoval různým přáním.

Když si kupujete hosting, pak samozřejmě odhadujete, kolik paměti je pro web potřeba a jaká bude zátěž. A pokud máte omezené finanční prostředky, měli byste tyto parametry uložit.

V motoru je takový mechanismus - HeartBeat API. Proč je to potřeba? co to je?

HeartBeat API je zodpovědné za

  • pro automatické ukládání;
  • pro zablokování stránky nebo příspěvku pro všechny ostatní administrátory webu, když tam něco upravujete;
  • pro aktualizaci informací o přítomnosti uživatele v konzole.

Chápete, doufám, že v tuto chvíli prostě dochází k hltání zdrojů, protože neustále přicházejí požadavky na hostování souboru admin-ajax.php. A pokud chcete otevřít několik karet administračního panelu najednou, pak je to naprostý průšvih. Odpusťte mi ten žargon. Požadavky jsou odesílány autonomně pro každou kartu.

V podstatě HeartBeat API je nejnáročnější mechanismus ze všech v enginu WordPress.

Potřebujete takový mechanismus? Každý se samozřejmě rozhodne sám. Nepotřebuji to.

Má se za to, že má smysl jej zakázat, pokud jste jediným správcem a také pokud je na vašem účtu dostatek zdrojů, ale zatímco je správce v konzole, zatížení se zvyšuje a výrazně.

Podle mého pozorování se po vypnutí HeartBeat API snížil obsazený objem mého webu téměř 2,5krát! Myslím to vážně. Škoda, že jsem neudělal screenshot, ale nechci se vracet do původního stavu.

Jak zrychlit web WordPress vypnutím rozhraní HeartBeat API

Vypnout HeartBeat API kód

Vše je velmi jednoduché. Musíte jej přidat na začátek souboru functions.php, hned za značku

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

A budete šťastní.

Pozornost! Tento kód nemusí být vhodný pro váš web. Vše závisí na nainstalovaném motivu, pluginech a nastavení. Můžete to zkusit, a pokud je kód nekompatibilní s jakýmkoli prvkem webu nebo se něco rozbije a nefunguje, můžete vždy vše vrátit zpět. Stačí vymazat kód.

Plugin HeartBeat Control

Nevyhovují vám kódy a bojíte se, že poškodí váš web? Existuje pro vás takové řešení.

Nainstalujte plugin HeartBeat Control (vyberte pluginy v konzoli, nainstalujte nový, vyhledejte plugin, nainstalujte a aktivujte).

Přejděte do nastavení (v konzole Tools -> HeartBeat Control). V nastavení můžete vybrat následující možnosti:

1. Zda zakázat HeartBeat pro celý web nebo jej použít pro některé sekce.

2. Můžete a měli byste upravit frekvenci požadavků na soubor admin-ajax.php. Při instalaci je s největší pravděpodobností indikováno jako 15 sekund. Pokud změníte, řekněme, na 30 sekund, pak se spotřeba zdrojů pro tyto požadavky sníží o 25 %! A pokud čas ještě prodloužíte, pak ještě více. Působivé, že?

Pozornost!

  • Deaktivace rozhraní HeartBeat API deaktivuje funkci automatického ukládání. Čas od času uložte stránky a záznamy při jejich úpravě (podle potřeby).
  • K deaktivaci rozhraní HeartBeat API dochází v konkrétní šabloně. Pokud šablonu změníte, pak se musí vše udělat znovu.
  • Pokud jste aktualizovali aktuální téma, je třeba po aktualizaci zopakovat vypnutí.

Hodně štěstí všem!

2016-05-05T09:48:44+00:00 Naděje WordPress jak zrychlit wordpress

Ahoj všichni. Pokračujeme v tématu zrychlení webu WordPress. V článku Jak zrychlit WordPress minifikací CSS, HTML a Javascriptu jsme ze souborů odstranili nepotřebné věci, ale ne všechny. Obecně platí, že na WordPressu je dobré, že vám umožňuje měnit kód tak, jak chcete, aby vyhovoval různým přáním. Když si kupujete hosting, pak samozřejmě zvažujete...

Naděžda Trofimová [e-mail chráněný] Blogový web správce

Mohlo by vás také zajímat:

Jak vytvořit favicon pro web

Favicon je krásná ikona, kterou každý vidí vedle názvu webu v prohlížeči. Favicon umožňuje vašemu webu vyniknout jak v záložkách prohlížeče, tak...

Krásná tlačítka pro web

Dobrý den všem. Najednou jsou lidé, kteří chtějí na svůj web umístit krásná tlačítka, ale nemohou je najít. Vlastně jsem to zkoušel ve vyhledávačích...

Příklad 404 stran

Dobrý den, milý čtenáři mého blogu. Tento článek je absolutně o ničem, jen jsem se konečně dostal na stranu 404.

Jak a kde se píší značky Title a Description

Co jsou značky Title a Description? Tyto značky jsou nezbytné k optimalizaci vašeho webu. Pokud jsou značky napsány nesprávně, vyhledávače váš článek nezaindexují. Hodně...

Pro lepší SEO a uživatelský zážitek odborníci vždy doporučují pro koncového uživatele. V této souvislosti, pokud váš web navštěvuje mnoho uživatelů, může být pomalá reakce řídicího panelu WordPress.

Při testování rychlosti vašeho webu WordPress pomocí online nástrojů pro testování rychlosti jste si možná všimli, že soubor admin-ajax.php zodpovědný za pomalé načítání. V tomto článku vysvětlíme o tomto souboru a o tom, jak můžete snížit dobu odezvy serveru a využití CPU snížením počtu požadavků generovaných admin-ajax.php.

Co je admin-ajax.php ve WordPressu?

V roce 2013 představil WordPress rozhraní WordPress Heartbeat API, které poskytovalo několik důležitých funkcí, jako je funkce automatického ukládání po vypršení platnosti přihlášení a upozornění na zákaz, když jiný uživatel píše nebo upravuje příspěvek na WordPress.

Dvě velmi charakteristické rysy Heartbeat API:

1. Automatické ukládání

Kdykoli uložíte koncept příspěvku a budete na něm pokračovat v práci, WordPress automaticky uloží vaše přidané příspěvky. Mezi automatickým a ručním ukládáním projektu je jasný rozdíl. Podívejte se na následující snímek obrazovky, který ukazuje oba typy uložení:

2. Blokovat zprávu

Kdykoli se pokusíte upravit příspěvek, na kterém pracuje jiný uživatel, vyskočí upozornění na situaci. K dispozici máte tři akce.

Výše uvedené funkce umožňuje WordPress Heartbeat API, které vytváří spojení mezi serverem a prohlížečem pro odpovídající zprávy a odpovědi.

Rozhraní WordPress Heartbeat API generuje požadavky na komunikaci se serverem a spouští události pro příjem/odpovědi na data. To obecně zvyšuje zatížení serveru a nakonec zpomaluje administrační panel WordPress.

Živý příklad

Přihlásili jsme se do panelu WordPress a začali upravovat příspěvek. Poté jsme kartu nechali několik minut otevřenou a začali procházet další karty. Přístrojová deska je stále v systému a je to vidět admin-ajaxneustále odesílá požadavky.

Podle výše uvedeného tiketu admin-ajax.php ve WordPressu generuje požadavky každých 15 sekund. Požadavkem může být jakékoli připojení k serveru.

Zrychlete administrační panel WordPress

Chcete-li urychlit backend WordPress, nejlepším přístupem je vypnout Heartbeat API nebo jej alespoň nastavit na delší časové období, aby negenerovalo požadavky na server každých pár sekund.

Nainstalujte plugin Heartbeat Control

Přihlaste se ke svému administrátorovi WordPress a přejděte na Pluginy >> Přidat nové, najít Ovládání srdečního tepu, Nainstalujte A aktivovat jeho.

Přejděte na kartu Nastavení >> Ovládání nastavení prezenčního signálu. Zde najdete tři rozbalovací nabídky pro konfiguraci pluginu.

Můžete vybrat oblast, kde bude rozhraní Heartbeat API fungovat. Na výběr jsou tři možnosti:

  • Ovládací panel WordPress: Tím povolíte Heartbeat API na řídicím panelu WordPress.
  • Frontend: Tím povolíte API ve webovém rozhraní.
  • Editor zpráv: Zaškrtněte toto políčko, pokud chcete povolit rozhraní Heartbeat API aktivovat funkce automatického ukládání a blokování pošty.

Tuto možnost vyberte, pokud chcete, aby bylo rozhraní WordPress Heartbeat API na určitých místech zakázáno. Buďte opatrní při výběru umístění, protože jiné pluginy mohou také používat WordPress Heartbeat API. Pokud jste jediným uživatelem backendu WordPressu, doporučil bych jej všude deaktivovat a poté zkontrolovat, zda nenarušuje web. Pokud však váš web má více než jednoho uživatele, který pravidelně přispívá, doporučujeme vám aktivovat rozhraní Heartbeat API pouze na stránkách pro úpravy příspěvků.


Tato rozbalovací nabídka vám umožňuje nastavit časový interval v rozmezí 0 až 300 sekund pro provádění požadavků správce Ajax. Pokud jej nainstalujete na 120 sekund, pak bude požadavek generován každých 120 sekund. Tím se výrazně sníží zatížení serveru. Přizpůsobte si jej tak, aby vyhovoval vašim potřebám.

Vytváření více pravidel

Můžete vytvořit více pravidel na základě vašich požadavků. Například chcete, aby se WordPress spouštěl každých 120 sekund, ale po úpravě se spouštěl 60 sekund. Chcete-li to provést, musíte vytvořit dvě pravidla. Jeden pro řídicí panel WordPress a druhý pro editor příspěvků a nastavte jejich frekvenci na 120 a 60.

Nyní, když máte vše nastaveno, je čas zkontrolovat, které pluginy zpomalují váš web pomocí souboru admin-ajax.php.

Přejděte na GTmetrix, zadejte adresu URL svého webu. Analýza webu zabere několik minut. Poté přejděte na kartu Waterfall a uvidíte, jak dlouho trvá připojení a odpověď souboru. Přejděte trochu dolů a zjistěte, zda existuje záznam POST admin-ajax.php. Pokud ano, rozbalte jej a přejděte na kartu Příspěvek. Zde můžete identifikovat viníka. V našem případě plugin „desktop switch“ používá soubor admin-ajax.php a neustále odesílá požadavky na server. Nyní je čas učinit rozhodnutí, zda jej nahradit jiným pluginem, nebo jej odstranit.

Závěrečná slova

Vzhledem ke své sadě funkcí je rozhraní Heartbeat API na vašem webu WordPress velmi užitečné. Pokud se však nepoužívá správně, může to prodloužit dobu načítání na backendu WordPress a na samotném webu a odesílat požadavky tam a zpět na WordPress.

Existují pouze dvě řešení tohoto problému. Nebo vypněte Heartbeat API/povolte ho jen na pár místech.

Pokud používáte jakýkoli modul pro ukládání do mezipaměti, například W3TC, nezapomeňte zakázat mezipaměť objektů. To také zrychlí váš řídicí panel WordPress.

Pokud máte nějaké návrhy nebo požadavky, neváhejte zanechat komentář níže.

Běžným scénářem při práci s WordPress je diagnostika zvýšeného používání admin-ajax.php. Pokud už nějakou dobu pracujete s WordPressem, s největší pravděpodobností jste se s tímto problémem setkali při spouštění testů rychlosti třetích stran nebo při kontrole protokolů přístupu na server. Zvýšené používání admin-ajax.php je obvykle spojeno s používáním zásuvných modulů třetích stran nebo častými požadavky, které nelze uložit do mezipaměti z panelu administrátorů na základě rozhraní Heartbeat API (například automatické ukládání konceptů). Je velmi důležité okamžitě identifikovat takové vysoké špičky v návštěvách admin-ajax.php, protože mohou vést k nedostupnosti webu. Podívejte se na níže uvedená doporučení pro řešení problémů admin-ajax.php ve WordPressu.

Co je soubor admin-ajax.php?

Samotný soubor admin-ajax.php není špatný, pokud se používá správně. Působí jako součást jádra. Soubor byl přidán vývojovým týmem WordPress ve verzi 3.6. Účelem admin-ajax.php je vytvořit spojení mezi prohlížečem a serverem pomocí AJAX. To umožňuje pokročilé funkce včetně vylepšeného automatického ukládání, sledování verzí, vypršení časového limitu přihlášení, správy relací a upozornění na uzamčení příspěvku, když příspěvek upravuje více autorů. Všechny tyto funkce jsou skvělé zejména pro ty uživatele, kteří podporují weby s více autory a správci.

„Myšlenka je implementovat relativně jednoduché API, které bude každých 15 sekund posílat požadavky XHR na server a spouštět události (nebo zpětná volání), když jsou přijata data. Ostatní komponenty se také budou moci „připojit“ nebo přijímat upozornění na aktivitu ostatních uživatelů. To lze použít k blokování současných úprav widgetů nebo nabídek nebo jiných úloh, které vyžadují pravidelné aktualizace ze serveru."

Pokud nejste technicky zdatní uživatelé, jediná situace, která pro vás bude v kontextu admin-ajax.php důležitá, je pokusit se pochopit, proč se tento soubor v testech zpomaluje (například v Pingdom). Nebo můžete vidět spoustu požadavků na tento soubor v protokolech přístupu k hostingu.

Zobrazení admin-ajax.php v testech rychlosti a protokolech přístupu je obvykle výsledkem dvou různých scénářů: jednoho na frontendu a druhého na backendu. Promluvíme si o tom později.

Pluginy mohou způsobit zpomalení admin-ajax.php

Nejoblíbenější problém, kterému uživatelé v souvislosti s admin-ajax.php čelí, je způsoben pluginy třetích stran. To je obvykle vidět na přední části a ukazuje se to v rychlostních testech. Vývojáři používají tento soubor nebo AJAX k přidání funkcí do svých pluginů. To, že vidíte požadavek na admin-ajax.php, neznamená, že to nutně zpomalí web. AJAX se načte po zobrazení stránky a některé požadavky se mohou načíst asynchronně. To však vždy neznamená, že vývojář provedl stahování správně a napsal efektivní kód z hlediska výkonu.

Níže jsou uvedeny příklady toho, jak jsme rychle diagnostikovali zpomalení v admin-ajax.php. Použili jsme GTmetrix, protože nám umožňuje zkoumat data jednotlivých příspěvků a odpovědí. Pingdom nám bohužel neumožňuje vidět žádosti o data ve formulářích. Můžete také použít Google Chrome Devtools nebo WebPageTest.

Vysoká zátěž na admin-ajax.php při použití pluginu Visual Composer

Níže je náš web WordPress, kde jsme zaznamenali velmi vysoké latence při používání admin-ajax.php. Jak můžete vidět z GTmetrix, latence požadavků na admin-ajax.php je více než 8 sekund. Zbytek „vodopádu“ vypadá dobře, ale toto zpoždění musí řešit majitelé stránek.

Pokud kliknete na požadavek POST admin-ajax.php, zobrazí se vám následující tři záložky: Záhlaví, Příspěvek a Odpověď. Při diagnostice problémů, na které se díváme, nás budou zajímat pouze karty Příspěvek a Odezva. Rady lze vidět na záložce Odezva. Vidíme, že část požadavku je spojena se skriptem vc_shortcodes-custom-css.

Rychlé zkopírování a vložení do Googlu odhalí, že problém je způsoben pluginem Visual Composer.

Dalším krokem pro uživatele je zajistit, aby byl plugin Visual Composer zcela aktuální. Pokud ano, musíte kontaktovat vývojáře pluginu a říct jim o problému s admin-ajax.php. To je vlastně docela běžný problém, soudě podle příspěvků na Stack Overflow. Pokud to vývojář nedokáže vyřešit ve svém pluginu, vždy existuje několik alternativních pluginů, které dělají zhruba to samé - v tom je síla WP. Pokud například potřebujete tvůrce stránek, můžete zkusit Beaver Builder nebo Elementor.

Vysoká latence s admin-ajax.php díky pluginu Notification Bar

Druhý příklad, se kterým jsme se sami setkali, nastal po instalaci pluginu třetí strany. Zaznamenali jsme prudký nárůst požadavků na admin-ajax.php.

Opět, pokud kliknete na požadavek POST admin-ajax.php, pak můžete vše podrobně prozkoumat. Vidíme, že data obsahují řetězec „action=mtsnb_add_impression&bar_id=88&ab_variation=none“.

Správně, první část akce post obvykle odkazuje na třídu CSS pluginu. Rychle na Googlu vyhledáme „mtsnb“ a zjistíme, že tato třída se používá v pluginu Notification Bar, který máme spuštěný na našem webu.

Pokud jste vývojář, existují další způsoby, jak sledovat, který plugin může generovat odpověď POST, ale metody popsané v tomto článku považujeme za velmi účinné.

Staromódní metoda určování zdroje požadavků admin-ajax.php

Výše jsme uvedli několik jednoduchých způsobů, jak najít plugin na webu WordPress, který může vést k tomuto problému s admin-ajax.php. Podle našich zkušeností tyto metody fungují v 99 % případů. Stává se však také, že POST data nebo akce nemusí být tak jasné, a proto budete muset jít starou osvědčenou cestou. Jednoduše deaktivujte všechny pluginy na vašem webu WordPress. Spusťte test rychlosti. Pokud admin-ajax.php není nikde nalezen, povolte postupně každý plugin a proveďte test rychlosti. Tímto způsobem můžete rychle identifikovat problematický plugin.

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

Druhým hlavním problémem je, že WordPress Heartbeat API používá admin-ajax.php ke spouštění volání AJAX z webového prohlížeče, což může vést k vysokému využití procesoru. Každý požadavek AJAX také načte celý backend WordPress a obchází všechny formy ukládání do mezipaměti. Obvykle to v testech rychlosti neuvidíte. To je zvláště důležité vědět pro ty, kteří používají levný sdílený hosting, protože nemají moc prostoru pro pohyb, pokud jde o CPU. Tento problém se objevil u hostování HostGator dříve.

Jedním ze scénářů, se kterými musíte být velmi opatrní, je automatické ukládání ve WordPressu a otevřené karty. Spustili jsme například nový projekt na našem webu a nechali záložku otevřenou. Heartbeat API ve výchozím nastavení dotazuje soubor admin-ajax.php každých 15 sekund, aby provedlo automatické uložení. To lze vidět v protokolech přístupu. Pokud bychom nechali kartu otevřenou jeden den, jeden příspěvek by mohl vygenerovat 5 760 požadavků za den.

To je příliš mnoho backendových požadavků na jednu osobu. Představte si, co by se stalo, kdybyste měli na svém webu několik editorů. Tyto požadavky budou exponenciálně narůstat. Setkali jsme se s tím během našeho výzkumu s DARTDrones, ve kterém jsme pomohli rozšířit jejich web WooCommerce pro Shark Tank. Měli přes 4100 hovorů na admin-ajax.php denně, zatímco návštěvníků bylo pouze 2000. To není nejlepší poměr požadavků k návštěvám. Náš průzkum ukázal, že většina požadavků přicházela z konzole – byly generovány díky tomu, že administrátoři web aktualizovali a připravovali k zobrazení.

Existuje způsob, jak zjistit některé problémy s voláním admin-ajax.php v backendu, pokud jde o automatické ukládání, revize, zamykání záznamů atd. K tomu je třeba nainstalovat plugin Heartbeat Control.

Plugin Heartbeat Control je aktuálně nainstalován na více než 50 000 webech a má hodnocení 5 z 5. Od jeho aktualizace uplynuly 2 roky, ale stále funguje stejně, jelikož nebylo aktualizováno ani rozhraní Heartbeat API.

Plugin vám umožňuje ovládat frekvenci volání do WordPress Heartbeat API pomocí několika kliknutí. První možnost vám umožňuje ovládat umístění srdečního tepu – například jej všude zakázat nebo povolit pouze na stránkách pro úpravu příspěvků. Doporučujeme použít druhou možnost, protože úplné zakázání pluginu může způsobit, že některé pluginy závislé na Heartbeat API přestanou fungovat.

Druhá možnost umožňuje nastavit frekvenci dotazování. Změna z 15 sekund na 60 sekund vám umožní výrazně ušetřit počet požadavků a ušetřit prostředky serveru (snížení zátěže CPU).

Můžete také použít prémiový plugin, jako je perfmatters, k vypnutí srdečního tepu, změně frekvence dotazování a úpravě intervalu automatického ukládání.

Závěr

Jak vidíte, existuje několik rychlých a jednoduchých možností pro diagnostiku a opravu problémů s admin-ajax.php. Obvykle se objevují kvůli pluginům třetích stran, které mohou být ve vzájemném konfliktu nebo mají špatnou kódovou základnu.

Setkali jste se s tímto problémem na svém webu? Pokud ano, podělte se o své příběhy.

Tok užitečných rad uživatelům světově nejpopulárnějšího bezplatného CMS nebere konce. Právě proto, že je populární a protože má funkce, které je důležité si zapamatovat. Dříve jsme mluvili o tom, jak:

Dnes trochu rozšíříme druhé téma a zakážeme velmi náročný na zdroje a ne každý potřebuje mechanismus WordPress s názvem HeartBeat API.

HeartBeat API— Funkce WordPress, která poskytuje věci jako:

  • Automatické ukládání;
  • Uzamčení příspěvku nebo stránky pro jiné editory webu, zatímco příspěvek nebo stránku upravuje jedna osoba;
  • Aktualizujte informaci, že uživatel je stále v administrativní části (konzole).

Dělá to udržováním spojení mezi vaším prohlížečem (kde upravujete web) a serverem (na kterém je web uložen).

Ve skutečnosti je to vyjádřeno neustálými požadavky s intervalem 15-30 sekund (v závislosti na nainstalované verzi) na jeden konkrétní soubor admin-ajax.php z téměř jakékoli stránky administrativního panelu. Situace se ještě zhorší, pokud dáváte přednost ponechat více karet konzoly otevřených najednou: požadavky jsou odesílány autonomně z každé karty. Ve skutečnosti, HeartBeat API je nejnáročnější na zdroje ze všech standardních mechanismů WordPress.

Dnes tuto funkci deaktivujeme. Doporučujeme deaktivovat rozhraní HeartBeat API pro váš web WordPress, pokud:

  • Obecně platí, že vaše stránky mají dostatek prostředků na vašem účtu, což je významné k překročení dochází pouze při práci v konzole;
  • Stránky upravujete pouze vy osobně(to znamená, že web má 1 editora, ne několik).

Pozornost! Toto řešení není vhodné pro všechny weby. To závisí na motivu nainstalovaném na webu, pluginech a individuálním nastavení webu. Můžete to vyzkoušet a pokud se ukáže, že je nekompatibilní s jakýmkoli prvkem webu nebo ovlivňuje funkci webu, která je pro vás důležitá, můžete rozhraní HeartBeat API vždy povolit vrácením předchozího nastavení.

Jak deaktivovat HeartBeat API

Chcete-li to provést, musíte v souboru provést změny funkce.php uvnitř složky s aktuálním aktivním tématem (šablonou) webu. To lze provést ve správci souborů nebo přes FTP.

Cesta k souboru functions.php vypadá takto: /path_to_site_root/wp-content/themes/theme_name/functions.php.

Přidejte na úplný začátek souboru za značku

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

Tyto řádky deaktivují HeartBeat pro celý web.

Plugin HeartBeat Control

Existuje také méně radikální řešení, než úplné vypnutí HeartBeat API. Poskytuje to speciální plugin HeartBeat Control. Nainstalujte jej, aktivujte a přejděte do nastavení (Nástroje -> HeartBeat Control). V nastavení můžete vybrat následující možnosti:

1. Zda zakázat HeartBeat pro celý web nebo povolit jeho použití pouze pro jeho určité části, například pro stránku pro úpravu a publikování příspěvků v administrativním panelu.

2. Frekvence požadavků na soubor admin-ajax.php. Ve výchozím nastavení to může být 15 sekund - změňte tuto hodnotu například na 60 sekund a tím Snížit spotřebu zdrojů pro tyto dotazy až o 75 %!

Co je důležité mít na paměti

  • Vypnutím rozhraní HeartBeat API jsme deaktivovali funkci automatického ukládání. Upravené stránky a příspěvky pravidelně ukládejte (podle potřeby).
  • Vzhledem k tomu, že rozhraní HeartBeat API je zakázáno na úrovni tématu (šablony) webu, jakmile změníte téma (šablonu), rozhraní HeartBeat API bude opět fungovat. Postup deaktivace bude nutné opakovat pro každý nový motiv, který na webu začnete používat.
  • Totéž platí pro aktualizaci aktuálního tématu: po aktualizaci je třeba zopakovat postup vypnutí.

Přejeme příjemnou práci!

K vytvoření tohoto příspěvku mě donutil problém, který na můj web začal klepat stále neodbytněji. Problémem je otevírání stránek webu a práce v administračním panelu. Staly se tak silnými a častými, že bylo obtížné sestavit byť jen malý vzkaz. Spojení se serverem stále vypadávalo. Neustále docházelo k vysoké zátěži CPU, což znamená překračování tzv. měkkého limitu; Začal jsem velmi často dostávat e-mailové zprávy od Metrice a pluginu Jetpack s tím, že stránky byly často nedostupné, a to i v době, kdy jsem na nich nepracoval. Zkrátka strašná hrůza mě opět přepadla s problémem rychlosti webu. A znovu jsem kontaktoval službu podpory na mém hostingu „Gino“

Odpověď přišla okamžitě a dalším dialogem s drobnými vysvětlivkami jsem pochopil podstatu problémů a dokázal je napravit.

Hostingová podpora mě v první řadě upozornila na velký počet požadavků /wp-admin/admin-ajax.php.„Požadavky vytvářejí akce v administrativním panelu webu. Toto chování je typické, pokud některý z pluginů nefunguje správně. Zakažte pluginy stránek jeden po druhém a sledujte jeho provoz. Pokud najdete problematický plugin, zkuste jej aktualizovat nebo nainstalovat stabilní verzi, případně jej nahradit analogovým, který nezpůsobuje problémy.“

Na mém webu je nainstalováno poměrně hodně pluginů a kontrola každého zvlášť je velmi problematická. Věnoval jsem proto pozornost odkazu, který mi k pluginu nechala technická podpora Ovládání srdečního tepu. Instalace a některá další nastavení můj problém vyřešila!

Služba technické podpory také upozornila na další problém a navrhla provést některé kroky k opravě kódu v souboru wp-cron.php. Ale o tomto problému na konci zprávy.

No a teď přejděme k podstatě výše uvedeného.

Co je Heartbeat API na WordPressu a jak jej omezit

Slovo „Heartbeat“ se překládá jako „Heartbeat“ a z nějakého důvodu se tak nazývá pro API. Poskytuje určitou frekvenci požadavků na server. Ve výchozím nastavení a v závislosti na stránce administračního panelu k tomu dochází v různých intervalech: při úpravách záznamů - každých 15 sekund, při práci v konzole - jednu minutu. WordPress Heartbeat API je funkce, která poskytuje:

  • Automatické ukládání při vytváření zpráv;
  • Blokování příspěvků nebo stránek pro jiné editory webu, když příspěvek nebo stránku upravuje jedna osoba;
  • Aktualizujte informace, že uživatel je stále v administrativní části (konzole nebo stránka pro úpravy příspěvků).

Tato funkce napsaná v enginu WordPres je velmi důležitá, zvláště když na webu může pracovat několik autorů a administrace je kolektivní. Může však také způsobit zpomalení webu a výrazné zvýšení zatížení serveru.

Pokud jste jediným autorem webu, můžete funkci Heartbeat API buď zcela deaktivovat, nebo nakonfigurovat do režimu, který vám vyhovuje, což vám umožní regulovat zatížení serveru.

Úplné zakázání rozhraní Heartbeat API

Tento scénář, který jsem nechtěl udělat, je takový, že musíte provést nějakou operaci v souboru functions.php vašeho motivu aktuálně nainstalovaného na webu.

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

Při aktualizaci tohoto motivu nebo jeho nahrazení jiným budete samozřejmě muset tuto operaci provést znovu.

Plugin Heartbeat Control a jeho nastavení

Nastavení jsou pouze dvě a i přes to, že je plugin v angličtině, pro ty, kteří tento jazyk neovládají, nebude těžké jim porozumět. Dovolte mi, abych vám připomněl, že nastavení pluginu použít výchozí znamená, že rozhraní Heartbeat API není na žádné stránce zakázáno a interval požadavku na server je 15 sekund. To znamená, že vše vypadá, jako by tento plugin na vašem webu nebyl.

4. Použití nastavení pro stránky administrátorského panelu

Pro přehlednost upřesním:

1. use default - standardně používat Heartbeat API;
2. zakázat všude — zakázat Heartbeat API všude;
3. vypnout na stránce řídicího panelu — deaktivovat Heartbeat API na stránce řídicího panelu (konzole);
4. povolit pouze z post editačních stránek - Heartbeat API používejte pouze při editaci stránek.

2. Úprava frekvence požadavků na server

Vše je zde velmi jednoduché. Stačí zvolit vhodný interval požadavků na sever. Čím vzácnější je „pulz“ – čím vzácnější jsou požadavky – tím menší je zatížení serveru.

Po provedení nastavení uložte změny.

Vzhledem k tomu, že automatické ukládání nahrávek při jejich editaci zůstává žádoucí funkcí (nepotřebné úpravy můžete později smazat pomocí speciálních pluginů) a ztráta téměř hotové nahrávky z nějakého technického důvodu je nepříjemná (ztráta internetu nebo spojení se serverem atd.). ) je velmi nežádoucí. Nastavení pro první blok v poli lze tedy nastavit na režim „použít výchozí“, ale zcela postačí provést nastavení ve druhém bloku, protože nastavení časovače frekvence požadavku na soubor admin-ajax.php . PROTI 60 sekund sníží spotřebu zdrojů pro tyto požadavky až o 75 %!

Samozřejmě existuje mnoho důvodů, proč se webové stránky mohou zpomalit. Bez patřičných znalostí a práce s nimi prostě nevíme, co takové velmi nežádoucí procesy způsobuje. Pravděpodobně musíme častěji kontaktovat specialisty, včetně hostingové technické podpory.

Na začátku článku jsem zmínil, že pracovníci podpory mě upozornili na další důvod obtížnosti provozu mých stránek. Důvod -

Nežádoucí procesy v souboru wp-cron.php

Technická podpora si v důsledku průzkumu fungování mých stránek všimla, že na nich jsou „pozorovány procesy wp-cron.php“. Doporučili: "Pokud spuštění tohoto souboru způsobuje nezdravé zatížení serveru - můžete tyto úlohy zakázat."

  1. Chcete-li to provést v konfiguračním souboru WordPress wp-config.php přidat řádek:
    define('DISABLE_WP_CRON', 'true');
    Po instalaci jazyka to můžete někam přidat, tzn. po čáře
    define('WPLANG', 'ru_RU');
  2. Další řešení je v samotném souboru wp-cron.php zakomentujte řádek: wp-cron.php ignore_user_abort(true); Chcete-li to provést, musíte jej předcházet dvojitým lomítkem. Dopadne to takto: //ignore_user_abort(true); Tento řádek se nachází v řádku 12 souboru.

To je vše, přátelé.

(Návštíveno 304krát, dnes 1 návštěv)