...

Stebėti serverio panaudojimą: Įrankiai ir priemonės, skirtos šiuolaikinių prieglobos aplinkų apkrovai sumažinti

Parodysiu jums, kaip Stebėti serverio panaudojimą ir atpažinti kliūtis realiuoju laiku, kol lankytojai dar neatvyko. Remiuosi konkrečiais įrankiais, aiškiais rodikliais ir praktinėmis priemonėmis, kurios leidžia išmatuoti šiuolaikines prieglobos aplinkas. palengvinti.

Centriniai taškai

  • Pagrindiniai rodikliai iš pirmo žvilgsnio: CPU, RAM, I/O, tinklas
  • Įspėjimai realiuoju laiku ir tendencijų analizės, susijusios su Vorsprung
  • Toolmix iš debesys, agentai, atvirojo kodo
  • Mastelis su apkrovos balansavimu ir spartinimu
  • Automatizavimas ir dirbtinio intelekto palaikomos prognozės

Ką iš tikrųjų reiškia serverio panaudojimas?

Naudojimą suprantu kaip visų aktyvių Ištekliaikurių serveriui reikia programoms, procesams ir prieigoms. Procesoriaus laikas, operatyvioji atmintis, kietojo disko įvesties ir išvesties operacijos ir tinklo vėlavimas - visa tai atlieka lemiamą vaidmenį. Užtenka vienos kliūties, kad sulėtėtų visos darbo apkrovos. Šiuos pagrindinius rodiklius analizuoju kartu ir vertinu atsižvelgiant į darbo krūvį. Taip galiu atpažinti, ar programa lėtėja, ar paslauga stringa, ar duomenų srautas viršija Sistema viršijimas.

Teisingai nuskaitykite pagrindinius rodiklius

Visada tikrinu procesoriaus apkrovos pikus su apkrovos vidurkiu ir procesų eilėmis, kad atskirčiau tikruosius trikdžius nuo trumpalaikių pikų ir sumažinčiau Talpa įvertinti. Operatyviosios atminties atveju skaičiuojami laisvi puslapiai, puslapių talpyklos, apsikeitimo veikla ir "OOM killer" įvykiai. Saugykloje daugiausia dėmesio skiriu IOPS, užlaikymams, eilės gyliui ir skaitymo / rašymo greičiui. Tinkle atkreipiu dėmesį į pralaidumą, pakartotinius perdavimus, paketų praradimą ir neįprastus prievadus. Tik šių reikšmių koreliacija parodo man tikrąją priežastį ir sutaupo brangaus laiko. Reakcijos laikas.

Įrankių apžvalga ir pasirinkimas

Norėdamas užtikrinti patikimą stebėseną, remiuosi agentų, nuotolinių užklausų ir Prietaisų skydeliai. Agentai realiuoju laiku pateikia išsamius prieglobos rodiklius, o nuotoliniai jutikliai tikrina tokias paslaugas kaip HTTP, DNS ar duomenų bazės. Svarbu API, aiški įspėjimo darbo eiga ir geros ataskaitų teikimo funkcijos. Taip pat vertinu išlaidas, integracijos gylį ir mastelio keitimą. Įrankiai turi užtikrinti, kad metrikos būtų tinkamos naudoti, kitaip stebėsena liks paviršinis.

Vieta Įrankis Svarbiausi įvykiai Tinka
1 webhoster.de Išsami stebėsena, prieglobos integracija, intuityvūs prietaisų skydeliai Svetainės, WordPress, mastelio keitimo projektai
2 Paessler PRTG Universalūs jutikliai, skaidrūs paviršiai Hibridinės aplinkos, orientuotos į "Windows" ir SNMP
3 "SolarWinds SAM Programėlių / serverių stebėjimas, galingos ataskaitos Įmonių komandos, vietoje
4 Datadog Realaus laiko analizė, daugybė integracijų Debesų kalba, Konteineriai / "Kubernetes
5 Checkmk Lyginamoji atvirojo kodo stebėsena "Linux" kompiuteriai, įvairūs papildiniai
6 Dynatrace dirbtinio intelekto analizė, pilnas stekas, automatinis atradimas Dideli kraštovaizdžiai, mikroservisai

Norėčiau naudoti aiškų kontrolinį sąrašą su tokiais kriterijais, kaip aprėptis, TCO ir įspėjimo kokybė, ir remtis šiuo kompaktiniu dokumentu. Stebėsenos vadovas kad galėtumėte greitai pradėti. Taip galiu priimti pagrįstus sprendimus ir išvengti vėlesnio įrankio naudojimo. ribotas.

Atvirojo kodo alternatyvos su gyliu

Jei norite visiškai valdyti, naudokite "Zabbix", "Icinga 2" arba "LibreNMS" ir lanksčiai Koregavimai. Pasikliauju moduliniais apklausų vykdytojais, pritaikytais patikrinimais ir apibrėžtais pavojaus signalų keliais. Atvirasis kodas leidžia sutaupyti licencijos išlaidų, tačiau reikia aiškios atsakomybės ir priežiūros. Naudojant "Playbooks" ir IaC šablonus nustatymai yra atkuriami ir saugūs. Naudodamasis struktūrizuotais prietaisų skydeliais ir vaidmenų teisėmis, taip pat veiksmingai vadovauju didelėms komandoms per Stebėsena.

Integracija ir automatizavimas kasdieniame gyvenime

Prijungiu prie kompiuterių ir paslaugų per API, kad naujos sistemos būtų automatiškai matomas galima naudoti. "Home Assistant" kartu su linux2mqtt renka "Linux" metrikas per MQTT ir rodo jas pritaikytose prietaisų skydeliuose. Perspėjimus siunčiu kaip stumiamąjį pranešimą, el. laišką arba Webhook, kai tik viršijamos ribinės vertės. Kad būtų užtikrintas pasirengimas, perspėjimus susieju su "PagerDuty" ir užtikrinu aiškias eskalavimo grandines. Tik automatizuotos reakcijos paverčia neapdorotus duomenis tikrais duomenimis. Prieinamumas.

Neatidėliotinos priemonės, skirtos didžiausioms apkrovoms

Pirmiausia išvalau laikinuosius failus ir uždarau kabančius failus. Paslaugos. Tada atidedu automatinius atnaujinimus iki ramesnių laikų ir patikrinu cron užduotis. Tvarkingas paleidimas iš naujo sumažina nutekėjimą ir atstato neveikiančius procesus. Padidinu su sistema susijusius apribojimus, pavyzdžiui, failų deskriptorių, darbinių procesų ir PHP FPM eilių. Šiomis priemonėmis atitolstu nuo piko ir gaunu laiko tvariai dirbti. Optimizavimas.

Programos optimizavimas: spartinančioji atmintinė ir duomenų bazė

"Redis" naudoju kaip objektų talpyklą ir mažinu duomenų bazių apkrovą naudodamas veiksmingą Pataikymai. "Varnish" pagreitina statinį ir talpykloje talpinamą turinį prieš žiniatinklio serverį. SQL sistemoje tikrinu lėtas užklausas, trūkstamus indeksus ir netikslų rūšiavimą. Ryšių baseinai stabilizuoja pikus, užklausų užuominos užkerta kelią brangiai kainuojančiam visiškam nuskaitymui. Kiekviena sekundė, kurią programa apskaičiuoja mažiau, suteikia pajėgumų realiam darbui. Eismo.

Masteliavimas naudojant apkrovos balansavimo įrenginį ir debesis

Užklausas paskirstau per apkrovos balansavimo įrenginius ir seansus laikau naudodamas slapukus arba centralizuotai Saugykla. Horizontalusis mastelio keitimas padidina lygiagrečiai dirbančių darbuotojų skaičių ir sutrumpina laukimo laiką. Vertikaliai pridedu procesorių, operatyviosios atminties arba "NVMe" saugyklą, jei reikia didelės įvesties ir išvesties apkrovos. Debesyje derinu automatinį mastelio keitimą, momentines nuotraukas ir valdomas paslaugas, kad galėčiau greitai atlikti pakeitimus. Prieglobos pasiūlymai, tokie kaip webhoster.de, suteikia man nuspėjamumo ir techninio lankstumo. Laisvė.

Prognozavimas ir pajėgumų planavimas

Tendencijoms vizualizuoti naudoju ilgalaikes metrines eilutes. padaryti. Sezoniniai modeliai, išleidimai ir rinkodaros pikas siunčia aiškius signalus. Naudoju prognozes, kad nustatyčiau procesoriaus, operatyviosios atminties ir įvesties / išvesties rezervus, kurie užfiksuoja tikruosius pikus. Dirbtinio intelekto palaikomi modeliai atpažįsta anomalijas anksčiau, nei jas pastebi naudotojai. Siūlau įžangą su šiuo kompaktiniu AI prognozavimaskurie padės man priimti sprendimus dėl kito Ketvirtis palengvino.

Tikslinė pagalba "WordPress

Sumažinu įskiepių balastą, įjungiu "OPcache" ir priešais "Full-Page-Cache" patalpinu PHP. Vaizdo optimizavimas, HTTP/2/3 ir "Brotli" suspaudžia duomenų kelius. Objektų talpykla su "Redis" sumažina duomenų bazės paspaudimų skaičių milisekundžių intervale. Širdies ritmo intervalai ir "cron" valdymas sumažina bendrųjų kompiuterių apkrovą. Struktūrizuotą veiksmų planą rasite Veikimo vadovasmano derinimo žingsniai paketai.

Aiškiai apibrėžti paslaugų lygio tikslai

Technologijas paverčiu patikimais paslaugų lygio rodikliais (SLI) ir paslaugų lygio tikslais (SLO), kad komandos žinotų, ką reiškia "gerai". Vietoj to, kad pateikčiau tik procesoriaus procentinius rodiklius, matuoju p95/p99 vėlavimus, klaidų dažnį, prieinamumą ir Apdex. Mano SLO yra orientuoti į verslą: parduotuvei reikia trumpo išsiregistravimo vėlavimo, TVS reikia stabilios redakcinės darbo eigos.

  • SLI: p95 vėlavimas kiekvienam galiniam taškui, klaidų dažnis (5xx), veikimo laikas kiekvienam regionui, eilės vėlavimas, DB įsipareigojimo vėlavimas
  • SLO: pvz., 99,9% veikimo laikas per mėnesį, p95 < 300 ms pradiniam puslapiui, klaidų lygis < 0,1%

Nustatau paklaidų biudžetus, kuriuose aiškiai nurodoma, koks nuokrypis yra toleruotinas. Jei biudžetas išnaudojamas, stabdau rizikingus diegimus ir pirmenybę teikiu stabilumui, o ne naujoms funkcijoms.

Įspėjamasis dizainas be nuovargio nuo signalo

Įspėjimus struktūrizuoju pagal rimtumą ir poveikį. Vietoj atskirų slenkstinių verčių naudoju priklausomus perspėjimus: jei sumažėja programos prieinamumas, pirmiausia patikrinu tinklą ir duomenų bazę ir tik tada pranešu apie procesoriaus triukšmą. Deduplikacija, laiko langai (p95 per 5 minutes) ir histerezė apsaugo nuo drebėjimo.

  • Maršrutai: Įspėjimai komandos pokalbyje, informacija bilietų sistemoje
  • Techninės priežiūros langai ir ramios valandos: suplanuoti darbai netrikdo budėjimo grafiko.
  • Automatinis ištaisymas: vykdykite žurnalo rotaciją ir talpyklos išvalymą, kai diskas yra pilnas.

Kiekvienas "Runbooks" įspėjimas susijęs su konkrečiais Tolesni veiksmai ir nuosavybė. Taip aš išmatuojamai sutrumpinu MTTA ir MTTR.

Stebimumas praktikoje: metrikos, žurnalai, pėdsakai

Derinu metriką su žurnalais ir pėdsakais, kad matytumėte priežastis, o ne simptomus. Koreliacijos ID keliauja per žiniatinklio serverį, programą, eilę ir duomenų bazę, todėl galiu atsekti lėtą užklausą iki įrašo. Žurnalų atranka ir struktūrizuoti laukai padeda išlaikyti sąnaudas ir Signalas pusiausvyrą.

Naudoju "eBPF" palaikomus sistemos profiliuotojus, kad galėčiau analizuoti su branduoliu susijusius karštuosius taškus (syscalls, TCP retransmits, failų užraktai) nepritaikydamas programos. Atsekamieji duomenys rodo N+1 problemas, nerišlias paslaugas ir per mažus jungčių telkinius. Taip galiu nustatyti, ar kliūtis yra kode, infrastruktūroje, ar Priklausomybės užstrigo.

Konteinerių ir "Kubernetes" valdymas

Matuoju mazgo, paketo ir vardų erdvės lygmeniu. Procesoriaus ribojimas, atminties apribojimai ir OOMKilled įvykiai atskleidžia, ar užklausos ir (arba) apribojimai atitinka reikalavimus. Tikrinu p95 vėlavimą kiekvienai paslaugai, podų paleidimus iš naujo, HPA trigerius, "cubelet" sveikatą, "cgroup" spausdinimą ir tinklo politiką.

Diegimo strategijos (mėlyna/žalia, "Canary") mažina pikus. Skaitymo ir gyvybingumo zondai sukonfigūruoti nuosekliai, kad replikos laiku pasisuktų iš apkrovos balansavimo įrenginio. Stabilioms paslaugoms stebiu saugyklų klases, tomų vėlavimus ir Replica-Lag duomenų bazėse.

Testai: Sintetinis, RUM, Paskutinis ir Chaosas

Sujungiu sintetinius patikrinimus (prisijungimas, išsiregistravimas, paieška) iš kelių regionų su realių naudotojų stebėsena, kad pamatytumėte realią patirtį ir kraštutinius atvejus. Prieš dideles kampanijas atlieku apkrovos testus su realiais duomenimis ir scenarijais, nustatau kritinius taškus ir nustatau mastelio keitimo taisykles.

Tiksliniai chaoso eksperimentai (paslaugos sutrikimas, tinklo vėlavimas, duomenų bazės perjungimas) tikrina atsparumą. Svarbu aiški saugumo sistema: griežtai apriboti eksperimentai, atsarginis planas ir pavojaus signalų stebėjimo keliai, kurie sąmoningas gali būti įjungtas.

Pramonės higiena: darbo knygos, budėjimas pagal iškvietimus, skrodimai

Laikausi trumpų ir lengvai įgyvendinamų paleidimo knygų: diagnostikos komandos, prietaisų skydeliai, paleidimo iš naujo komandos, eskalavimas. Budėjimo funkcijos yra aiškios, įskaitant pavadavimą ir budėjimą pagal rotaciją. Po incidentų atlieku be kaltės atliekamą poavarinį tyrimą, kuriame nurodomas laiko grafikas, pagrindinių priežasčių analizė (5 kodėl) ir konkretūs veiksmai, įskaitant terminą ir savininką.

Aktyviai kontroliuoju tokius rodiklius kaip MTTR, pakeitimų nesėkmių dažnis ir aptikimo laikas. Tokiu būdu stabilumas tampa komandos rutina, o ne atsitiktinumu.

Išlaidos ir duomenų strategija: išsaugojimas, kardinalumas, TCO

Duomenų saugojimą planuoju sąmoningai: smulkiuosius rodiklius saugau 14-30 dienų, o apibendrintus rodiklius - 90-365 dienas. Žurnalai atrenkami pagal svarbą ir saugomi be asmens duomenų apsaugos. Vengiu didelio etikečių kartotinumo (pvz., sesijos ID kaip etikečių nenaudoju), kad būtų kuo mažiau saugoma duomenų ir užklausų. plonas laikyti.

TCO išlaikau skaidrią, pateikdamas komandai ir darbo krūviui skirtus išlaidų biudžetus. Prietaisų suvestinėse rodomos išlaidos pagal užklausą, paslaugą ir aplinką. Tai leidžia man dokumentuoti tokias priemones, kaip spartinimas, tinkamo dydžio nustatymas ar nereikalingų rodiklių pašalinimas eurais.

OS ir tinklo derinimas su saiku

Nustatau procesoriaus valdiklį ir IRQ paskirstymą, kad atitiktų darbo krūvį, atkreipiu dėmesį į NUMA ir svarbiausius pertraukimus. Naudodamas daug atminties reikalaujančias programas, tikrinu "Huge Pages", "Swappiness" ir "Transparent Huge Pages" - visada patikrinu naudodamas lyginamuosius testus, o ne vadovaudamasis nuojauta.

Tinkle reguliuoju TCP buferius (rmem / wmem), atsilikimą, "conntrack" ribas ir "keepalive" intervalus. Švarūs laiko šaltiniai (Chrony/NTP) apsaugo nuo dreifo - tai svarbu TLS, žurnalams, pėdsakams ir Replikavimas. Vietinė DNS talpykla sumažina vėlavimo pikus kasdienėje veikloje.

Saugumas ir atitiktis stebėsenos srityje

Agentams suteikiu minimalias privilegijas, keičiu prieigos raktus ir nuolat šifruoju transporto maršrutus. Sertifikatai turi fiksuotas galiojimo datas, o jų atjungimas yra diegimo dalis. Žurnaluose užmaskuoju asmens duomenis (pvz., el. paštą, IP), taikau saugojimo politiką ir dokumentais patvirtinu prieigas audito būdu.

Įspėjimuose taip pat laikomasi mažiausios privilegijos principo: jautrią informaciją mato tik tie, kuriems reikia veikti. Dėl to stebėsena ir duomenų srautas atitinka teisės aktų reikalavimus. ir saugus.

Didelis prieinamumas ir atkūrimas

Kiekvienai paslaugai apibrėžiu RPO/RTO ir juos patvirtinu tikrais atkūrimo bandymais - ne tik atsarginėmis kopijomis, bet ir visišku paleidimu iš naujo. Duomenų bazių atveju matuoju replikos vėlavimą, išbandau perjungimą įvykus gedimui ir tikrinu, ar programos sklandžiai keičia skaitymo ir rašymo kelius.

Veikimo knygose pateikiami avarijų scenarijai (neveikia regionas, sugedusi saugykla) ir aiškūs komunikacijos su suinteresuotosiomis šalimis būdai. Tai reiškia, kad operacijas galima planuoti net esant stresui ir nuspėjamas.

Santrauka: Nuo matomumo iki stabilumo

Pradedu nuo aiškių rodiklių, greitų įspėjimų ir Įrankiskuris tinka aplinkai. Tuomet nuimam apkrovą nuo programų, tikslingai jas plečiame ir automatizuotai apsaugome procesus. Dėl dirbtinio intelekto palaikomų prognozių turiu laiko planavimui, o ne gaisrų gesinimui. Dėl to apkrovos laikas išlieka nedidelis, biudžetas nuspėjamas, o komandos atsipalaidavusios. Išlaikant serverių skaidrumą išvengiama prastovų, o stebėjimas virsta tikru darbu. Konkurencinis pranašumas.

Aktualūs straipsniai