Kako smanjiti opterećenje servera koristeći admin-ajax u WordPress-u. Kako ubrzati WordPress - riješiti se admin-ajaxa Podešavanje učestalosti zahtjeva serveru

Zdravo svima. Nastavljamo s temom ubrzanja WordPress stranice. U članku smo uklonili nepotrebne stvari iz datoteka, ali još ne sve. Općenito, dobra stvar kod WordPress-a je što vam omogućava da promijenite kod na način na koji želite, kako bi odgovarao različitim željama.

Kada kupujete hosting, onda, naravno, procjenjujete koliko je memorije potrebno za stranicu i koliko će biti opterećenje. A, ako ste ograničeni u sredstvima, onda biste trebali sačuvati ove parametre.

U motoru postoji takav mehanizam - HeartBeat API. Zašto je to potrebno? Šta je to?

HeartBeat API je odgovoran za

  • za autosave;
  • za blokiranje stranice ili objave za sve ostale administratore stranice dok tamo nešto uređujete;
  • za ažuriranje informacija o prisutnosti korisnika u konzoli.

Razumijete, nadam se da u ovom trenutku jednostavno dolazi do proždiranja resursa, jer postoje stalni zahtjevi za hostovanje fajla admin-ajax.php. A ako želite otvoriti nekoliko kartica administratorske ploče odjednom, onda je ovo potpuna nevolja. Oprostite mi na žargonu. Zahtjevi se šalju samostalno za svaku karticu.

Esencijalno HeartBeat API je mehanizam koji najviše troši resurse od svih u WordPress engine-u.

Da li vam je potreban takav mehanizam? Naravno, svako odlučuje za sebe. Ne treba mi.

Smatra se da ga ima smisla onemogućiti ako ste jedini administrator, kao i ako imate dovoljno resursa na vašem nalogu, ali dok je administrator u konzoli, opterećenje se povećava, i to značajno.

Prema mojim zapažanjima, nakon isključivanja HeartBeat API-ja, zauzeti volumen moje stranice smanjio se za skoro 2,5 puta! Ozbiljan sam. Šteta što nisam napravio snimak ekrana, ali ne želim da se vratim u prvobitno stanje.

Kako ubrzati WordPress stranicu isključivanjem HeartBeat API-ja

Ugasiti HeartBeat API kod

Sve je vrlo jednostavno. Morate ga dodati na početak datoteke functions.php, odmah nakon oznake

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

I bićete srećni.

Pažnja! Ovaj kod možda nije prikladan za vašu web lokaciju. Sve zavisi od instalirane teme, dodataka i postavki. Možete pokušati i, ako je kod nekompatibilan s bilo kojim elementom stranice ili se nešto pokvari i ne radi, uvijek možete sve vratiti nazad. Samo obrišite kod.

Dodatak HeartBeat Control

Niste zadovoljni kodovima i bojite se da ćete oštetiti svoju web lokaciju? Postoji takvo rješenje za vas.

Instalirajte dodatak HeartBeat Control (odaberite dodatke u konzoli, instalirajte novi, potražite dodatak, instalirajte i aktivirajte).

Idite na postavke (u konzoli Tools -> HeartBeat Control). U postavkama možete odabrati sljedeće opcije:

1. Da li da onemogućite HeartBeat za cijelu stranicu ili da ga koristite za neke dijelove.

2. Možete i trebate urediti učestalost zahtjeva u fajlu admin-ajax.php. Prilikom instalacije najvjerovatnije je naznačeno kao 15 sekundi. Ako promijenite, recimo, na 30 sekundi, tada će se potrošnja resursa za ove zahtjeve smanjiti za 25%! A ako produžite vrijeme još više, onda još više. Impresivno, zar ne?

Pažnja!

  • Onemogućavanje HeartBeat API-ja onemogućava funkciju automatskog čuvanja. S vremena na vrijeme, sačuvajte stranice i unose prilikom njihovog uređivanja (po potrebi).
  • Onemogućavanje HeartBeat API-ja događa se u određenom predlošku. Ako promijenite šablon, onda se sve mora ponoviti.
  • Ako ste ažurirali trenutnu temu, nakon ažuriranja gašenje se mora ponoviti.

Sretno svima!

2016-05-05T09:48:44+00:00 Hope WordPress kako ubrzati wordpress

Zdravo svima. Nastavljamo s temom ubrzanja WordPress stranice. U članku Kako ubrzati WordPress minimiziranjem CSS, HTML i Javascript, uklonili smo nepotrebne stvari iz datoteka, ali ne sve. Općenito, dobra stvar kod WordPress-a je što vam omogućava da promijenite kod na način na koji želite, kako bi odgovarao različitim željama. Kada kupujete hosting, onda, naravno, vodite računa o...

Nadezhda Trofimova [email protected] Administrator Blog site

Možda će vas zanimati i:

Kako napraviti Favicon za web stranicu

Favicon je prekrasna ikona koju svi vide pored naziva stranice u pretraživaču. Favicon omogućava vašoj web stranici da se istakne kako u oznakama pretraživača tako i...

Predivna dugmad za sajt

Dobar dan svima. Odjednom postoje ljudi koji žele postaviti lijepe dugmad na svoju web stranicu, ali ih ne mogu pronaći. U stvari, probao sam na pretraživačima...

Primjer 404 stranice

Zdravo, dragi čitaoče mog bloga. Ovaj članak ne govori o apsolutno ničemu, samo sam konačno došao do stranice 404.

Kako i gdje se pišu oznake naslova i opisa

Šta su oznake naslova i opisa? Ove oznake su neophodne za optimizaciju vaše stranice. Ako su oznake napisane pogrešno, pretraživači neće indeksirati vaš članak. Puno...

Za bolji SEO i korisničko iskustvo, stručnjaci uvijek preporučuju krajnjem korisniku. U tom kontekstu, ako imate puno korisnika koji posjećuju vašu web-lokaciju, WordPress kontrolna ploča može sporo reagirati.

Dok ste testirali brzinu vaše WordPress stranice pomoću alata za testiranje brzine na mreži, možda ste primijetili da je datoteka admin-ajax.php odgovoran za sporo učitavanje. U ovom članku ćemo objasniti o ovoj datoteci i kako možete smanjiti vrijeme odgovora servera i korištenje CPU-a smanjenjem broja zahtjeva koje generiše admin-ajax.php.

Šta je admin-ajax.php u WordPress-u?

Još 2013. godine WordPress je predstavio WordPress Heartbeat API, koji je pružio nekoliko važnih funkcija kao što je funkcija automatskog spremanja kada istekne prijava i upozorenje o zabrani dok drugi korisnik piše ili uređuje objavu na WordPress-u.

Dvije vrlo karakteristične karakteristike Heartbeat API-ja:

1. Autosave

Kad god sačuvate nacrt posta i nastavite raditi na njemu, WordPress automatski sprema vaše dodatke objave. Postoji jasna razlika između automatskog spremanja i ručnog spremanja projekta. Pogledajte sljedeći snimak ekrana koji prikazuje obje vrste spremanja:

2. Blokiraj poruku

Kad god pokušate urediti objavu na kojoj radi drugi korisnik, pojavit će se upozorenje o situaciji. Na raspolaganju su vam tri akcije.

Gore navedene karakteristike su omogućene WordPress Heartbeat API-jem, koji stvara vezu između servera i pretraživača za odgovarajuću poruku i odgovore.

WordPress Heartbeat API generira zahtjeve za komunikaciju sa serverom i pokreće događaje za primanje/odgovor podataka. Ovo općenito povećava opterećenje servera i na kraju usporava rad WordPress admin panela.

Živi primjer

Ulogovali smo se na WordPress kontrolnu tablu i počeli uređivati ​​objavu. Zatim smo karticu ostavili otvorenu na nekoliko minuta i počeli da pretražujemo druge kartice. Instrument tabla je još uvijek u sistemu i to možete vidjeti admin-ajaxkontinuirano šalje zahtjeve.

Prema gore pomenutom tiketu, admin-ajax.php u WordPress-u generiše zahteve svakih 15 sekundi. Zahtjev može biti bilo koja veza sa serverom.

Ubrzajte WordPress admin panel

Da biste ubrzali pozadinu WordPress-a, najbolji pristup je onemogućiti Heartbeat API ili ga barem postaviti na duži vremenski period kako ne bi generirao zahtjeve serveru svakih nekoliko sekundi.

Instalirajte dodatak Heartbeat Control

Prijavite se na svog WordPress administratora i idite na Dodaci >> Dodaj novo, nađi Kontrola otkucaja srca, instalirati I aktivirati njegov.

Idite na karticu Postavke >> Kontrola postavki otkucaja srca. Tamo ćete pronaći tri padajuća menija za konfiguraciju dodatka.

Možete odabrati područje u kojem će Heartbeat API raditi. Postoje tri opcije za izbor:

  • WordPress Dashboard: Ovo će omogućiti Heartbeat API u WordPress panelu.
  • Frontend: Ovo će omogućiti API u web sučelju.
  • Urednik poruka: Označite ovo polje ako želite da dozvolite Heartbeat API-ju da omogući automatsko spremanje i funkcije blokiranja pošte.

Odaberite ovu opciju ako želite da se WordPress Heartbeat API onemogući na određenim lokacijama. Budite oprezni pri odabiru lokacije jer drugi dodaci također mogu koristiti WordPress Heartbeat API. Ako ste jedini korisnik WordPress backend-a, predlažem da ga onemogućite svuda, a zatim provjerite da li kvari web stranicu. Međutim, ako vaša stranica ima više od jednog korisnika koji redovno doprinose, predlažemo da omogućite Heartbeat API samo na stranicama za uređivanje nakon uređivanja.


Ovaj padajući meni vam omogućava da podesite vremenski interval, u rasponu od 0 do 300 sekundi, za izvršavanje administratorskih Ajax zahteva. Ako ga instalirate na 120 sekundi, tada će se zahtjev generirati svakih 120 sekundi. Ovo će značajno smanjiti opterećenje servera. Prilagodite ga svojim potrebama.

Kreiranje višestrukih pravila

Možete kreirati više pravila na osnovu vaših zahteva. Na primjer, želite da se WordPress pokreće svakih 120 sekundi, ali nakon uređivanja pali 60 sekundi. Da biste to učinili, morate kreirati dva pravila. Jedan za kontrolnu tablu WordPress, a drugi za uređivač postova i postavite njihovu frekvenciju na 120 odnosno 60.

Sada kada ste sve podesili, vrijeme je da provjerite koji dodaci usporavaju vašu web stranicu pomoću datoteke admin-ajax.php.

Idite na GTmetrix, unesite URL svoje stranice. Za analizu stranice trebat će nekoliko minuta. Nakon toga idite na karticu Vodopad i vidjet ćete koliko je potrebno datoteci za povezivanje i odgovor. Pomaknite se malo prema dolje i pogledajte da li postoji unos POST admin-ajax.php. Ako jeste, proširite ga i idite na karticu Post. Ovdje možete identificirati krivca. U našem slučaju, dodatak “desktop switch” koristi datoteku admin-ajax.php i kontinuirano šalje zahtjeve serveru. Ovo je vrijeme da donesete odluku da ga zamijenite drugim dodatkom ili ga uklonite.

Završne riječi

S obzirom na svoj skup funkcija, Heartbeat API je vrlo koristan na vašoj WordPress stranici. Međutim, ako se ne koristi ispravno, može povećati vrijeme učitavanja na WordPress backend-u i na samoj stranici, šaljući zahtjeve naprijed-natrag WordPress-u.

Postoje samo dva rješenja za ovaj problem. Ili onemogućite Heartbeat API/omogućite ga samo na nekoliko mjesta.

Ako koristite bilo koji dodatak za keširanje, kao što je W3TC, obavezno onemogućite predmemoriju objekata. Ovo će također ubrzati vašu WordPress kontrolnu ploču.

Ako imate bilo kakve prijedloge ili zahtjeve, slobodno ostavite komentar ispod.

Uobičajeni scenario kada radite sa WordPress-om je dijagnosticiranje povećane upotrebe admin-ajax.php. Ako već neko vrijeme radite sa WordPress-om, najvjerovatnije ste naišli na ovaj problem prilikom pokretanja testova brzine treće strane ili provjeravanja evidencije pristupa serveru. Obično je povećana upotreba admin-ajax.php povezana sa upotrebom dodataka trećih strana ili čestim zahtjevima koji se ne mogu keširati sa administrativnog panela na osnovu Heartbeat API-ja (na primjer, automatsko spremanje nacrta). Veoma je važno odmah identifikovati tako velike skokove u posetama admin-ajax.php, jer oni mogu dovesti do toga da sajt bude nedostupan. Pogledajte preporuke u nastavku za rješavanje problema admin-ajax.php u WordPress-u.

Šta je datoteka admin-ajax.php?

Sam fajl admin-ajax.php nije loš ako se pravilno koristi. Djeluje kao dio jezgra. Datoteku je dodao razvojni tim WordPress-a u izdanju 3.6. Svrha admin-ajax.php je stvaranje veze između pretraživača i servera koristeći AJAX. Ovo omogućava napredne funkcije uključujući poboljšano automatsko spremanje, praćenje verzija, vremenska ograničenja za prijavu, upravljanje sesijom i obavještenja o zaključavanju nakon što više autora uređuje objavu. Sve ove funkcije su odlične, posebno za one korisnike koji podržavaju stranice s više autora i administratora.

“Ideja je implementacija relativno jednostavnog API-ja koji će slati XHR zahtjeve serveru svakih 15 sekundi i pokretati događaje (ili povratne pozive) kada se podaci prime. Ostale komponente će takođe moći da se „priključuju“ ili primaju obaveštenja o aktivnostima drugih korisnika. Ovo se može koristiti za blokiranje istovremenog uređivanja widgeta ili menija, ili drugih zadataka koji zahtijevaju redovna ažuriranja sa servera."

Osim ako niste tehnički podkovan korisnik, jedina situacija koja će vam biti važna u kontekstu admin-ajax.php je pokušaj da shvatite zašto se ovaj fajl usporava u testovima (na primjer, u Pingdomu). Ili možete vidjeti gomilu zahtjeva za ovu datoteku u evidenciji pristupa hostingu.

Pojava admin-ajax.php u testovima brzine i pristupnim evidencijama je obično rezultat dva različita scenarija: jedan u frontendu i jedan u backendu. Pričaćemo o ovome kasnije.

Dodaci mogu uzrokovati usporavanje admin-ajax.php

Najpopularniji problem sa kojim se korisnici suočavaju u kontekstu admin-ajax.php uzrokovan je dodacima trećih strana. Ovo je obično vidljivo na prednjem kraju i pokazuje se u testovima brzine. Programeri koriste ovu datoteku ili AJAX da dodaju funkcionalnost svojim dodacima. Samo zato što vidite zahtjev za admin-ajax.php ne znači da će to nužno usporiti stranicu. AJAX se učitava nakon što je stranica predstavljena, a neki zahtjevi se mogu učitati asinhrono. Ali to ne znači uvijek da je programer ispravno izvršio preuzimanje i napisao efikasan kod u smislu performansi.

Ispod su primjeri kako smo brzo dijagnosticirali usporavanje u admin-ajax.php. Koristili smo GTmetrix jer nam omogućava da ispitamo pojedinačne podatke o objavama i odgovorima. Pingdom nam, nažalost, ne dozvoljava da vidimo zahtjeve za podacima u obrascima. Također možete koristiti Google Chrome Devtools ili WebPageTest.

Visoko opterećenje na admin-ajax.php kada se koristi dodatak Visual Composer

Ispod je naša WordPress stranica na kojoj smo imali vrlo velike latencije kada smo koristili admin-ajax.php. Kao što možete vidjeti iz GTmetrixa, latencija zahtjeva za admin-ajax.php je preko 8 sekundi. Ostatak "vodopada" izgleda dobro, ali ovo kašnjenje moraju riješiti vlasnici web lokacija.

Ako kliknete na POST admin-ajax.php zahtjev, vidjet ćete sljedeće tri kartice: Zaglavlja, Objava i Odgovor. Prilikom dijagnosticiranja problema koje gledamo, zanimat će nas samo kartice Post i Response. Savjeti se mogu vidjeti na kartici Odgovor. Vidimo da je dio zahtjeva povezan sa vc_shortcodes-custom-css skriptom.

Brzo kopiranje i lijepljenje u Google otkriva da je problem uzrokovan dodatak Visual Composer.

Sljedeći korak za korisnika je da osigura da je dodatak Visual Composer potpuno ažuriran. Ako jeste, onda morate kontaktirati programere dodataka i reći im o problemu sa admin-ajax.php. Ovo je zapravo prilično čest problem, sudeći po objavama na Stack Overflowu. Ako programer ne može to riješiti u svom dodatku, uvijek postoji nekoliko alternativnih dodataka koji rade otprilike istu stvar - to je moć WP-a. Na primjer, ako su vam potrebni graditelji stranica, onda možete isprobati Beaver Builder ili Elementor.

Visoko kašnjenje sa admin-ajax.php zbog dodatka trake za obavještavanje

Drugi primjer na koji smo sami naišli dogodio se nakon instaliranja dodatka treće strane. Primijetili smo nagli porast zahtjeva za admin-ajax.php.

Opet, ako kliknete na admin-ajax.php POST zahtjev, onda možete sve detaljno istražiti. Vidimo da podaci sadrže string “action=mtsnb_add_impression&bar_id=88&ab_variation=none”.

Tačno, prvi dio post akcije se obično odnosi na CSS klasu dodatka. Napravili smo brzu Google pretragu za "mtsnb" i otkrili da se ova klasa koristi u dodatku trake za obavještenje koji pokrećemo na našoj web stranici.

Ako ste programer, postoje i drugi načini da pratite koji dodatak može generirati POST odgovor, ali smatramo da su metode opisane u ovom članku vrlo učinkovite.

Staromodni metod određivanja izvora admin-ajax.php zahtjeva

Iznad smo dali nekoliko jednostavnih načina da pronađete dodatak na WordPress stranici koji može dovesti do ovog problema sa admin-ajax.php. Prema našem iskustvu, ove metode djeluju u 99% slučajeva. Međutim, dešava se i da POST podaci ili radnje možda nisu tako jasni, pa ćete stoga morati ići starim provjerenim putem. Jednostavno onemogućite sve dodatke na vašoj WordPress stranici. Pokreni test brzine. Ako admin-ajax.php nigdje nije pronađen, tada omogućite svaki dodatak zauzvrat i izvršite test brzine. Na ovaj način možete brzo identificirati problematični dodatak.

Problemi sa CPU-om sa admin-ajax.php u pozadini

Drugi veliki problem je to što WordPress Heartbeat API koristi admin-ajax.php za pokretanje AJAX poziva iz web pretraživača, što može dovesti do velike upotrebe CPU-a. Svaki AJAX zahtjev također učitava kompletnu pozadinu WordPress-a, zaobilazeći sve oblike keširanja. Obično ovo nećete vidjeti u testovima brzine. Ovo je posebno važno znati za one koji koriste jeftin dijeljeni hosting, jer nemaju puno prostora za pomicanje kada je u pitanju CPU. Ovaj problem se već pojavio kod HostGator hostinga.

Jedan od scenarija s kojim morate biti vrlo oprezni je automatsko spremanje u WordPress-u i otvaranje kartica. Na primjer, pokrenuli smo novi projekat na našoj web stranici i ostavili karticu otvorenom. Heartbeat API podrazumevano ispituje datoteku admin-ajax.php svakih 15 sekundi da izvrši automatsko spremanje. To se može vidjeti u evidenciji pristupa. Ako ostavimo karticu otvorenu jedan dan, jedan post bi mogao generirati 5.760 zahtjeva dnevno.

To je previše backend zahtjeva za jednu osobu. Zamislite šta bi se dogodilo da imate nekoliko urednika na svom sajtu. Ovi zahtjevi će se eksponencijalno povećati. Na ovo smo se susreli tokom našeg istraživanja sa DARTDrones, u kojem smo pomogli da se proširi njihov WooCommerce sajt za Shark Tank. Imali su preko 4100 poziva na admin-ajax.php dnevno, dok je posjetilaca bilo svega 2000. Ovo nije najbolji odnos zahtjeva i posjeta. Naše istraživanje je pokazalo da je većina zahtjeva dolazila sa konzole – generirani su zbog činjenice da su administratori ažurirali stranicu, pripremali je za prikaz.

Postoji način da se otkriju neki problemi sa pozivima admin-ajax.php u backend-u kada su u pitanju autosave, revizije, zaključavanje zapisa itd. Da biste to učinili, morate instalirati dodatak Heartbeat Control.

Dodatak Heartbeat Control je trenutno instaliran na preko 50.000 stranica i ima ocjenu 5 od 5. Prošle su 2 godine otkako je ažuriran, ali i dalje radi isto, jer ni Heartbeat API nije ažuriran.

Dodatak vam omogućava da kontrolišete učestalost poziva na WordPress Heartbeat API sa nekoliko klikova. Prva opcija vam omogućava da kontrolirate lokaciju otkucaja srca - na primjer, onemogućite je svugdje ili dozvolite samo na stranicama za uređivanje postova. Preporučujemo korištenje druge opcije, jer potpuno onemogućavanje dodatka može uzrokovati prestanak rada nekih dodataka koji ovise o Heartbeat API-ju.

Druga opcija vam omogućava da podesite frekvenciju pozivanja. Promjena sa 15 sekundi na 60 sekundi omogućit će vam da značajno uštedite broj zahtjeva i uštedite resurse servera (smanjenje opterećenja CPU-a).

Također možete koristiti premium dodatak kao što je perfmatters da isključite otkucaje srca, promijenite frekvenciju anketiranja i izmijenite interval automatskog spremanja.

Zaključak

Kao što vidite, postoji nekoliko brzih i lakih opcija za dijagnosticiranje i rješavanje problema sa admin-ajax.php. Obično se pojavljuju zbog dodataka trećih strana koji mogu biti u sukobu jedni s drugima ili imaju lošu bazu koda.

Jeste li naišli na ovaj problem na svojoj web stranici? Ako jeste, podijelite svoje priče.

Tok korisnih savjeta korisnicima najpopularnijeg besplatnog CMS-a na svijetu neće prestati. Upravo zato što je popularan i zato što ima karakteristike koje je važno zapamtiti. Prethodno smo pričali o tome kako:

Danas ćemo malo proširiti drugu temu i onemogućiti vrlo intenzivnu resursno intenzivnu i nije svima potrebna WordPress mehanizam tzv. HeartBeat API.

HeartBeat API— WordPress funkcionalnost koja pruža stvari kao što su:

  • Autosave;
  • Zaključavanje objave ili stranice za druge urednike stranice dok objavu ili stranicu uređuje jedna osoba;
  • Ažurirajte informacije da je korisnik još uvijek u administrativnom dijelu (konzoli).

To radi održavanjem veze između vašeg pretraživača (gdje uređujete web lokaciju) i servera (na kojem je stranica pohranjena).

Zapravo, to se izražava u stalnim zahtjevima u intervalu od 15-30 sekundi (u zavisnosti od instalirane verzije) na jednu određenu datoteku admin-ajax.php sa gotovo bilo koje stranice administrativnog panela. Situacija se pogoršava ako više volite da držite otvorene više kartica konzole odjednom: zahtjevi se šalju autonomno sa svake kartice. Zapravo, HeartBeat API je najzahtjevniji od svih standardnih WordPress mehanizama.

Danas ćemo onemogućiti ovu funkciju. Preporučuje se da onemogućite HeartBeat API za vašu WordPress stranicu ako:

  • Općenito, vaše web stranice imaju dovoljno resursa na vašem računu, značajno prekoračenja se javljaju samo tokom rada u konzoli;
  • Sajt uređujete samo vi lično(to jest, stranica ima 1 uređivača, a ne nekoliko).

Pažnja! Ovo rješenje nije prikladno za sve lokacije. Ovo zavisi od teme instalirane na sajtu, dodataka i pojedinačnih postavki sajta. Možete ga isprobati i ako se pokaže da nije kompatibilan s bilo kojim elementom stranice ili utiče na funkciju stranice koja vam je važna, uvijek možete omogućiti HeartBeat API vraćanjem prethodnih postavki.

Kako onemogućiti HeartBeat API

Da biste to učinili, potrebno je izvršiti promjene u datoteci functions.php unutar foldera sa trenutno aktivnom temom (šablonom) stranice. To se može učiniti u upravitelju datoteka ili putem FTP-a.

Putanja do datoteke functions.php izgleda ovako: /path_to_site_root/wp-content/themes/theme_name/functions.php.

Dodajte na sam početak datoteke nakon oznake

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

Ove linije onemogućuju HeartBeat za cijelu web lokaciju.

Dodatak HeartBeat Control

Postoji i manje radikalno rješenje od potpunog onemogućavanja HeartBeat API-ja. Obezbeđuje ga poseban dodatak Kontrola otkucaja srca. Instalirajte ga, aktivirajte ga i idite na postavke (Alati -> HeartBeat Control). U postavkama možete odabrati sljedeće opcije:

1. Da li da onemogućite HeartBeat za ceo sajt ili da dozvolite njegovo korišćenje samo za određene njegove delove, na primer, za stranicu za uređivanje i objavljivanje postova u administrativnom panelu.

2. Učestalost zahtjeva prema fajlu admin-ajax.php. Podrazumevano može biti 15 sekundi - promijenite ovu vrijednost, na primjer, na 60 sekundi, i time Smanjite potrošnju resursa za ove upite za čak 75%!

Šta je važno zapamtiti

  • Onemogućavanjem HeartBeat API-ja onemogućili smo funkciju automatskog čuvanja. Sačuvajte uređene stranice i postove povremeno (po potrebi).
  • Pošto je HeartBeat API onemogućen na nivou teme (šablona) sajta, čim promenite temu (šablon), HeartBeat API će ponovo raditi. Postupak onemogućavanja će se morati ponoviti za svaku novu temu koju počnete koristiti na stranici.
  • Isto vrijedi i za ažuriranje trenutne teme: nakon ažuriranja, postupak isključivanja se mora ponoviti.

Želimo Vam ugodan rad!

Bio sam primoran da kreiram ovaj post zbog problema koji je počeo sve upornije da kuca na moju stranicu. Problem je otvaranje stranica stranice i rad u admin panelu. Postali su toliko jaki i učestali da je postalo teško sastaviti čak i malu poruku. Veza sa serverom je stalno padala. Visoko opterećenje CPU-a, što znači prekoračenje takozvane meke granice, dešavalo se konstantno; Počeo sam vrlo često primati e-mail poruke od Metrice i Jetpack dodatka, u kojima se navodi da je stranica često nedostupna, čak i u vrijeme kada nisam radio na njoj. Ukratko, ponovo me obuzeo užasan užas sa problemom brzine sajta. I ponovo sam kontaktirao službu podrške na svom hostingu “Gino”

Odgovor je stigao odmah, a daljim dijalogom uz mala objašnjenja shvatio sam suštinu problema i uspio sam ih riješiti.

Hosting podrška mi je prije svega skrenula pažnju na veliki broj zahtjeva za /wp-admin/admin-ajax.php.“Zahtjevi kreiraju radnje u administrativnom panelu stranice. Ovo ponašanje je tipično ako jedan od dodataka ne radi ispravno. Onemogućite dodatke stranice jedan po jedan i pratite njihov rad. Ako pronađete problematičan dodatak, pokušajte ga ažurirati ili instalirati stabilnu verziju, ili ga zamijenite analognim koji ne uzrokuje probleme.”

Na mojoj stranici je instalirano dosta dodataka i provjera svakog pojedinačno je vrlo problematična. Stoga sam obratio pažnju na link koji mi je tehnička podrška ostavila za dodatak Kontrola otkucaja srca. Instaliranje i neke druge postavke su riješile moj problem!

Služba tehničke podrške je također ukazala na još jedan problem i predložila da se preduzmu neki koraci za ispravljanje koda u datoteci wp-cron.php. Ali o ovom problemu na kraju poruke.

Pa, sada da pređemo na suštinu gore navedenog.

Šta je Heartbeat API na WordPress-u i kako ga ograničiti

Riječ “Heartbeat” se prevodi kao “Heartbeat” i s razlogom se tako zove za API. Obezbeđuje određenu učestalost zahteva serveru. Podrazumevano i u zavisnosti od stranice administratorskog panela, to se dešava u različitim intervalima: prilikom uređivanja zapisa - svakih 15 sekundi, kada radite u Konzoli - jedan minut. WordPress Heartbeat API je funkcija koja pruža:

  • Automatsko spremanje prilikom kreiranja poruka;
  • Blokiranje postova ili stranica za druge urednike stranice dok objavu ili stranicu uređuje jedna osoba;
  • Ažurirajte informacije da je korisnik još uvijek u administrativnom dijelu (konzola ili stranica za uređivanje objave).

Ova funkcija, napisana u WordPres engine-u, veoma je važna, posebno kada više autora može da radi na sajtu, a administracija je kolektivna. Međutim, to također može uzrokovati usporavanje stranice i značajno povećanje opterećenja na serveru.

Ako ste jedini autor stranice, tada se funkcija Heartbeat API može ili potpuno onemogućiti ili konfigurirati na način koji vam odgovara, omogućavajući vam regulaciju opterećenja na serveru.

Potpuno onemogućavanje Heartbeat API-ja

Ovaj teški scenario, koji nisam želeo da uradim, je da morate da uradite neku operaciju u datoteci functions.php vaše teme koja je trenutno instalirana na sajtu.

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

Naravno, kada ažurirate ovu temu ili je zamijenite drugom, morat ćete ponoviti ovu operaciju.

Dodatak za kontrolu otkucaja srca i njegove postavke

Postoje samo dva podešavanja i, unatoč činjenici da je dodatak na engleskom, za one koji ne znaju ovaj jezik neće biti teško razumjeti ih. Da vas podsjetim da je postavljanje dodatka koristi zadano znači da Heartbeat API nije onemogućen ni na jednoj stranici, a interval zahtjeva do servera je 15 sekundi. Odnosno, sve izgleda kao da ovaj dodatak nije na vašoj web stranici.

4. Korištenje postavki za stranice admin panela

Radi jasnoće, razjasnit ću:

1. use default - koristite Heartbeat API po defaultu;
2. disable everywhere — onemogućite Heartbeat API svuda;
3. onemogućiti na kontrolnoj tabli — onemogućiti Heartbeat API na stranici kontrolne table (konzola);
4. dozvoli samo sa stranica za uređivanje postova - koristite Heartbeat API samo kada uređujete stranice.

2. Podešavanje učestalosti zahtjeva prema serveru

Ovdje je sve vrlo jednostavno. Potrebno je samo odabrati odgovarajući interval zahtjeva prema sjeveru. Što je rjeđi "puls" - što su zahtjevi rjeđi - manje je opterećenje na serveru.

Nakon podešavanja, sačuvajte promjene.

Budući da je automatsko pohranjivanje snimaka tokom njihovog uređivanja i dalje poželjna funkcija (nepotrebne izmjene možete naknadno izbrisati čišćenjem pomoću posebnih dodataka), a gubitak skoro završenog snimka iz nekog tehničkog razloga je neugodan (izgubljeni internet ili veza sa serverom itd.). ) je veoma nepoželjan. Dakle, postavka za prvi blok u polju može se postaviti na “use default” mod, ali će biti sasvim dovoljno da se postavke u drugom bloku, budući da se tajmer frekvencije zahtjeva postavlja na fajl admin-ajax.php . V 60 sec. će smanjiti potrošnju resursa za ove zahtjeve za čak 75%!

Naravno, postoji mnogo razloga zašto web stranice mogu usporiti. Bez odgovarajućeg znanja i rada sa njima, jednostavno ne znamo šta uzrokuje takve vrlo nepoželjne procese. Vjerovatno ćemo morati češće kontaktirati stručnjake, uključujući tehničku podršku za hosting.

Na početku članka spomenuo sam da su mi pomoćni radnici skrenuli pažnju na još jedan razlog za poteškoće u radu mojih stranica. Razlog -

Neželjeni procesi u datoteci wp-cron.php

Tehnička podrška je, kao rezultat istraživanja rada mojih sajtova, primetila da se na njima „uočavaju procesi wp-cron.php“. Preporučili su: "Ako pokretanje ove datoteke uzrokuje nezdravo opterećenje na serveru - možete onemogućiti ove zadatke."

  1. Da biste to učinili u WordPress konfiguracijskoj datoteci wp-config.php dodajte red:
    define('DISABLE_WP_CRON', 'true');
    Možete ga dodati negdje nakon instaliranja jezika, tj. nakon linije
    define('WPLANG', 'ru_RU');
  2. Drugo rješenje je u samom fajlu wp-cron.php komentirajte red: wp-cron.php ignore_user_abort(true); Da biste to učinili, morate joj prethoditi dvostrukom kosom crtom. Ispast će ovako: //ignore_user_abort(true); Ovaj red se nalazi u 12. redu datoteke.

To je sve, prijatelji.

(Posjećeno 304 puta, 1 posjeta danas)