Hur-man-gör-guider

Minska CPU-användning med begränsning av WordPress Heartbeat API

  • 12 min läsning
  • Hostragons-teamet
Minska CPU-användning med begränsning av WordPress Heartbeat API

Begränsning av WordPress Heartbeat API innebär att man minskar frekvensen av admin-ajax.php anrop som körs i bakgrunden i WordPress administrationspanel, vilket kan leda till en sänkning av CPU-användningen. Speciellt vid delad hosting, tunga WooCommerce-butiker och flerskribentbloggar kan Heartbeat API skicka förfrågningar till servern var 15-60:e sekund; detta kan resultera i onödig CPU-användning, en långsam administrationspanel och varningar om resursbegränsningar. Lösningen är att inte stänga av API:et helt, utan att justera det till 60-120 sekunder per sida, endast hålla det aktivt där det behövs och mäta resultaten via hostingpanelen.

I denna guide kommer vi steg för steg att förklara vad Heartbeat API gör, när det kan skapa problem, vilka inställningar som är säkra och hur du praktiskt kan minska CPU-användningen på din WordPress-webbplats. Målet är att begränsa onödig bakgrundstrafik utan att störa användbara funktioner som automatisk sparning och sessionkontroll. Om din webbplats ofta får problem med 508 Resource Limit, 503 Service Unavailable eller en långsam WordPress administrationspanel, är dessa inställningar en av de första optimeringarna du bör kontrollera.

Vad är WordPress Heartbeat API?

WordPress Heartbeat API är en mekanism i WordPress som kommunicerar regelbundet mellan webbläsaren och servern. Denna kommunikation sker vanligtvis via /wp-admin/admin-ajax.php. Genom detta system kan WordPress automatiskt spara utkast i redigeringsgränssnittet, meddela att en annan användare redigerar samma inlägg, kontrollera sessionens status och aktivera realtidsnotiser från vissa tillägg.

Låt oss ge ett enkelt exempel: När en redaktör arbetar på inläggsskärmen, skickar WordPress små förfrågningar till servern med jämna mellanrum för att säkerställa att utkastet inte går förlorat. Denna begäran är inte tung i sig. Men om åtta redaktörer, två administratörer och ett team har WooCommerce-panelen öppen samtidigt, ökar antalet förfrågningar snabbt. Tio öppna administrationssessioner kan generera cirka 1.200 Heartbeat-förfrågningar per timme med 30 sekunders intervall. Om tillägg lägger till extra data till dessa förfrågningar kan CPU-användningen bli mycket högre än förväntat.

Därför är Heartbeat API inte en dålig funktion; det blir en prestandaproblem när det fungerar med fel intervall, på onödiga sidor eller tillsammans med tunga tillägg. På en välkonfigurerad webbplats hålls API:et aktivt men frekvensen kontrolleras.

Varför ökar Heartbeat API CPU-användningen?

CPU-användning hänvisar till den processorkraft som servern använder för att köra PHP-processer. Eftersom WordPress är ett dynamiskt innehållshanteringssystem aktiveras teman, tillägg, databaser och WordPress-kärnan i viss utsträckning vid varje PHP-förfrågan. Även om Heartbeat-förfrågningar verkar små, triggar de också PHP-processen.

De vanligaste orsakerna till ökad CPU-användning inkluderar:

  • För frekventa förfrågningsintervall: På vissa skärmar kan Heartbeat gå ner till 15 sekunder. Detta innebär 240 förfrågningar per timme även för en enda användare.
  • Flera öppna flikar: Om en användare lämnar fyra olika flikar öppna i WordPress-panelen kan varje flik generera separat Heartbeat-trafik.
  • Tunga tillägg: Säkerhets-, statistik-, backup-, sidbyggare- och WooCommerce-tillägg kan öka belastningen på Heartbeat-data.
  • Lågresurs hosting: I paket med begränsad CPU kan även små bakgrundsförfrågningar fylla upp gränsen under rusningstid.
  • Krock mellan bot- och verklig användart trafik: När det finns besökstrafik på framsidan använder bakgrundsförfrågningarna i administrationspanelen samma resurser.

Om du ser att admin-ajax.php åtkomst upprepas ofta i access-loggen bör Heartbeat-trafiken undersökas. På Hostragons infrastruktur kan du följa CPU-fluktuationer med hjälp av resursanvändningsdiagram, och utvärdera mer lämpliga paket för dina WordPress-behov genom att titta på WordPress hosting alternativ.

Är det rätt att stänga av Heartbeat API helt?

Det allmänna svaret är: Nej, det rekommenderas inte att stänga av det helt för de flesta webbplatser. Att helt inaktivera Heartbeat API kan sänka CPU-användningen på kort sikt, men det kan också påverka funktioner som automatisk sparning, innehållslåsning, sessionförnyelse och vissa tilläggsnotiser. Speciellt på flerskribentbloggar kan det leda till innehållsförlust om samma inlägg redigeras av två personer.

En mer säker strategi är att hålla API:et aktivt där det behövs och förlänga intervallet. Till exempel kan man ha 60 sekunder för inläggsredigeringsskärmen, 120 sekunder för den allmänna administrationspanelen och stänga av det helt på framsidan, vilket ger balanserade resultat för de flesta företagswebbplatser. I WooCommerce-butiker bör man vara mer försiktig i testerna när det gäller beställningsskärmar och lagerhantering.

Rekommenderade inställningar för Heartbeat API

Rekommenderade inställningar för Heartbeat API
ScenarioRekommenderad inställningFörväntad effektAtt tänka på
Enskild skribentbloggAdmin 120 sek, redaktör 60 sek, framsidan avstängdAdmin-ajax-förfrågningarna minskar avsevärtAutomatisk sparningsintervall bör testas
FlerskribentpublikationswebbplatsRedaktör 60 sek, admin 90-120 sekCPU minskar, innehållslåsning bevarasAntalet öppna flikar för författarna bör övervakas
WooCommerce-butikAdmin 60-90 sek, framsidan försiktigt avstängdPanelens belastning minskarVarukorg, betalning och lager-tillägg bör testas
Företagspresentation webbplatsAdmin 120 sek, framsidan avstängdDen säkraste lättnadenFormulär och säkerhetstillägg bör kontrolleras
Webbplats med resursbegränsningsvarningarTesta först 60 sek, sedan 120 sekCPU-toppar kan minskaMätning krävs med logg- och hostingdiagram

Denna tabell är en utgångspunkt. Den bästa inställningen varierar beroende på antalet användare, tilläggens struktur, temats vikt och hostingresurser. Ändringar som görs utan mätning kan ibland dölja CPU-problemet men löser inte den underliggande orsaken.

Hur man begränsar WordPress Heartbeat API?

Det finns tre praktiska metoder för att begränsa WordPress Heartbeat API: använda ett tillägg, lägga till kod i temats funktionsfil, eller dra nytta av inbyggda inställningar i prestandatillägg. Om du har lite teknisk kunskap är tilläggsmetoden den säkraste. Om du är utvecklare kan du göra mer kontrollerade inställningar med en liten kodsnutt.

1. Metod: Begränsa med Heartbeat Control-tillägget

Den enklaste metoden är att använda ett tillägg som är utvecklat för att hantera Heartbeat-trafik. Med Heartbeat Control som erbjuds av WP Rocket eller liknande pålitliga tillägg kan du definiera olika regler för olika områden.

Steg:

  • Gå till Tillägg > Lägg till nytt i WordPress administrationspanel.
  • Sök efter Heartbeat Control och installera det pålitliga, aktuella tillägget.
  • Efter att du aktiverat tillägget, gå in på inställningsskärmen.
  • Ställ in frekvensen till 60 eller 120 sekunder för instrumentpanelen eller administrationspanelen.
  • Välj 60 sekunder istället för att helt stänga av redigeringsområdet.
  • Stäng av Heartbeat på framsidan eller ställ in det på det längsta intervallet.
  • Spara ändringarna och övervaka CPU-diagrammet under 24 timmar.

Fördelarna med denna metod är att den kan återställas snabbt. Om du upplever problem kan du inaktivera tillägget och återgå till standardbeteendet i WordPress. Nackdelen är att du lägger till ännu ett tillägg på din webbplats. Om du vill hålla antalet tillägg lågt är kodmetoden mer lämplig.

2. Metod: Ändra Heartbeat-intervall med functions.php

Om du vill göra begränsningar med kod, lägg till ändringen i functions.php filen i barn-temat eller en liten anpassad tillägg, istället för att direkt ändra huvudtemats fil. På så sätt går inte dina inställningar förlorade vid temauppdateringar.

Nedan är ett exempel som ökar Heartbeat-intervall till 60 sekunder:

add_filter('heartbeat_settings', 'hostragons_heartbeat_interval'); function hostragons_heartbeat_interval($settings) { $settings['interval'] = 60; return $settings; }

Denna kod närmar sig de kortare standardintervallen till 60 sekunder och minskar antalet förfrågningar. Att öka från 15 sekunder till 60 sekunder kan teoretiskt minska antalet Heartbeat-förfrågningar med 75 procent. Till exempel, i fem administrativa sessioner skulle det bli cirka 300 förfrågningar istället för 1.200 per timme. Den verkliga vinsten beror på hur mycket extra arbete tilläggen lägger på dessa förfrågningar.

Om du vill ha en mer aggressiv inställning kan du stänga av Heartbeat på framsidan men hålla det aktivt i administrationspanelen:

add_action('init', 'hostragons_disable_heartbeat_frontend', 1); function hostragons_disable_heartbeat_frontend() { if (!is_admin()) { wp_deregister_script('heartbeat'); } }

Denna kod inaktiverar Heartbeat-skriptet på framsidan. Men det bör testas noggrant på webbplatser som använder medlemskap, realtidsnotiser, varukorgsuppdateringar eller frontend-redigerare. Om beteendet störs på WooCommerce betalnings-, varukorgs- och "min profil"-sidor, är det säkrare att göra sida-baserade inställningar med ett tillägg istället för denna kod.

3. Metod: Hantera med WP Rocket eller prestandatillägg

Vissa cache- och prestandatillägg erbjuder Heartbeat-kontroll inom sina inställningar. I verktyg som WP Rocket kan du via Heartbeat-fliken välja olika nivåer för admin-panelen, inläggsredigeraren och framsidan. Denna metod minskar behovet av ett extra tillägg på webbplatser som redan använder prestandatillägg.

Var noga med att inte aktivera två olika moduler som gör samma sak samtidigt när du använder ett prestandatillägg. Till exempel kan att ha både WP Rocket Heartbeat-inställningar och ett separat Heartbeat Control-tillägg aktiverat leda till konflikter eller oönskade beteenden. Den grundläggande regeln inom WordPress-optimering är: Använd ett verktyg för att utföra samma uppgift, mät resultatet, och lägg sedan till nya förändringar.

Mäta CPU-användning för att hitta rätt inställning

Att ta mätningar innan och efter att ha ställt in Heartbeat är en viktig del av professionell optimering. Det är inte tillräckligt att bara känna att administrationspanelen känns snabbare. CPU-användningsdiagram, antalet PHP-processer, access-loggar och fel-loggar bör utvärderas tillsammans.

Förslaget till testplan:

  • Ta en startmätning: Registrera CPU- och RAM-diagrammet under 24 timmar innan du gör några ändringar.
  • Granska access-loggen: Kontrollera den timvisa intensiteten av admin-ajax.php förfrågningar.
  • Tillämpa den första inställningen: Öka Heartbeat-intervall till 60 sekunder och stäng av det på framsidan.
  • Vänta 24-48 timmar: Övervaka CPU-fluktuationer under samma trafikförhållanden.
  • Testa 120 sekunder om nödvändigt: Speciellt på företagswebbplatser kan längre intervall vara problemfria.
  • Testa kritiska funktioner: Kontrollera automatisk sparning, WooCommerce-varukorg, orderhantering och medlemskapflöden.

Om CPU-användningen på en företagets WordPress-webbplats stiger till 80-90 procent när administrationspanelen är öppen, kan det att öka Heartbeat-intervall från 15 sekunder till 60 sekunder minska CPU-topparna med 20-40 procent. Men om samma webbplats har ett backup-tillägg som gör en fullständig genomsökning varje timme, kommer Heartbeat-optimering ensam inte att vara tillräcklig. I det fallet måste WordPress hastighetsoptimering och Resursanvändning av hosting behandlas tillsammans.

Är admin-ajax.php alltid relaterat till Heartbeat?

Är admin-ajax.php alltid relaterat till Heartbeat?

Nej. admin-ajax.php används av många olika processer i WordPress. Heartbeat API är bara en av dem. Formulärtillägg, filtreringsfunktioner, realtidssökningar, säkerhetsskanningar, e-handelsvarukorgsuppdateringar och vissa temafunktioner kan också skicka förfrågningar till samma fil.

Därför kan det vara felaktigt att bara titta på trafficen för admin-ajax.php och stänga av Heartbeat. Du kan kontrollera om action=heartbeat finns i payload-delen av begäran genom att öppna nätverksfliken i webbläsarens utvecklarverktyg. Om action-värdet är annorlunda kan problemet komma från ett annat tillägg.

På serversidan kan även en analys av access-loggen göras. Det är viktigt att undersöka vilken IP-adress som gör de intensiva förfrågningarna, vid vilka tider och från vilka referenssidor. Om trafiken är bot-genererad kan en brandvägg, hastighetsbegränsning eller bot-skydd vara en mer korrekt lösning. Att hålla din anslutning säker och korrekt konfigurerad med certifikat är också viktigt för prestanda och säkerhetssignaler, så se till att hålla SSL-certifikat sidan uppdaterad.

Vanliga misstag vid begränsning av Heartbeat

När man letar efter snabba lösningar på WordPress-prestandaproblem kan vissa misstag påverka webbplatsens funktion. Följande punkter är särskilt viktiga för levande webbplatser:

  • Att stänga av API:et helt överallt: Automatisk sparning och innehållslåsning kan bli inaktiverade.
  • Att lägga till kod utan tester på en levande webbplats: Syntaxfel kan orsaka vita skärmsproblem.
  • Att inte kontrollera WooCommerce betalningsflöden: Uteblivna resultat kan uppstå i varukorgs- och beställningsprocesser.
  • Att använda flera prestandatillägg samtidigt: Konflikter kan göra mätningar svårare.
  • Att koppla CPU-problem enbart till Heartbeat: Tunga frågor, bot-trafik eller cron-jobb kan vara den verkliga orsaken.
  • Att göra ändringar utan att ta backup: Vid en enkel kodfel kan återställningstiden förlängas.

Att ta en backup av filer och databaser före ändringar är den mest hälsosamma metoden. Om du vill övervaka domännamn, hosting och webbplatsadministration från ett och samma gränssnitt kan du hantera din infrastruktur mer organiserat med Domänsökning och Webbhotell tjänster.

Ytterligare åtgärder för att minska CPU-användning utanför Heartbeat API

Begränsning av Heartbeat är ett effektivt steg, men WordPress CPU-optimering är en bredare process. För hållbar prestanda bör följande åtgärder även implementeras:

Användning av cache

Sidcache minskar PHP- och databasbelastningen från besökarens förfrågningar avsevärt. När cache är aktiverat för statiska sidor behöver WordPress-kärnan inte köras om från början för varje besök. Detta är en av de mest effektiva metoderna för att minska CPU-användningen.

Ta bort onödiga tillägg

Även inaktiva tillägg kan i vissa fall lämna en belastning i databasen. Utvärdera inte bara antalet aktiva tillägg, utan även deras arbetsbelastning. Gå särskilt igenom statistik, säkerhet, sidbyggare och backup-tillägg regelbundet.

Kontroll av WP-Cron

WordPress cron-system kan aktiveras vid varje besök. På webbplatser med hög trafik ökar detta CPU-användningen. Att köra schemalagda uppdrag med systemcron är en mer kontrollerad lösning. Detta ämne är annorlunda än Heartbeat, men minskar också bakgrundsbelastningen.

Databasutveckling

Revisioner, temporära data, skräpinlägg och gamla transienta poster kan göra databasen överfull. Regelbundet städande minskar frågetiderna. Särskilt på WooCommerce-webbplatser blir optimering viktigare ju större beställningar, sessioner och loggar blir.

PHP-version och hostingresurser

Uppdaterade PHP-versioner ger vanligtvis bättre prestanda. En PHP 8.x-kompatibel tema- och tilläggsstruktur kan ge lägre CPU-användning under samma trafik. Ändå bör mjukvaruoptimering stödjas av rätt hostinginfrastruktur. Om din trafik har ökat kan det vara klokt att överväga VPS-server eller skalbara WordPress hosting-alternativ.

Rekommenderad vägkarta för säker implementering

När du gör begränsningar av Heartbeat API på en levande WordPress-webbplats, följ följande ordning för säkra och mätbara resultat:

  • Ta först en fullständig backup.
  • Registrera nuvarande CPU, RAM och traffic på admin-ajax.php.
  • Verifiera att Heartbeat verkligen skapar intensiv trafik.
  • Stäng av Heartbeat på framsidan eller ställ in det på det längsta intervallet.
  • Undvik att gå under 60 sekunder på inläggsredigeraren.
  • Testa 90-120 sekunder för administrationspanelen.
  • Testa manuellt WooCommerce, medlemskap och formulärfunktioner.
  • Jämför resursanvändning över 24-48 timmar.
  • Om resultaten är otillräckliga, analysera belastningar från tillägg, teman och cron.

Denna metod gör det möjligt för dig att göra datadriven optimering istället för att förlita dig på en enda inställning. Målet med professionell WordPress-underhåll är inte bara att sänka CPU-värdet, utan att samtidigt bevara webbplatsens stabilitet och användarupplevelse.

Slutsats: Stäng inte av Heartbeat, begränsa det klokt

Begränsning av WordPress Heartbeat API är en praktisk optimering som, när den tillämpas korrekt, minskar CPU-användningen, lindrar administrationspanelen och gör att du kan använda hostingresurser mer effektivt. Den friska metoden är att begränsa API:et på framsidan istället för att stänga av det helt, lämna en säker intervall för inläggsredigeraren och testa 60-120 sekunder för administrationspanelen.

Om dina CPU-problem kvarstår kan Heartbeat bara vara utgångspunkten; cache, tilläggsbelastning, WP-Cron, databas och hostingpaket bör bedömas tillsammans. Om du letar efter en mer stabil infrastruktur för din WordPress-webbplats på Hostragons kan du utforska WordPress hosting lösningar och skapa en mjuk uppgraderingsplan baserat på dina aktuella resursbehov.

Vanliga frågor

Bör WordPress Heartbeat API stängas av helt?

Det bör inte stängas av helt för de flesta webbplatser. Funktioner som automatisk sparning, innehållslåsning och sessionkontroll kan påverkas. En säkrare lösning är att stänga av det på framsidan och öka intervallet till 60-120 sekunder för administrationspanelen och redigeraren.

Hur mycket kan Heartbeat API minska CPU-användning?

Det beror på webbplatsens struktur. Att öka intervallet från 15 sekunder till 60 sekunder kan teoretiskt minska antalet Heartbeat-förfrågningar med 75 procent. Den verkliga CPU-vinsten varierar beroende på tilläggens belastning, antalet användare och hostingresurser.

Är hög användning av admin-ajax.php alltid relaterad till Heartbeat?

Nej. Formulär, WooCommerce, realtidssökningar, säkerhetstillägg och temafunktioner kan också använda admin-ajax.php. Du kan kontrollera om en förfrågan är relaterad till Heartbeat genom att kolla action=heartbeat-värdet i nätverksfliken.

Är det säkert att begränsa Heartbeat på WooCommerce-webbplatser?

Det är säkert, men försiktighet vid testning krävs. Varukorg, betalning, orderhantering, lageruppdateringar och medlemskapssidor bör kontrolleras. På WooCommerce-webbplatser är det oftast bättre att förlänga intervallet istället för att stänga av det helt.

Hur länge bör tester göras efter inställning av Heartbeat?

Minst 24-48 timmar av tester rekommenderas. Under denna tid bör CPU-diagram, antalet PHP-processer, admin-ajax.php-förfrågningar och kritiska webbplatsfunktioner övervakas. Om trafikintensiteten varierar mellan veckodagar och helger kan längre mätningar behövas.

Dela detta inlägg:

Hostragons-teamet

Aktuella guider från vårt expertteam inom webbhotell, servrar och domäner. Låt oss hitta rätt lösning för ditt projekt tillsammans.

Kontakta oss