Kako zmanjšati obremenitev strežnika z uporabo admin-ajax v WordPressu. Kako pospešiti WordPress - znebiti se admin-ajaxa Prilagajanje pogostosti zahtev do strežnika

Pozdravljeni vsi skupaj. Nadaljujemo s temo pospešitve spletnega mesta WordPress. V članku smo odstranili nepotrebne stvari iz datotek, vendar še ne vsega. Na splošno je dobra stran WordPressa ta, da vam omogoča spreminjanje kode, kot želite, da ustreza različnim željam.

Ko kupujete gostovanje, potem seveda ocenite, koliko pomnilnika potrebuje stran in kakšna bo obremenitev. In če ste omejeni v sredstvih, potem morate te parametre shraniti.

V motorju je tak mehanizem - HeartBeat API. Zakaj je to potrebno? Kaj je to?

HeartBeat API je odgovoren za

  • za samodejno shranjevanje;
  • za blokiranje strani ali objave za vse druge skrbnike spletnega mesta, medtem ko tam nekaj urejate;
  • za posodabljanje informacij o prisotnosti uporabnika v konzoli.

Razumete, upam, da je v tem trenutku preprosto požiranje virov, ker obstajajo stalne zahteve za gostovanje v datoteki admin-ajax.php. In če želite odpreti več zavihkov skrbniške plošče hkrati, potem je to popolna napaka. Oprostite mi za žargon. Zahteve se pošiljajo avtonomno za vsak zavihek.

V bistvu HeartBeat API je mehanizem, ki zahteva največ virov med vsemi v motorju WordPress.

Ali potrebujete tak mehanizem? Seveda se vsak odloči sam. Ne potrebujem ga.

Menijo, da je smiselno, da ga onemogočite, če ste edini skrbnik in tudi, če je v vašem računu dovolj virov, toda medtem ko je skrbnik v konzoli, se obremenitev poveča in znatno poveča.

Po mojih opažanjih se je po izklopu API-ja HeartBeat zasedena prostornina moje strani zmanjšala za skoraj 2,5-krat! Resen sem. Škoda, da nisem posnel posnetka zaslona, ​​vendar se ne želim vrniti v prvotno stanje.

Kako pospešiti spletno mesto WordPress z izklopom HeartBeat API

Ugasniti HeartBeat API Koda

Vse je zelo preprosto. Dodati ga morate na začetek datoteke functions.php, takoj za oznako

Add_action("init", "stop_heartbeat", 1); funkcija stop_heartbeat() ( wp_deregister_script("srčni utrip"); )

In srečni boste.

Pozor! Ta koda morda ni primerna za vaše spletno mesto. Vse je odvisno od nameščene teme, vtičnikov in nastavitev. Lahko poskusite in če je koda nezdružljiva s katerim koli elementom spletnega mesta ali se kaj pokvari in ne deluje, lahko vse vedno vrnete nazaj. Samo izbriši kodo.

Vtičnik HeartBeat Control

Kode vam niso všeč in se bojite, da bi poškodovali vaše spletno mesto? Obstaja taka rešitev za vas.

Namestite vtičnik HeartBeat Control (v konzoli izberite vtičnike, namestite novega, poiščite vtičnik, namestite in aktivirajte).

Pojdite na nastavitve (v konzoli Orodja -> Nadzor srčnega utripa). V nastavitvah lahko izberete naslednje možnosti:

1. Ali želite onemogočiti HeartBeat za celotno spletno mesto ali ga uporabiti za nekatere razdelke.

2. Lahko in morate urediti pogostost zahtev za datoteko admin-ajax.php. Pri namestitvi je najverjetneje označeno kot 15 sekund. Če spremenite, recimo, na 30 sekund, se bo poraba virov za te zahteve zmanjšala za 25%! In če čas še povečate, potem še več. Impresivno, kajne?

Pozor!

  • Če onemogočite HeartBeat API, onemogočite funkcijo samodejnega shranjevanja. Občasno shranite strani in vnose, ko jih urejate (po potrebi).
  • Onemogočanje API-ja HeartBeat se zgodi v določeni predlogi. Če spremenite predlogo, je treba vse narediti znova.
  • Če ste posodobili trenutno temo, je treba po posodobitvi zaustavitev ponoviti.

Srečno vsem!

2016-05-05T09:48:44+00:00 upanje WordPress kako pospešiti wordpress

Pozdravljeni vsi skupaj. Nadaljujemo s temo pospešitve spletnega mesta WordPress. V članku Kako pospešiti WordPress s pomanjšanjem CSS, HTML in Javascript smo iz datotek odstranili nepotrebne stvari, vendar ne vseh. Na splošno je dobra stran WordPressa ta, da omogoča spreminjanje kode, kot želite, da ustreza različnim željam. Ko kupujete gostovanje, potem seveda upoštevate...

Nadežda Trofimova [e-pošta zaščitena] Administrator Blog stran

Morda vas bo zanimalo tudi:

Kako narediti Favicon za spletno stran

Favicon je čudovita ikona, ki jo vsi vidijo poleg imena spletnega mesta v brskalniku. Favicon omogoča, da vaše spletno mesto izstopa med zaznamki brskalnika in ...

Lepi gumbi za spletno mesto

Lep dan vsem. Nenadoma se najdejo ljudje, ki želijo na svoje spletno mesto postaviti čudovite gumbe, a jih ne najdejo. Pravzaprav sem poskusil v iskalnikih...

Primer 404 strani

Pozdravljeni, dragi bralec mojega bloga. Ta članek ne govori o ničemer, končno sem prišel do strani 404.

Kako in kje so zapisane oznake Title in Description

Kaj sta oznaki Title in Description? Te oznake so potrebne za optimizacijo vašega spletnega mesta. Če so oznake napisane nepravilno, iskalniki ne bodo indeksirali vašega članka. Veliko...

Za boljši SEO in uporabniško izkušnjo strokovnjaki vedno priporočajo končnemu uporabniku. V tem kontekstu, če imate veliko uporabnikov, ki obiščejo vaše spletno mesto, se nadzorna plošča WordPress morda počasi odziva.

Med preizkušanjem hitrosti vašega spletnega mesta WordPress s spletnimi orodji za testiranje hitrosti ste morda opazili, da datoteka admin-ajax.php odgovoren za počasno nalaganje. V tem članku bomo pojasnili to datoteko in kako lahko skrajšate odzivni čas strežnika in porabo procesorja z zmanjšanjem števila zahtev, ki jih ustvari admin-ajax.php.

Kaj je admin-ajax.php v WordPressu?

Leta 2013 je WordPress predstavil API za WordPress Heartbeat, ki je zagotovil več pomembnih funkcij, kot je funkcija samodejnega shranjevanja, ko poteče prijava, in opozorilo o prepovedi, medtem ko drug uporabnik piše ali ureja objavo na WordPressu.

Dve zelo značilni lastnosti API-ja Heartbeat:

1. Samodejno shranjevanje

Kadar koli shranite osnutek objave in nadaljujete z delom na njem, WordPress samodejno shrani vaše dodatke k objavi. Obstaja jasna razlika med samodejnim in ročnim shranjevanjem projekta. Oglejte si naslednji posnetek zaslona, ​​ki prikazuje obe vrsti shranjevanja:

2. Blokiraj sporočilo

Kadarkoli poskušate urediti objavo, na kateri dela drug uporabnik, se prikaže opozorilo o situaciji. Na voljo so vam tri dejanja.

Zgornje funkcije omogoča WordPress Heartbeat API, ki ustvari povezavo med strežnikom in brskalnikom za ustrezno sporočilo in odgovore.

WordPress Heartbeat API ustvari zahteve za komunikacijo s strežnikom in sproži dogodke za prejemanje/odgovor podatkov. To na splošno poveča obremenitev strežnika in na koncu upočasni skrbniško ploščo WordPress.

Živ primer

Prijavili smo se v WordPress nadzorno ploščo in začeli urejati objavo. Nato smo zavihek pustili odprt nekaj minut in začeli brskati po drugih zavihkih. Instrumentna plošča je še vedno v sistemu in to lahko vidite admin-ajaxnenehno pošilja zahteve.

Glede na zgoraj omenjeno vstopnico admin-ajax.php v WordPressu ustvari zahteve vsakih 15 sekund. Zahteva je lahko katera koli povezava s strežnikom.

Pospešite skrbniško ploščo WordPress

Če želite pospešiti zaledje WordPress, je najboljši pristop, da onemogočite Heartbeat API ali ga vsaj nastavite na daljše časovno obdobje, tako da ne ustvarja zahtev strežniku vsakih nekaj sekund.

Namestite vtičnik Heartbeat Control

Prijavite se v svojega skrbnika za WordPress in pojdite na Vtičniki >> Dodaj novo, najti Nadzor srčnega utripa, namestite in aktivirati njegov.

Pojdite na zavihek Nastavitve >> Nastavitve nadzora srčnega utripa. Tam boste našli tri spustne menije za konfiguracijo vtičnika.

Izberete lahko območje, kjer bo deloval Heartbeat API. Izbirate lahko med tremi možnostmi:

  • Nadzorna plošča WordPress: To bo omogočilo API Heartbeat na plošči WordPress.
  • Frontend: To bo omogočilo API v spletnem vmesniku.
  • Urejevalnik sporočil: potrdite to polje, če želite dovoliti Heartbeat API, da omogoči funkcije samodejnega shranjevanja in blokiranja pošte.

Izberite to možnost, če želite, da je API za WordPress Heartbeat na določenih lokacijah onemogočen. Bodite previdni pri izbiri lokacije, ker lahko tudi drugi vtičniki uporabljajo WordPress Heartbeat API. Če ste edini uporabnik zaledja WordPress, predlagam, da ga povsod onemogočite in nato preverite, ali pokvari spletno mesto. Če pa ima vaše spletno mesto več kot enega uporabnika, ki redno prispeva, vam predlagamo, da omogočite API Heartbeat samo na straneh za urejanje objav.


Ta spustni meni vam omogoča nastavitev časovnega intervala v razponu od 0 do 300 sekund za izvajanje skrbniških zahtev Ajax. Če ga namestite na 120 sekund, potem bo zahteva ustvarjena vsakih 120 sekund. To bo znatno zmanjšalo obremenitev strežnika. Prilagodite ga svojim potrebam.

Ustvarjanje več pravil

Ustvarite lahko več pravil glede na vaše zahteve. Na primer, želite, da se WordPress sproži vsakih 120 sekund, vendar po urejanju sproži 60 sekund. Če želite to narediti, morate ustvariti dve pravili. Eno za nadzorno ploščo WordPress in drugo za urejevalnik objav ter nastavite njuno frekvenco na 120 oziroma 60.

Zdaj, ko ste vse nastavili, je čas, da z datoteko admin-ajax.php preverite, kateri vtičniki upočasnjujejo vaše spletno mesto.

Pojdite na GTmetrix, vnesite URL svojega spletnega mesta. Analiza spletnega mesta bo trajala nekaj minut. Po tem pojdite na zavihek Slap in videli boste, koliko časa potrebuje datoteka za povezave in odgovor. Pomaknite se malo navzdol in preverite, ali obstaja vnos OBJAVI admin-ajax.php. Če da, ga razširite in pojdite na zavihek Objava. Tukaj lahko identificirate krivca. V našem primeru vtičnik »desktop switch« uporablja datoteko admin-ajax.php in nenehno pošilja zahteve strežniku. To je čas, da se odločite, da ga zamenjate z drugim vtičnikom ali odstranite.

Končne besede

Glede na nabor funkcij je Heartbeat API zelo uporaben na vašem spletnem mestu WordPress. Če pa se ne uporablja pravilno, lahko poveča čas nalaganja v ozadju WordPressa in na samem spletnem mestu ter pošilja zahteve naprej in nazaj v WordPress.

Obstajata le dve rešitvi tega problema. Ali onemogočite Heartbeat API/omogočite ga samo na nekaj mestih.

Če uporabljate kateri koli vtičnik za predpomnjenje, kot je W3TC, ne pozabite onemogočiti predpomnilnika predmetov. To bo tudi pospešilo vašo nadzorno ploščo WordPress.

Če imate kakršne koli predloge ali zahteve, vas prosimo, da pustite komentar spodaj.

Pogost scenarij pri delu z WordPressom je diagnosticiranje povečane uporabe admin-ajax.php. Če že nekaj časa delate z WordPressom, ste najverjetneje naleteli na to težavo, ko izvajate preskuse hitrosti tretjih oseb ali preverjate dnevnike dostopa do strežnika. Običajno je povečana uporaba admin-ajax.php povezana z uporabo vtičnikov tretjih oseb ali pogostimi zahtevami skrbniške plošče, ki jih ni mogoče predpomniti, na podlagi API-ja Heartbeat (na primer samodejno shranjevanje osnutkov). Zelo pomembno je, da takoj prepoznate tako visoke skoke v zadetkih na admin-ajax.php, saj lahko povzročijo, da spletno mesto ni na voljo. Oglejte si spodnja priporočila za odpravljanje težav z admin-ajax.php v WordPressu.

Kaj je datoteka admin-ajax.php?

Sama datoteka admin-ajax.php ni slaba, če se pravilno uporablja. Deluje kot del jedra. Datoteko je dodala razvojna ekipa WordPressa v izdaji 3.6. Namen admin-ajax.php je ustvariti povezavo med brskalnikom in strežnikom z uporabo AJAX. To omogoča napredne funkcije, vključno z izboljšanim samodejnim shranjevanjem, sledenjem različicam, časovnimi omejitvami za prijavo, upravljanjem sej in obvestili o zaklepanju objave, ko več avtorjev ureja objavo. Vse te funkcije so odlične, še posebej za tiste uporabnike, ki podpirajo strani z več avtorji in skrbniki.

»Ideja je implementirati razmeroma preprost API, ki bo vsakih 15 sekund pošiljal zahteve XHR strežniku in ob prejemu podatkov sprožil dogodke (ali povratne klice). Tudi druge komponente se bodo lahko »priklopile« oziroma prejemale obvestila o dejavnosti drugih uporabnikov. To je mogoče uporabiti za blokiranje hkratnega urejanja gradnikov ali menijev ali drugih opravil, ki zahtevajo redne posodobitve s strežnika."

Razen če ste tehnično podkovan uporabnik, je edina situacija, ki bo za vas pomembna v kontekstu admin-ajax.php, poskušati razumeti, zakaj se ta datoteka upočasnjuje pri testih (na primer v Pingdomu). Ali pa boste v dnevnikih dostopa do gostovanja videli kup zahtev za to datoteko.

Pojav admin-ajax.php v preizkusih hitrosti in dnevnikih dostopa je običajno posledica dveh različnih scenarijev: enega v sprednjem delu in enega v zaledju. O tem bomo govorili kasneje.

Vtičniki lahko povzročijo upočasnitev admin-ajax.php

Najbolj priljubljeno težavo, s katero se srečujejo uporabniki v kontekstu admin-ajax.php, povzročajo vtičniki tretjih oseb. To je običajno vidno na sprednji strani in se pokaže pri preizkusih hitrosti. Razvijalci uporabljajo to datoteko ali AJAX za dodajanje funkcionalnosti svojim vtičnikom. Samo zato, ker vidite zahtevo za admin-ajax.php, ne pomeni, da bo to nujno upočasnilo spletno mesto. AJAX se naloži po predstavitvi strani in nekatere zahteve se lahko naložijo asinhrono. Vendar to ne pomeni vedno, da je razvijalec pravilno izvedel prenos in napisal učinkovito kodo v smislu zmogljivosti.

Spodaj so primeri, kako smo hitro diagnosticirali upočasnitve v admin-ajax.php. Uporabili smo GTmetrix, ker nam omogoča pregled posameznih podatkov o objavah in odzivih. Pingdom nam na žalost ne omogoča vpogleda v zahteve po podatkih v obrazcih. Uporabite lahko tudi Google Chrome Devtools ali WebPageTest.

Velika obremenitev admin-ajax.php pri uporabi vtičnika Visual Composer

Spodaj je naše spletno mesto WordPress, kjer smo imeli pri uporabi admin-ajax.php zelo visoke zakasnitve. Kot lahko vidite iz GTmetrixa, je zakasnitev zahtev do admin-ajax.php več kot 8 sekund. Preostali del "slapa" je videti v redu, vendar morajo to zamudo obravnavati lastniki mest.

Če kliknete na zahtevo POST admin-ajax.php, boste videli naslednje tri zavihke: Glave, Objava in Odgovor. Pri diagnosticiranju težav, ki si jih ogledujemo, nas bosta zanimala le zavihka Objava in Odgovor. Namige si lahko ogledate v zavihku Odgovor. Vidimo, da je del zahteve povezan s skriptom vc_shortcodes-custom-css.

Hitro kopiranje in lepljenje v Google razkrije, da je težavo povzročil vtičnik Visual Composer.

Naslednji korak za uporabnika je zagotoviti, da je vtičnik Visual Composer popolnoma posodobljen. Če da, se morate obrniti na razvijalce vtičnikov in jim povedati o težavi z admin-ajax.php. To je pravzaprav dokaj pogosta težava, sodeč po objavah na Stack Overflow. Če razvijalec tega ne more rešiti v svojem vtičniku, je vedno na voljo več alternativnih vtičnikov, ki naredijo približno enako – to je moč WP. Na primer, če potrebujete graditelje strani, lahko poskusite Beaver Builder ali Elementor.

Visoka zakasnitev z admin-ajax.php zaradi vtičnika Notification Bar

Drugi primer, na katerega smo naleteli sami, se je zgodil po namestitvi vtičnika tretje osebe. Opazili smo močno povečanje zahtevkov za admin-ajax.php.

Še enkrat, če kliknete na zahtevo POST admin-ajax.php, potem lahko raziščete vse podrobno. Vidimo, da podatki vsebujejo niz »action=mtsnb_add_impression&bar_id=88&ab_variation=none«.

Pravilno se prvi del dejanja objave običajno nanaša na razred CSS vtičnika. V Googlu hitro poiščemo »mtsnb« in ugotovimo, da se ta razred uporablja v vtičniku vrstice z obvestili, ki ga izvajamo na našem spletnem mestu.

Če ste razvijalec, obstajajo drugi načini za spremljanje, kateri vtičnik morda generira odziv POST, vendar se nam zdijo metode, opisane v tem članku, zelo učinkovite.

Staromodna metoda določanja vira zahtev admin-ajax.php

Zgoraj smo podali več preprostih načinov za iskanje vtičnika na spletnem mestu WordPress, ki lahko povzroči to težavo z admin-ajax.php. Po naših izkušnjah te metode delujejo v 99% primerov. Vendar pa se zgodi tudi, da podatki ali dejanja POST morda niso tako jasni, zato boste morali iti po stari preverjeni poti. Preprosto onemogočite vse vtičnike na svojem spletnem mestu WordPress. Izvedite preizkus hitrosti. Če admin-ajax.php ne najdete nikjer, omogočite vsak vtičnik po vrsti in izvedite preizkus hitrosti. Tako lahko hitro prepoznate problematični vtičnik.

Težave s procesorjem z admin-ajax.php v ozadju

Druga večja težava je, da WordPress Heartbeat API uporablja admin-ajax.php za sprožitev klicev AJAX iz spletnega brskalnika, kar lahko vodi do visoke obremenitve procesorja. Vsaka zahteva AJAX naloži tudi celotno zaledje WordPressa, pri čemer obide vse oblike predpomnjenja. Običajno tega ne boste videli pri preizkusih hitrosti. To je še posebej pomembno vedeti za tiste, ki uporabljajo poceni skupno gostovanje, saj nimajo veliko prostora za premikanje, ko gre za procesor. Ta težava se je že pojavila pri gostovanju HostGator.

Eden od scenarijev, pri katerem morate biti zelo previdni, je samodejno shranjevanje v WordPressu in odprti zavihki. Na našem spletnem mestu smo na primer zagnali nov projekt in pustili zavihek odprt. API Heartbeat privzeto vpraša datoteko admin-ajax.php vsakih 15 sekund za samodejno shranjevanje. To je razvidno iz dnevnikov dostopa. Če bi zavihek pustili odprt en dan, bi lahko ena objava ustvarila 5760 zahtev na dan.

To je preveč zalednih zahtev za eno osebo. Predstavljajte si, kaj bi se zgodilo, če bi imeli na svojem spletnem mestu več urednikov. Te zahteve bodo eksponentno naraščale. Na to smo naleteli med našo raziskavo z DARTDrones, pri kateri smo pomagali razširiti njihovo spletno mesto WooCommerce za Shark Tank. Na dan so imeli več kot 4100 klicev na admin-ajax.php, obiskovalcev pa le 2000. To ni najboljše razmerje med zahtevami in obiski. Naše raziskave so pokazale, da večina zahtev prihaja iz konzole – nastale so zaradi dejstva, da so skrbniki posodabljali stran, jo pripravljali za prikaz.

Obstaja način za odkrivanje nekaterih težav s klici admin-ajax.php v ozadju, ko gre za samodejno shranjevanje, revizije, zaklepanje zapisov itd. Če želite to narediti, morate namestiti vtičnik Heartbeat Control.

Vtičnik Heartbeat Control je trenutno nameščen na več kot 50.000 spletnih mestih in ima oceno 5 od 5. Od posodobitve sta minili 2 leti, vendar še vedno deluje enako, saj tudi Heartbeat API ni bil posodobljen.

Vtičnik vam omogoča nadzor nad pogostostjo klicev WordPress Heartbeat API z nekaj kliki. Prva možnost vam omogoča nadzor nad lokacijo srčnega utripa - na primer, da ga onemogočite povsod ali dovolite samo na straneh za urejanje objav. Priporočamo uporabo slednje možnosti, saj lahko popolno onemogočanje vtičnika povzroči prenehanje delovanja nekaterih vtičnikov, ki so odvisni od API-ja Heartbeat.

Druga možnost vam omogoča nastavitev frekvence pozivanja. Spreminjanje s 15 sekund na 60 sekund vam bo omogočilo znatno zmanjšanje števila zahtev in prihranek virov strežnika (zmanjšanje obremenitve procesorja).

Za izklop srčnega utripa, spreminjanje frekvence pozivanja in spreminjanje intervala samodejnega shranjevanja lahko uporabite tudi premium vtičnik, kot je perfmatters.

Zaključek

Kot lahko vidite, obstaja več hitrih in enostavnih možnosti za diagnosticiranje in odpravljanje težav z admin-ajax.php. Običajno se pojavijo zaradi vtičnikov tretjih oseb, ki so lahko v nasprotju med seboj ali imajo slabo kodno osnovo.

Ste na svojem spletnem mestu naleteli na to težavo? Če je tako, prosim delite svoje zgodbe.

Toka koristnih nasvetov uporabnikom najbolj priljubljenega brezplačnega CMS na svetu ne bo konca. Ravno zato, ker je priljubljen in ker ima lastnosti, ki si jih je pomembno zapomniti. Prej smo govorili o tem, kako:

Danes bomo malo razširili drugo temo in onemogočili mehanizem WordPressa, ki zahteva zelo veliko virov in ga ne potrebujejo vsi. HeartBeat API.

HeartBeat API— Funkcionalnost WordPressa, ki zagotavlja stvari, kot so:

  • Samodejno shranjevanje;
  • Zaklepanje objave ali strani za druge urednike mesta, medtem ko objavo ali stran ureja ena oseba;
  • Posodobite informacijo, da je uporabnik še vedno v administrativnem delu (konzoli).

To stori tako, da vzdržuje povezavo med vašim brskalnikom (kjer urejate spletno mesto) in strežnikom (na katerem je spletno mesto shranjeno).

Pravzaprav je to izraženo v stalnih zahtevah z intervalom 15-30 sekund (odvisno od nameščene različice) do ene določene datoteke admin-ajax.php s skoraj katere koli strani upravne plošče. Stanje se poslabša, če imate raje odprtih več zavihkov konzole hkrati: zahteve se pošiljajo avtonomno z vsakega zavihka. Pravzaprav, HeartBeat API je najbolj intenziven med vsemi standardnimi mehanizmi WordPress.

To funkcijo bomo onemogočili danes. Priporočamo, da onemogočite HeartBeat API za vaše spletno mesto WordPress, če:

  • Na splošno imajo vaša spletna mesta na vašem računu dovolj virov, pomembnih prekoračitve se pojavijo samo med delom v konzoli;
  • Stran urejate samo vi osebno(to pomeni, da ima spletno mesto 1 urednika, ne več).

Pozor! Ta rešitev ni primerna za vsa spletna mesta. To je odvisno od teme, nameščene na spletnem mestu, vtičnikov in posameznih nastavitev spletnega mesta. Lahko ga preizkusite in če se izkaže, da ni združljiv s katerim koli elementom spletnega mesta ali vpliva na funkcijo spletnega mesta, ki je za vas pomembna, lahko vedno omogočite HeartBeat API tako, da vrnete prejšnje nastavitve.

Kako onemogočiti HeartBeat API

Če želite to narediti, morate spremeniti datoteko functions.php znotraj mape s trenutno aktivno temo (predlogo) spletnega mesta. To lahko storite v upravitelju datotek ali prek FTP.

Pot do datoteke functions.php je videti takole: /path_to_site_root/wp-content/themes/theme_name/functions.php.

Dodajte na samem začetku datoteke za oznako

Add_action("init", "stop_heartbeat", 1); funkcija stop_heartbeat() ( wp_deregister_script("srčni utrip"); )

Te vrstice onemogočijo HeartBeat za celotno spletno mesto.

Vtičnik HeartBeat Control

Obstaja tudi manj radikalna rešitev kot popolna onemogočitev API-ja HeartBeat. Zagotavlja ga poseben vtičnik Nadzor srčnega utripa. Namestite ga, aktivirajte in pojdite na nastavitve (Orodja -> Nadzor srčnega utripa). V nastavitvah lahko izberete naslednje možnosti:

1. Ali onemogočiti HeartBeat za celotno spletno mesto ali dovoliti njegovo uporabo samo za določene njegove dele, na primer za stran za urejanje in objavo objav v upravni plošči.

2. Pogostost zahtev za datoteko admin-ajax.php. Privzeto je lahko 15 sekund - spremenite to vrednost na primer na 60 sekund in s tem Zmanjšajte porabo virov za te poizvedbe za kar 75 %!

Kaj je pomembno zapomniti

  • Z onemogočanjem HeartBeat API smo onemogočili funkcijo samodejnega shranjevanja. Občasno shranite urejene strani in objave (po potrebi).
  • Ker je HeartBeat API onemogočen na ravni teme (predloge) spletnega mesta, bo HeartBeat API znova deloval takoj, ko spremenite temo (predlogo). Postopek onemogočanja bo treba ponoviti za vsako novo temo, ki jo začnete uporabljati na spletnem mestu.
  • Enako velja za posodobitev trenutne teme: po posodobitvi je treba postopek zaustavitve ponoviti.

Želimo vam prijetno delo!

K ustvarjanju te objave me je prisilila težava, ki je vse bolj vztrajno začela trkati na mojo stran. Težava je odpiranje strani spletnega mesta in delo v skrbniški plošči. Postali so tako močni in pogosti, da je postalo težko sestaviti celo majhno sporočilo. Povezava s strežnikom je nenehno padala. Visoka obremenitev procesorja, kar pomeni prekoračitev tako imenovane mehke meje, se je pojavljala nenehno; Začel sem zelo pogosto prejemati e-poštna sporočila od Metrice in vtičnika Jetpack, v katerih je pisalo, da spletno mesto pogosto ni na voljo, tudi v času, ko nisem delal na njem. Skratka, spet me je prevzela strašna groza s problemom hitrosti strani. In spet sem se obrnil na službo za podporo na svojem gostovanju "Gino"

Odgovor je prišel takoj, z nadaljnjim dialogom z majhnimi pojasnili pa sem razumel bistvo težav in jih lahko odpravil.

Podpora za gostovanje me je najprej opozorila na veliko število prošenj za /wp-admin/admin-ajax.php.»Zahteve ustvarijo dejanja v upravni plošči spletnega mesta. To vedenje je značilno, če eden od vtičnikov ne deluje pravilno. Onemogočite vtičnike spletnega mesta enega za drugim in spremljajte njegovo delovanje. Če najdete problematičen vtičnik, ga poskusite posodobiti ali namestiti stabilno različico ali pa ga zamenjati z analognim, ki ne povzroča težav.”

Na mojem spletnem mestu je nameščenih precej vtičnikov in preverjanje vsakega posebej je zelo problematično. Zato sem bil pozoren na povezavo, ki mi jo je pustila tehnična podpora za vtičnik Nadzor srčnega utripa. Namestitev in nekatere druge nastavitve so rešile mojo težavo!

Služba za tehnično podporo je opozorila tudi na drugo težavo in predlagala nekaj korakov za popravek kode v datoteki wp-cron.php. Toda o tem problemu na koncu sporočila.

No, zdaj pa preidimo k bistvu zgoraj naštetega.

Kaj je Heartbeat API na WordPressu in kako ga omejiti

Beseda »Heartbeat« je prevedena kot »srčni utrip« in se tako imenuje za API z razlogom. Strežniku zagotavlja določeno pogostost zahtev. Privzeto in odvisno od strani skrbniške plošče se to zgodi v različnih intervalih: pri urejanju zapisov - vsakih 15 sekund, pri delu v konzoli - eno minuto. WordPress Heartbeat API je funkcija, ki omogoča:

  • Samodejno shranjevanje pri ustvarjanju sporočil;
  • Blokiranje objav ali strani za druge urednike spletnega mesta, medtem ko objavo ali stran ureja ena oseba;
  • Posodobite informacijo, da je uporabnik še vedno v administrativnem delu (konzola ali stran za urejanje objave).

Ta funkcija, zapisana v mehanizmu WordPres, je zelo pomembna, še posebej, ko lahko na strani dela več avtorjev in je administracija kolektivna. Vendar pa lahko povzroči tudi upočasnitev spletnega mesta in znatno povečanje obremenitve strežnika.

Če ste edini avtor spletnega mesta, lahko funkcijo Heartbeat API popolnoma onemogočite ali konfigurirate na način, ki vam ustreza, kar vam omogoča uravnavanje obremenitve strežnika.

Popolnoma onemogočite Heartbeat API

Ta težki scenarij, ki ga nisem želel narediti, je, da morate izvesti nekaj operacij v datoteki functions.php vaše teme, ki je trenutno nameščena na spletnem mestu.

Add_action("init", "stop_heartbeat", 1); funkcija stop_heartbeat() ( wp_deregister_script("srčni utrip"); )

Seveda, ko posodabljate to temo ali jo zamenjate z drugo, boste morali to operacijo ponoviti.

Vtičnik Heartbeat Control in njegove nastavitve

Obstajata le dve nastavitvi in ​​kljub dejstvu, da je vtičnik v angleščini, jih za tiste, ki tega jezika ne obvladajo, ne bo težko razumeti. Naj vas spomnim, da nastavitev vtičnika uporabi privzeto pomeni, da API Heartbeat ni onemogočen na nobeni strani in je interval zahteve do strežnika 15 sekund. To pomeni, da je vse videti, kot da tega vtičnika ni na vašem spletnem mestu.

4. Uporaba nastavitev za strani skrbniške plošče

Zaradi jasnosti bom pojasnil:

1. use default - privzeto uporabite Heartbeat API;
2. onemogoči povsod — povsod onemogoči Heartbeat API;
3. onemogoči na strani nadzorne plošče — onemogoči Heartbeat API na strani nadzorne plošče (konzola);
4. dovolite samo s strani za urejanje objav - uporabljajte Heartbeat API samo pri urejanju strani.

2. Prilagoditev pogostosti zahtev do strežnika

Tukaj je vse zelo preprosto. Izbrati morate le ustrezen interval zahtevkov proti severu. Redkejši kot je "pulz" - redkejše so zahteve - manjša je obremenitev strežnika.

Ko opravite nastavitve, shranite spremembe.

Ker samodejno shranjevanje posnetkov med urejanjem ostaja zaželena funkcija (nepotrebne popravke lahko pozneje izbrišete tako, da jih očistite s posebnimi vtičniki), izguba skoraj dokončanega posnetka iz tehničnega razloga pa je neprijetna (izguba interneta ali povezave s strežnikom itd.). ) je zelo nezaželen . Zato lahko nastavitev za prvi blok v polju nastavite na način »uporabi privzeto«, vendar bo povsem dovolj, da opravite nastavitve v drugem bloku, saj nastavite časovnik frekvence zahteve v datoteko admin-ajax.php . V 60 sekund bo zmanjšal porabo virov za te zahteve za kar 75 %!

Seveda obstaja veliko razlogov, zakaj se lahko spletna mesta upočasnijo. Brez ustreznega znanja in dela z njimi preprosto ne vemo, kaj povzroča tako zelo nezaželene procese. Verjetno se moramo pogosteje obrniti na strokovnjake, vključno s tehnično podporo za gostovanje.

Na začetku članka sem omenil, da so me podporni delavci opozorili na še en razlog za težave pri delovanju mojih spletnih mest. razlog -

Neželeni procesi v datoteki wp-cron.php

Tehnična podpora je kot rezultat raziskovanja delovanja mojih strani opazila, da so na njih »opaženi procesi wp-cron.php«. Priporočili so: "Če izvajanje te datoteke povzroča nezdravo obremenitev strežnika - lahko te naloge onemogočite."

  1. To storite v konfiguracijski datoteki WordPress wp-config.php dodajte vrstico:
    define('DISABLE_WP_CRON', 'true');
    Lahko ga dodate nekje po namestitvi jezika, tj. po črti
    define('WPLANG', 'ru_RU');
  2. Druga rešitev je v sami datoteki wp-cron.php komentirajte vrstico: wp-cron.php ignore_user_abort(true); Če želite to narediti, morate pred njim postaviti dvojno poševnico. Izkazalo se bo takole: //ignore_user_abort(true); Ta vrstica se nahaja v 12. vrstici datoteke.

To je vse, prijatelji.

(Obiskano 304-krat, 1 obisk danes)