{"id":21483,"date":"2026-09-17T11:51:02","date_gmt":"2026-09-17T09:51:02","guid":{"rendered":"https:\/\/webhosting.de\/linux-vmstat-richtig-interpretieren-performanceanalyse-monitoring\/"},"modified":"2026-09-17T11:51:02","modified_gmt":"2026-09-17T09:51:02","slug":"att-tolka-linux-vmstat-korrekt-prestandaanalys-och-oevervakning","status":"publish","type":"post","link":"https:\/\/webhosting.de\/sv\/linux-vmstat-richtig-interpretieren-performanceanalyse-monitoring\/","title":{"rendered":"Att tolka vmstat i Linux p\u00e5 r\u00e4tt s\u00e4tt f\u00f6r en effektiv prestandaanalys"},"content":{"rendered":"<p>Jag visar dig hur du tolkar vmstat i Linux p\u00e5 ett m\u00e5lmedvetet s\u00e4tt: Du kan uppt\u00e4cka CPU-flaskhalsar, minnesbelastning, swap och I\/O-v\u00e4ntetider p\u00e5 bara n\u00e5gra sekunder. S\u00e5 h\u00e4r tolkar du kolumnerna r, b, free, si\/so, bi\/bo och us\/sy\/id\/wa\/st p\u00e5 ett s\u00e4kert s\u00e4tt och drar slutsatser om konkreta \u00e5tg\u00e4rder utifr\u00e5n m\u00f6nstren \u2013 utan gissningar, med <strong>klar<\/strong> Regler.<\/p>\n\n<h2>Centrala punkter<\/h2>\n\n<ul>\n  <li><strong>K\u00f6rningsk\u00f6<\/strong> vs. blockeringar: r visar CPU-belastning, b varnar f\u00f6r I\/O-v\u00e4ntetider.<\/li>\n  <li><strong>Minne<\/strong> Bed\u00f6ma realistiskt: att det \u00e4r gratis r\u00e4cker inte, det \u00e4r resultatet som avg\u00f6r.<\/li>\n  <li><strong>I\/O<\/strong> Att t\u00e4nka p\u00e5: bi\/bo \u00e4r okritiska om wa f\u00f6rblir l\u00e5gt.<\/li>\n  <li><strong>CPU-andelar<\/strong> l\u00e4s: us+sy h\u00f6gt, id l\u00e5gt \u2192 h\u00f6g belastning.<\/li>\n  <li><strong>Baslinjer<\/strong> Skapa: J\u00e4mf\u00f6r v\u00e4rden i vardagen med v\u00e4rden under problemperioder.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/linux-vmstat-analyse-9847.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Vad visar vmstat egentligen?<\/h2>\n\n<p>Vmstat sammanfattar processstatus, minne, swap, block-I\/O och CPU-andelar i en kompakt utskrift som p\u00e5 n\u00e5gra sekunder ger en <strong>systemomfattande<\/strong> Ger en bra \u00f6verblick. Jag l\u00e4ser f\u00f6rst \u201eprocs\u201c f\u00f6r r\/b, d\u00e4refter \u201ememory\/swap\u201c f\u00f6r free, buff, cache samt si\/so. Sedan kontrollerar jag \u201eio\u201c med bi\/bo och avslutar med \u201ecpu\u201c f\u00f6r us, sy, id, wa och eventuellt st. Denna ordning hj\u00e4lper mig att skilja mellan orsak och verkan: ett h\u00f6gt r-v\u00e4rde indikerar ber\u00e4kningsbelastning, ett h\u00f6gt b-v\u00e4rde pekar p\u00e5 I\/O-v\u00e4ntetider, medan ett h\u00f6gt wa-v\u00e4rde kopplar samman CPU-inaktivitet med I\/O-latens. P\u00e5 s\u00e5 s\u00e4tt kan jag se om det \u00e4r ber\u00e4kningsarbete, minnesbrist eller lagringsenheter som bromsar systemet \u2013 och jag slipper <strong>Omv\u00e4gar<\/strong>.<\/p>\n\n<h2>Start om 60 sekunder: Anrop och intervaller<\/h2>\n\n<p>F\u00f6r att f\u00e5 en \u00f6gonblicksbild sedan uppstarten k\u00f6r jag \u201evmstat\u201c utan parametrar, f\u00f6r omedelbara analyser anv\u00e4nder jag \u201evmstat 1\u201c eller \u201evmstat 5 12\u201c f\u00f6r tolv m\u00e4tpunkter var femte sekund och f\u00e5r en <strong>tidsm\u00e4ssig<\/strong> Rad. Viktigt: Den f\u00f6rsta raden visar medelv\u00e4rden sedan systemstart, d\u00e4rf\u00f6r utv\u00e4rderar jag fr\u00e4mst de f\u00f6ljande raderna. Med Delay\/Count styr jag samplingsfrekvensen och varaktigheten, till exempel \u201evmstat 1 30\u201c vid korta toppar. Vid oroliga arbetsbelastningar st\u00e4ller jag in 1\u20132 sekunder, vid lugna scenarier snarare 5 sekunder. Jag observerar trender, inte enskilda bildrutor, eftersom m\u00f6nstren visar de verkliga <strong>Orsaker<\/strong> visa.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/vmstat_performance_4567.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Att tolka processer: r och b i vardagen<\/h2>\n\n<p>Kolumnen r visar tr\u00e5dar som \u00e4r redo att k\u00f6ras och v\u00e4ntar p\u00e5 CPU-tid, medan b r\u00e4knar blockerade tr\u00e5dar, ofta i I\/O-k\u00f6. Om r ligger betydligt \u00f6ver antalet fysiska k\u00e4rnor, \u00e4r det uppenbart att <strong>CPU-flaskhals<\/strong> ; p\u00e5 fyra k\u00e4rnor betraktas r=8 under en l\u00e4ngre tid som en tydlig signal. Ett b-v\u00e4rde st\u00f6rre \u00e4n 0 under en l\u00e4ngre tid tyder p\u00e5 tr\u00f6ga datamedier, \u00f6verbelastade databaser eller l\u00e5ngsamma n\u00e4tverks- eller lagringsv\u00e4gar. Jag korrelerar r med us+sy och id: om id \u00e4r l\u00e5gt och r h\u00f6gt, k\u00e4mpar CPU:n; om wa \u00e4r h\u00f6gt och b \u00e4r h\u00f6gt, bromsar I\/O. S\u00e5 avg\u00f6r jag om jag ska skala upp datorkraften, optimera s\u00f6kningar eller <strong>F\u00f6rvaringssystem<\/strong> check.<\/p>\n\n<h2>Tolkning av minnesvariabler: free, buff, cache, swpd<\/h2>\n\n<p>Ett l\u00e5gt free-v\u00e4rde \u00e4r normalt under Linux, eftersom k\u00e4rnan anv\u00e4nder RAM-minnet intensivt som cache, vilket p\u00e5skyndar fil\u00e5tkomsten och ger verklig <strong>Genomstr\u00f6mning<\/strong> ger. Jag l\u00e4gger d\u00e4rf\u00f6r st\u00f6rre vikt vid swpd och swap-str\u00f6mmarna si\/so \u00e4n vid free ensamt. En h\u00f6g cache \u00e4r bra s\u00e5 l\u00e4nge si\/so n\u00e4stan alltid f\u00f6rblir 0; f\u00f6rst n\u00e4r det f\u00f6rekommer ih\u00e5llande swap-aktivitet uppst\u00e5r verklig belastning. Om det dessutom uppst\u00e5r latens eller till och med OOM, ingriper jag: \u00f6kar RAM-minnet, trimmar processer i tid eller justerar cache- och JVM-storlekar. Sammanhanget \u00e4r viktigt: arbetsbelastning, minnesstorlek och NUMA-layout avg\u00f6r vad som i din milj\u00f6 betraktas som <strong>h\u00e4lsosam<\/strong> g\u00e4ller.<\/p>\n\n<h2>Swap-aktivitet: klassificera p\u00e5 ett eller annat s\u00e4tt<\/h2>\n\n<p>Kolumnerna si\/so m\u00e4ter den kontinuerliga str\u00f6mmen mellan RAM och swap i KB\/s och synligg\u00f6r den faktiska belastningen p\u00e5 minnet, inte bara den upplevda <strong>Brist<\/strong>. Korta toppar \u00e4r normala, till exempel n\u00e4r sidor som s\u00e4llan anv\u00e4nds flyttas. Det blir kritiskt om de p\u00e5 ett eller annat s\u00e4tt f\u00f6rblir st\u00f6rre \u00e4n 0 under en l\u00e4ngre tid; det saktar ner allt, eftersom varje utlagring medf\u00f6r extra I\/O-kostnader. H\u00f6ga so-v\u00e4rden tyder p\u00e5 aktiv utlagring, och svarstiderna \u00f6kar kraftigt. Vid denna punkt \u00e5tg\u00e4rdar jag orsakerna: minska minnesbehovet, ut\u00f6ka RAM-minnet eller minneskr\u00e4vande tj\u00e4nster <strong>melodi<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/vmstat-linux-performance-analysis-6234.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Att f\u00f6rst\u00e5 block-I\/O: bi och bo<\/h2>\n\n<p>Med bi\/bo kan jag avl\u00e4sa l\u00e4s- och skrivhastigheten i block per sekund, men utan sammanhang g\u00f6r jag ingen bed\u00f6mning av den; det avg\u00f6rande \u00e4r samspelet med <strong>wa<\/strong>. H\u00f6ga bi\/bo-v\u00e4rden i kombination med ett h\u00f6gt wa-v\u00e4rde tyder p\u00e5 att lagringssystemet inte hinner med. Om h\u00f6ga bi-v\u00e4rden upptr\u00e4der i samband med en databas kontrollerar jag f\u00f6rfr\u00e5gningsprofiler och cachetr\u00e4ffar innan jag byter ut h\u00e5rdvaran. F\u00f6r en mer ing\u00e5ende tidsanalys anv\u00e4nder jag iostat och analyserar k\u00f6ernas l\u00e4ngd och latenser, s\u00e5 att jag <a href=\"https:\/\/webhosting.de\/sv\/server-io-vaenta-analysera-iostat-vmstat-metrics-disk\/\">Analysera I\/O-v\u00e4ntetid<\/a> och p\u00e5 ett m\u00e5linriktat s\u00e4tt kan hantera flaskhalsar. F\u00f6rst n\u00e4r wa f\u00f6rblir l\u00e5gt, men bi\/bo stiger kraftigt p\u00e5 l\u00e5ng sikt, funderar jag p\u00e5 <strong>Skalning<\/strong> i lagringssystemet.<\/p>\n\n<h2>CPU-andelar: us, sy, id, wa, st<\/h2>\n\n<p>H\u00f6ga us-v\u00e4rden vid l\u00e5ga wa-v\u00e4rden tyder p\u00e5 produktiv nyttolast, medan h\u00f6ga sy-v\u00e4rden tyder p\u00e5 stor k\u00e4rn\u00f6verhead, till exempel otaliga sm\u00e5 I\/O-operationer eller m\u00e5nga <strong>F\u00f6r\u00e4ndrad kontext<\/strong>. Om id ligger n\u00e4ra 0 och f\u00f6rblir d\u00e4r, g\u00e5r CPU:n p\u00e5 gr\u00e4nsen; i kombination med ett h\u00f6gt r-v\u00e4rde tyder detta p\u00e5 h\u00f6g ber\u00e4kningsbelastning. Om wa stiger, v\u00e4ntar CPU:n p\u00e5 I\/O \u2013 h\u00e4r ger finjustering av lagringen ofta st\u00f6rre vinster \u00e4n CPU-uppgraderingar. I virtuella maskiner (VM) tittar jag p\u00e5 st (steal): H\u00f6ga st-v\u00e4rden avsl\u00f6jar att hypervisorn avleder CPU-tid, vilket g\u00f6r att jag tar upp fr\u00e5gan om v\u00e4rdbelastningen med operat\u00f6ren. Jag utv\u00e4rderar alltid us+sy som en summa, eftersom detta visar den aktiva <strong>Arbetskraft<\/strong> i systemet.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/vmstat_linux_perf_Bild_7392.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Snabbguide: Kolumner och riktv\u00e4rden<\/h2>\n\n<p>Jag anv\u00e4nder f\u00f6ljande tabell som en kortfattad minneshj\u00e4lp n\u00e4r jag tittar p\u00e5 vmstat-utdata f\u00f6r en f\u00f6rsta <strong>Bed\u00f6mning<\/strong> l\u00e4s i snedg\u00e5ende ordning.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Kolumn<\/th>\n      <th>Betydelse<\/th>\n      <th>Vad jag uppm\u00e4rksammar<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>r<\/td>\n      <td>Tr\u00e5dar som \u00e4r redo att k\u00f6ras<\/td>\n      <td>Permanent &gt; K\u00e4rnor \u2192 <strong>CPU-belastning<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>b<\/td>\n      <td>Sp\u00e4rrade tr\u00e5dar<\/td>\n      <td>Konstant &gt; 0 + wa h\u00f6gt \u2192 I\/O-problem<\/td>\n    <\/tr>\n    <tr>\n      <td>fri<\/td>\n      <td>Gratis RAM-minne<\/td>\n      <td>L\u00e5gt \u00e4r okej, s\u00e5 l\u00e4nge si\/so f\u00f6rblir \u2248 0<\/td>\n    <\/tr>\n    <tr>\n      <td>buff\/cache<\/td>\n      <td>FS-buffert\/sidcache<\/td>\n      <td>Mycket cache \u00e4r bra; kan godk\u00e4nnas <strong>bli<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>si\/so<\/td>\n      <td>Swap in\/ut<\/td>\n      <td>Konstant &gt; 0 \u2192 verkligt lagringstryck<\/td>\n    <\/tr>\n    <tr>\n      <td>bi\/bo<\/td>\n      <td>Block-I\/O<\/td>\n      <td>Endast kritiskt om wa samtidigt \u00e4r h\u00f6gt<\/td>\n    <\/tr>\n    <tr>\n      <td>us\/sy<\/td>\n      <td>Anv\u00e4ndare\/K\u00e4rna<\/td>\n      <td>us+sy kontinuerligt &gt; 80% \u2192 h\u00f6g <strong>Last<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>id<\/td>\n      <td>tomg\u00e5ng<\/td>\n      <td>N\u00e4ra 0 \u00f6ver tid \u2192 CPU \u00f6verbelastad<\/td>\n    <\/tr>\n    <tr>\n      <td>wa<\/td>\n      <td>I\/O-v\u00e4ntetid<\/td>\n      <td>H\u00f6gt med b h\u00f6gt \u2192 Lagring som orsak<\/td>\n    <\/tr>\n    <tr>\n      <td>st<\/td>\n      <td>Stj\u00e4la (VM:er)<\/td>\n      <td>H\u00f6g \u2192 Hypervisor tar <strong>CPU<\/strong>-tid<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Baslinjer och kontinuerlig \u00f6vervakning<\/h2>\n\n<p>Jag f\u00f6rlitar mig inte p\u00e5 enstaka \u00f6gonblicksbilder, utan j\u00e4mf\u00f6r v\u00e4rdena med referensv\u00e4rden fr\u00e5n lugna perioder f\u00f6r att p\u00e5 ett tydligt s\u00e4tt kunna identifiera avvikelser <strong>k\u00e4nna igen<\/strong>. \u201evmstat 1 60\u201c ger mig en belastningsprofil f\u00f6r en minut, som jag j\u00e4mf\u00f6r med k\u00e4nda normala faser. F\u00f6r att f\u00e5 en historisk \u00f6verblick anv\u00e4nder jag <a href=\"https:\/\/webhosting.de\/sv\/sar-sysstat-linux-serveroevervakning\/\">sar\/sysstat-\u00f6vervakning<\/a>, f\u00f6r att utv\u00e4rdera trender \u00f6ver flera dagar och sk\u00e4rpa gr\u00e4nsv\u00e4rdena. Jag st\u00e4ller in varningar p\u00e5 ett konservativt s\u00e4tt: r i f\u00f6rh\u00e5llande till k\u00e4rnor, si\/so olikt 0 \u00f6ver flera intervall, wa m\u00e4rkbart f\u00f6rh\u00f6jt. P\u00e5 s\u00e5 s\u00e4tt kan jag reagera tidigt, innan anv\u00e4ndarna rapporterar f\u00f6rdr\u00f6jningar och innan <strong>Topp<\/strong>-faserna eskalerar.<\/p>\n\n<h2>Vmstat i kombination med andra verktyg<\/h2>\n\n<p>Jag b\u00f6rjar med vmstat, drar slutsatser utifr\u00e5n m\u00f6nstren och f\u00f6rdjupar mig sedan specifikt med iostat, mpstat, pidstat eller applikationsmetriker f\u00f6r att kunna identifiera orsakerna <strong>klar<\/strong> tilldela. N\u00e4r vmstat visar I\/O-v\u00e4ntetider m\u00e4ter jag latenser och k\u00f6er per enhet med iostat. Om r indikerar en k\u00e4rnbegr\u00e4nsning visar mpstat k\u00e4rnasymmetrier. Vid toppbelastning i processerna ger <a href=\"https:\/\/webhosting.de\/sv\/pidstat-linux-processanalys-oevervakning\/\">pidstat Processanalys<\/a> de mest intensiva tr\u00e5darna om tid. Det \u00e4r f\u00f6rst korrelationen med loggar och applikationstider som ger en tydligare bild och leder mig till den verkliga <strong>Orsak<\/strong>.<\/p>\n\n<h2>Att uppt\u00e4cka m\u00f6nster och agera<\/h2>\n\n<p>Om jag ser att r \u00e4r h\u00f6gt, id l\u00e5gt och wa moderat, optimerar applikationen ofta p\u00e5 ett s\u00e4tt som kr\u00e4ver f\u00f6r mycket ber\u00e4kningskraft, varf\u00f6r jag kontrollerar koden eller parallelliteten och planerar CPU-resurserna innan jag <strong>H\u00e5rdvara<\/strong> kr\u00e4ver. Om b, wa och bi\/bo upptr\u00e4der samtidigt \u00f6verv\u00e4ger jag lagringsoptimering, fr\u00e5geoptimering och cachelagring. Vid l\u00e5gt free-v\u00e4rde med si\/so st\u00f6rre \u00e4n 0 minskar jag lagringsf\u00f6rbrukningen, str\u00f6mmar resultat eller \u00f6kar RAM-minnet. Om us \u00e4r m\u00e5ttligt och sy mycket h\u00f6gt, tittar jag p\u00e5 paketfilter, filsystemalternativ eller drivrutiner. Med denna checklista agerar jag snabbt och l\u00e4gger tiden d\u00e4r den g\u00f6r mest <strong>r\u00e4kningar<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/vmstat-linux-analyst-7645.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Undvika m\u00e4tfel: Provtagning, enheter, f\u00f6rsta raden<\/h2>\n\n<p>Jag utel\u00e4mnar medvetet den f\u00f6rsta raden vid akuta st\u00f6rningar, eftersom den har ber\u00e4knats som ett medelv\u00e4rde sedan uppstarten och j\u00e4mnar ut topparna helt. Dessutom anpassar jag samplingsfrekvensen efter orsakshypotesen: CPU-toppar f\u00e5ngar jag upp med 1-sekundersintervall, l\u00e5ngsamma minnesl\u00e4ckor med 5\u201310 sekunder. Jag beaktar enheterna: si\/so \u00e4r KB\/s, bi\/bo \u00e4r \u201eblock\/s\u201c (historiskt 1 KB per block, varierar beroende p\u00e5 vmstat-version). Jag kontrollerar om \u201evmstat -w\u201c (bred utskrift) undviker avskurna kolumner och om f\u00f6r\u00e4ndringar i klockfrekvensen (P-tillst\u00e5nd, Turbo) p\u00e5verkar den kortsiktiga uppfattningen av belastningen. Jag synkroniserar m\u00e4tningarna med applikationstoppar ist\u00e4llet f\u00f6r att blint titta p\u00e5 \u201ehela minuter\u201c.<\/p>\n\n<h2>Avkoda systemsektionen: in och cs<\/h2>\n\n<p>F\u00f6rutom procs\/memory\/swap\/io\/cpu visar vmstat \u00e4ven \u201esystem\u201c: <strong>p\u00e5<\/strong> (avbrott\/sek.) och <strong>cs<\/strong> (Kontextv\u00e4xlingar\/s). Dessa tv\u00e5 v\u00e4rden ger mig mycket information om k\u00e4rnans overhead.<\/p>\n<ul>\n  <li>cs \u00e4r mycket h\u00f6g vid m\u00e5ttlig arbetsbelastning: tr\u00e5dfladder, f\u00f6r sm\u00e5 arbetsbatcher eller l\u00e5skonflikter. Jag \u00f6kar batchstorlekarna, justerar parallelliteten (tr\u00e5dpooler) och kontrollerar schemal\u00e4ggar- och mutex-hotspots.<\/li>\n  <li>pl\u00f6tsliga toppar: n\u00e4tverks- eller lagringsavbrott, NAPI\/polling-effekter eller timeravbrott. Jag j\u00e4mf\u00f6r med sy-andelen och iostat-resultaten f\u00f6r att kontrollera drivrutiner eller n\u00e4tverksv\u00e4gar.<\/li>\n  <li>cs \u00e4r proportionellt mot r: Detta tyder p\u00e5 ett st\u00e4ndigt tryck att byta sammanhang p\u00e5 grund av \u00f6verdriven parallellitet. Jag minskar den aktiva parallelliteten eller kopplar hot-threads till k\u00e4rnor.<\/li>\n<\/ul>\n<p>Jag korrelerar alltid in\/cs med sy och b\/wa: Det \u00e4r f\u00f6rst n\u00e4r man betraktar dem tillsammans som man f\u00e5r en tydlig bild av om k\u00e4rnans arbete \u00e4r meningsfullt (t.ex. genomstr\u00f6mning) eller om det bara \u00e4r ren overhead.<\/p>\n\n<h2>Anv\u00e4ndbara vmstat-varianter och alternativ<\/h2>\n\n<p>Jag anv\u00e4nder vmstat p\u00e5 ett flexibelt s\u00e4tt f\u00f6r att f\u00e5 ytterligare perspektiv utan att beh\u00f6va byta verktyg:<\/p>\n<ul>\n  <li><strong>vmstat -s<\/strong>: Summat\u00f6r (t.ex. processer som startats sedan uppstart, st\u00f6rre\/mindre sidfel). Perfekt f\u00f6r att j\u00e4mf\u00f6ra l\u00e4ckor eller antal fall \u00f6ver olika tidsintervall.<\/li>\n  <li><strong>vmstat -m<\/strong>: Slab-anv\u00e4ndning \u2013 hj\u00e4lper till att klassificera k\u00e4rncacher (Dentry\/Inode, n\u00e4tverk) som RAM-f\u00f6rbrukare.<\/li>\n  <li><strong>vmstat -d<\/strong>: Diskh\u00e4ndelser p\u00e5 sammanfattningsniv\u00e5. Inget substitut f\u00f6r iostat, men bra f\u00f6r en snabb verklighetskontroll.<\/li>\n  <li><strong>vmstat -S M<\/strong>: \u00c4ndra enheterna (M\/K) f\u00f6r att g\u00f6ra siffrorna l\u00e4ttare att l\u00e4sa.<\/li>\n  <li><strong>vmstat -w<\/strong>: Bredare kolumner f\u00f6rhindrar att stora sifferrader blir avskurna.<\/li>\n<\/ul>\n<p>Jag kombinerar dessa alternativ med korta intervall s\u00e5 att jag inte missar n\u00e5gra h\u00e4ndelser och \u00e4nd\u00e5 beh\u00e5ller \u00f6verblicken.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/vmstat_linux_analyse_3947.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Containrar, virtuella maskiner och cgroups: S\u00e4rdrag<\/h2>\n\n<p>I containrar tolkar jag vmstat med f\u00f6rsiktighet: M\u00e5nga k\u00e4rndata g\u00e4ller f\u00f6r hela v\u00e4rden, medan gr\u00e4nsv\u00e4rdena kommer fr\u00e5n Cgroups. H\u00f6ga r-v\u00e4rden i en container \u00e5terspeglar namnomr\u00e5dets synvinkel, men den faktiska CPU-tiden kan begr\u00e4nsas av CPU-kvoter eller CPU-andelar. Jag utg\u00e5r fr\u00e5n <strong>st<\/strong> (Steal) i virtuella maskiner: H\u00f6g st inneb\u00e4r att hypervisorn tar tid fr\u00e5n mig \u2013 d\u00e5 hj\u00e4lper inte ens perfekt app-optimering s\u00e4rskilt mycket s\u00e5 l\u00e4nge v\u00e4rddatorn \u00e4r \u00f6verbokad. Vid minnesbegr\u00e4nsningar i Cgroups kan si\/so utebli, trots att containern \u201ek\u00e4mpar\u201c vid gr\u00e4nsen (OOM-avst\u00e4ngningar ist\u00e4llet f\u00f6r swap). D\u00e4rf\u00f6r kontrollerar jag dessutom OOM-loggar och Cgroup-statistik och j\u00e4mf\u00f6r vmstat-bilder med gr\u00e4nserna.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/vmstat-linux-analyst-7645.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>NUMA och affinitet: N\u00e4r lokalitet spelar roll<\/h2>\n\n<p>P\u00e5 NUMA-v\u00e4rdar kontrollerar jag r och us\/sy per k\u00e4rna (med mpstat) och observerar om enskilda socklar \u201eblir \u00f6verbelastade\u201c medan andra g\u00e5r p\u00e5 tomg\u00e5ng. Ol\u00e4mplig minneslokalisering leder till h\u00f6gre cs\/sy-v\u00e4rden och \u00f6kningar av b\/wa p\u00e5 grund av minnes\u00e5tkomst fr\u00e5n avl\u00e4gsna platser. Jag testar CPU- och minnesaffinitet (cpuset, numactl), st\u00e4ller in stora heap som \u201einterleaved\u201c eller strikt lokala och ser till att \u201dheta\u201d tr\u00e5dar k\u00f6rs d\u00e4r deras datafotavtryck finns. En stabil NUMA-layout j\u00e4mnar ut cs, minskar wa-avvikelser och \u00f6kar <strong>Planerbarhet<\/strong> under belastning.<\/p>\n\n<h2>Undvik missf\u00f6rst\u00e5nd: wa och b \u00e4r mer \u00e4n bara \u201el\u00e5ngsamma lagringsmedier\u201c<\/h2>\n\n<p>wa stiger inte bara vid klassiska disklatenser: \u00e4ven NFS\/n\u00e4tverk med h\u00f6g latens, m\u00e4ttad objektlagring, blockerande molnvolymer eller tr\u00f6ga skriv\u00e5terf\u00f6ringar till sidcachen driver upp wa. b r\u00e4knar uppgifter i oavbrytbar vilol\u00e4ge (D-State) \u2013 detta inkluderar \u00e4ven h\u00e4ngningar i drivrutiner, n\u00e4tverksv\u00e4gar eller filsystemsl\u00e5s. D\u00e4rf\u00f6r utv\u00e4rderar jag aldrig wa\/b isolerat, utan alltid tillsammans med bi\/bo och applikationstider. Om wa \u00e4r h\u00f6gt men bi\/bo \u00e4r l\u00e5gt, beror det ofta p\u00e5 en <strong>Beroende av v\u00e4ntetiden<\/strong> ut\u00f6ver den rena fr\u00e5gan om enhetens genomstr\u00f6mning (t.ex. l\u00e5sning, fj\u00e4rr-I\/O, writeback-k\u00f6).<\/p>\n\n<h2>Tuning med omd\u00f6me: Swappiness, Writeback, Scheduler<\/h2>\n\n<p>Jag \u00e4ndrar inte Kernel-Tuner f\u00f6rr\u00e4n efter m\u00e4tningen och med en plan f\u00f6r \u00e5terst\u00e4llning:<\/p>\n<ul>\n  <li><strong>vm.swappiness<\/strong>: Ett l\u00e5gt v\u00e4rde d\u00e4mpar proaktivt utbyte, vilket \u00e4r bra f\u00f6r applikationer d\u00e4r latensen \u00e4r avg\u00f6rande \u2013 ett f\u00f6r l\u00e5gt v\u00e4rde kan \u00f6ka belastningen p\u00e5 sidcachen.<\/li>\n  <li><strong>vm.dirty_background_ratio \/ vm.dirty_ratio<\/strong> (eller *_bytes): P\u00e5verkar tidpunkterna f\u00f6r writeback. F\u00f6r h\u00f6ga v\u00e4rden orsakar l\u00e5nga skrivburstar (wa-toppar), medan f\u00f6r l\u00e5ga v\u00e4rden \u00f6kar antalet kontinuerliga sm\u00e5 flushar (sy\/bo stiger).<\/li>\n  <li><strong>I\/O-schemal\u00e4ggare\/k\u00f6djup<\/strong>: Andra inst\u00e4llningar f\u00f6r NVMe \u00e4n f\u00f6r HDD\/RAID. Jag m\u00e4ter avv\u00e4gningarna mellan latens och genomstr\u00f6mning med iostat innan jag g\u00f6r n\u00e5gra \u00e4ndringar.<\/li>\n  <li><strong>N\u00e4tv\u00e4gar<\/strong>: M\u00e5nga sm\u00e5 paket\/avbrott str\u00f6mmar in i \/cs\/sy. De viktigaste inst\u00e4llningarna \u00e4r GRO\/LRO, RPS\/RFS och IRQ-affinitet \u2013 jag m\u00e4ter f\u00f6re och efter.<\/li>\n<\/ul>\n<p>Mitt m\u00e5l \u00e4r stabila, f\u00f6ruts\u00e4gbara kurvor i vmstat: us\/sy ska vara j\u00e4mnare, wa\/b l\u00e4gre och si\/so n\u00e4ra 0. F\u00f6rst d\u00e5 ut\u00f6kar jag h\u00e5rdvaran.<\/p>\n\n<h2>Playbook: 3-minutersanalys med vmstat<\/h2>\n\n<ul>\n  <li>0:00\u20130:30 \u2013 \u201evmstat 1 30\u201c: Ignorera den f\u00f6rsta raden, granska sedan r\/b, us\/sy\/id\/wa. Fr\u00e5ga: CPU-begr\u00e4nsning (r h\u00f6g, id l\u00e5g) eller I\/O-begr\u00e4nsning (b\/wa h\u00f6g)?<\/li>\n  <li>0:30\u20131:00 \u2013 \u00d6versikt \u00f6ver tryckbeholder: kontrollera swpd och si\/so. \u00c4r si\/so konstant &gt; 0? \u2192 verkligt tryck i beh\u00e5llaren. free \u00e4r av underordnad betydelse.<\/li>\n  <li>1:00\u20131:30 \u2013 I\/O-sammanhang: bi\/bo vs. wa. H\u00f6ga bi\/bo-v\u00e4rden utan wa? \u2192 I\/O kopplas bort. H\u00f6ga wa-v\u00e4rden vid m\u00e5ttliga bi\/bo-v\u00e4rden? \u2192 Latens\/Lock\/Remote-I\/O.<\/li>\n  <li>1:30\u20132:00 \u2013 systemsektionen: in\/cs i f\u00f6rh\u00e5llande till sy. \u00c4r cs mycket h\u00f6gt? \u2192 Kontrollera trycket vid kontextbyte samt parallellitet\/l\u00e5sning.<\/li>\n  <li>02:00\u201303:00 \u2013 Fastst\u00e4lla hypotes och v\u00e4lja l\u00e4mpligt verktyg: iostat f\u00f6r I\/O-index, mpstat f\u00f6r k\u00e4rnasymmetrier, pidstat f\u00f6r processhotspots. F\u00f6rst d\u00e4refter optimering\/skalning.<\/li>\n<\/ul>\n\n<h2>Ut\u00f6kade exempel fr\u00e5n praktiken<\/h2>\n\n<ul>\n  <li><strong>CPU-m\u00e4ttnad utan h\u00f6g r<\/strong>: us+sy vid 90%+, id \u2248 0, men r \u00e4r m\u00e5ttligt \u2192 Single-thread-hotspot eller affinitetsproblem. L\u00f6sning: Parallellisera hot-path, kontrollera core-pinning.<\/li>\n  <li><strong>Swap-Thrash<\/strong>: si och so samtidigt klart &gt; 0, b\/wa stiger, us sjunker \u2192 RAM:en \u00e4r alldeles f\u00f6r liten eller heapet har fel storlek. \u00c5tg\u00e4rder: \u00d6ka RAM-minnet, minska arbetsupps\u00e4ttningen, justera swappiness.<\/li>\n  <li><strong>K\u00e4rnans overhead<\/strong>: sy h\u00f6g, cs\/in h\u00f6g, us m\u00e5ttlig \u2192 m\u00e5nga sm\u00e5 systemanrop\/I\/O. \u00c5tg\u00e4rd: Batchbearbetning, minskning av systemanrop, kontrollera monteringsalternativ f\u00f6r filsystem.<\/li>\n  <li><strong>\u00c5terf\u00f6ringsstockning<\/strong>: wa h\u00f6g, bo h\u00f6g, korta v\u00e5gor \u2192 dirty-gr\u00e4nserna f\u00f6r h\u00f6ga, lagringslatensen varierar. Kontrollera writeback-inst\u00e4llningarna och I\/O-schemal\u00e4ggaren.<\/li>\n  <li><strong>Pressen att virtualisera<\/strong>: st synlig, r varierar, id \u201ehoppar\u201c \u2192 V\u00e4rden delar CPU. L\u00f6sning: Kontrollera vCPU-tilldelning\/placering, minska \u00f6verbelastningen.<\/li>\n<\/ul>\n\n<h2>Att k\u00e4nna till gr\u00e4nserna f\u00f6r vmstat<\/h2>\n\n<p>Vmstat \u00e4r ett utm\u00e4rkt <strong>Tidigt varningssensor<\/strong>, men inget mikroskop. Det visar mig att och var det fastnar \u2013 inte den enskilda felaktiga filen, fr\u00e5gan eller tr\u00e5den. D\u00e4rf\u00f6r g\u00e5r jag efter vmstat-diagnosen konsekvent vidare till mer avancerade verktyg, bekr\u00e4ftar hypoteser fr\u00e5n flera h\u00e5ll och \u00e4ndrar sedan bara en sak i taget. P\u00e5 s\u00e5 s\u00e4tt f\u00f6rblir f\u00f6rb\u00e4ttringarna m\u00e4tbara och reproducerbara.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/vmstat_linux_analyse_3947.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Sammanfattning fr\u00e5n praktiken<\/h2>\n\n<p>Med vmstat kan jag p\u00e5 n\u00e5gra sekunder se om det \u00e4r CPU, RAM, swap eller I\/O som bromsar systemet genom att titta p\u00e5 hur r, b, si\/so, bi\/bo och us\/sy\/id\/wa\/st samverkar <strong>l\u00e4s<\/strong>. Jag utv\u00e4rderar trender ist\u00e4llet f\u00f6r enskilda v\u00e4rden, j\u00e4mf\u00f6r med referensv\u00e4rden och tar vid behov hj\u00e4lp av iostat, mpstat, pidstat samt historiska m\u00e4tningar. Vid akuta st\u00f6rningar bortser jag fr\u00e5n den f\u00f6rsta raden och koncentrerar mig p\u00e5 de efterf\u00f6ljande raderna med fast samplingsfrekvens. Jag fattar beslut utifr\u00e5n data: r i f\u00f6rh\u00e5llande till k\u00e4rnor, si\/so som konstant skiljer sig fr\u00e5n 0, wa som \u00e4r ih\u00e5llande f\u00f6rh\u00f6jt, us+sy n\u00e4ra full belastning. P\u00e5 s\u00e5 s\u00e4tt kan jag snabbt fastst\u00e4lla konkreta \u00e5tg\u00e4rder och h\u00e5lla systemen i gott skick. <strong>reaktiv<\/strong>.<\/p>","protected":false},"excerpt":{"rendered":"<p>L\u00e4r dig hur du tolkar Linux vmstat p\u00e5 r\u00e4tt s\u00e4tt f\u00f6r att uppt\u00e4cka flaskhalsar i CPU, minne och I\/O och optimera din prestandaanalys med s\u00f6kordet vmstat linux.<\/p>","protected":false},"author":1,"featured_media":21476,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[780],"tags":[],"class_list":["post-21483","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administration-anleitungen"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"79","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"vmstat linux","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"21476","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts\/21483","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/comments?post=21483"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts\/21483\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/media\/21476"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/media?parent=21483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/categories?post=21483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/tags?post=21483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}