{"id":19865,"date":"2026-06-10T11:53:56","date_gmt":"2026-06-10T09:53:56","guid":{"rendered":"https:\/\/webhosting.de\/server-numa-locality-cpu-memory-affinity-optimierung-core\/"},"modified":"2026-06-10T11:53:56","modified_gmt":"2026-06-10T09:53:56","slug":"server-numa-lokalitet-cpu-minne-affinitet-optimering-kaerna","status":"publish","type":"post","link":"https:\/\/webhosting.de\/sv\/server-numa-locality-cpu-memory-affinity-optimierung-core\/","title":{"rendered":"Server NUMA Locality och CPU-Memory Affinity f\u00f6r maximal hostingprestanda"},"content":{"rendered":"<p><strong>Server NUMA<\/strong> Lokalitet och CPU-minnesaffinitet avg\u00f6r hur n\u00e4ra tr\u00e5dar arbetar med sitt RAM-minne och hur konstanta latenserna f\u00f6rblir i v\u00e4rdstackar. Jag kommer att visa dig p\u00e5 ett praktiskt s\u00e4tt hur du kan uppn\u00e5 m\u00e4tbart mer genomstr\u00f6mning med topologiigenk\u00e4nning, affinitetsstrategier och I\/O-v\u00e4gar n\u00e4ra noden och <strong>F\u00f6rdr\u00f6jning<\/strong> m\u00e4rkbart l\u00e4gre.<\/p>\n\n<h2>Centrala punkter<\/h2>\n\n<p>F\u00f6r snabb orientering sammanfattar jag de viktigaste budskapen innan jag f\u00f6rklarar stegen i detalj och backar upp dem med exempel, s\u00e5 att du omedelbart kan se var du ska b\u00f6rja f\u00f6r att <strong>Lokalitet<\/strong> och Affinity p\u00e5 ett l\u00f6nsamt s\u00e4tt. Jag betonar tydliga relationer mellan tr\u00e5dar, minne och I\/O s\u00e5 att du kan h\u00e4rleda prioriteringar p\u00e5 ett rent s\u00e4tt och <strong>Beslut<\/strong> uppfylla. Jag identifierar ocks\u00e5 scenarier d\u00e4r Interleave \u00e4r meningsfullt utan att sp\u00e4da ut dina kritiska v\u00e4gar och visar hur du kan visa verkliga framsteg via \u00f6vervakning och <strong>Fel<\/strong> undviks. F\u00f6r virtualiserade milj\u00f6er ger jag tips om placering av vCPU:er och vRAM s\u00e5 att g\u00e4stsystem inte glider \u00f6ver flera noder och <strong>Fj\u00e4rrkontroll<\/strong>-tillg\u00e5ngarna exploderar. Slutligen kommer jag att \u00f6vers\u00e4tta resultaten till en kort f\u00e4rdplan s\u00e5 att du kan g\u00e5 vidare p\u00e5 ett strukturerat s\u00e4tt och ta varje steg i r\u00e4tt riktning. <strong>m\u00e4tbar<\/strong> s\u00e4ker.<\/p>\n<ul>\n  <li><strong>Lokalitet<\/strong> f\u00f6rst: h\u00e5ll tr\u00e5dar n\u00e4ra ditt eget RAM, undvik fj\u00e4rrkontroll.<\/li>\n  <li><strong>Affinitet<\/strong> fixa: Bind ihop k\u00e4rnor och minne enligt policy.<\/li>\n  <li><strong>Topologi<\/strong> l\u00e4sa: Noder, k\u00e4rnor, PCIe-enheter per sockel.<\/li>\n  <li><strong>I\/O-v\u00e4gar<\/strong> paket: Koppla ihop NIC, NVMe och app i samma nod.<\/li>\n  <li><strong>m\u00e4ssor<\/strong> ist\u00e4llet f\u00f6r att gissa: P95\/ P99, fj\u00e4rr\u00e5tkomst och genomstr\u00f6mningssp\u00e5rning.<\/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\/06\/serverraum-performance-1573.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>F\u00f6rst\u00e5else f\u00f6r NUMA-topologin<\/h2>\n\n<p>Innan jag flyttar arbetsbelastningar l\u00e4ser jag <strong>Topologi<\/strong> av servern: Hur m\u00e5nga NUMA-noder finns det, hur m\u00e5nga k\u00e4rnor och hur mycket RAM \u00e4r anslutna till varje nod. Jag tittar ocks\u00e5 p\u00e5 vilka PCIe-enheter - t.ex. NIC eller NVMe SSD - som \u00e4r anslutna till vilken socket, eftersom detta avg\u00f6r avbrottsv\u00e4gar och minnes\u00e5tkomst, och hur mycket RAM som \u00e4r anslutet till varje nod. <strong>F\u00f6rdr\u00f6jning<\/strong> karakteriserad. En nod ger lokal minnes\u00e5tkomst med kort avst\u00e5nd; allt d\u00e4rut\u00f6ver kostar tid och bandbredd. Ju st\u00f6rre maskinen \u00e4r med flera socklar, desto mer p\u00e5verkar fj\u00e4rr\u00e5tkomst svarstiderna och slukar bandbredd. <strong>Genomstr\u00f6mning<\/strong>. F\u00f6r en f\u00f6rst\u00e5elig introduktion till h\u00e5rdvarulogik tycker jag att en kompakt <a href=\"https:\/\/webhosting.de\/sv\/numa-noder-serverhosting-stora-system-serverboost\/\">NUMA-noder i en \u00f6verblick<\/a>, att medvetet \u00f6verv\u00e4ga nodgr\u00e4nser och undvika felaktiga f\u00f6rdelningar.<\/p>\n\n<p>I praktiken b\u00f6rjar jag med en kort topologiinventering och dokumenterar den s\u00e5 att jag senare kan h\u00e4rleda affinitetsbeslut p\u00e5 ett begripligt s\u00e4tt. Anv\u00e4ndbara kommandon:<\/p>\n<pre><code>#-k\u00e4rnor och NUMA-tilldelning\nlscpu -e=CPU,K\u00e4rna,Sockel,Nod\n\n\u00d6versikt \u00f6ver # NUMA-h\u00e5rdvara\nnumactl --h\u00e5rdvara\n\n# Tilldela PCIe-enheter till deras NUMA-nod\nlspci -nn | grep -E \"Ethernet|Non-Volatile\"\nfor d in \/sys\/bus\/pci\/devices\/*; do echo -n \"$d: \"; cat $d\/numa_node; done\n<\/code><\/pre>\n<p>Det viktiga \u00e4r att du <strong>PCIe rotkomplex<\/strong> och enhetsplatser till socklarna. Tv\u00e5 portar i samma NIC kan tilldelas olika noder; detta p\u00e5verkar var RX\/TX-k\u00f6er och IRQ:er hamnar b\u00e4st. Samma sak g\u00e4ller f\u00f6r NVMe: moderna styrenheter har flera k\u00f6er som du b\u00f6r binda till k\u00e4rnor n\u00e4ra noden s\u00e5 att DMA inte utl\u00f6ser n\u00e5gra nodhopp.<\/p>\n\n<h2>Anv\u00e4nda CPU-minnesaffinitet korrekt<\/h2>\n\n<p>Med CPU-Memory Affinity kopplar jag processer till k\u00e4rnomr\u00e5den och genomdriver lokal minnesallokering s\u00e5 l\u00e5ngt det \u00e4r m\u00f6jligt s\u00e5 att <strong>Tr\u00e5dar<\/strong> inte st\u00e4ndigt n\u00e5r \u00f6ver kanten p\u00e5 noden. I Linux definierar jag CPU:er via systemd eller cgroups och kombinerar detta med minnespolicyer s\u00e5 att RAM f\u00f6retr\u00e4desvis skapas p\u00e5 samma nod och <strong>Fj\u00e4rrkontroll<\/strong> f\u00f6rblir minimerad. Kritiska tj\u00e4nster - API-frontends, minnescacher, databaser - gynnas omedelbart eftersom minneskontrollerns v\u00e4ntetider minskar och cachetr\u00e4ffarna blir mer frekventa. F\u00f6r h\u00e5rda pinning-gr\u00e4nser kan dock begr\u00e4nsa schemal\u00e4ggningen, s\u00e5 jag backar upp varje justering med benchmarks och \u00f6vervakar P95\/P99-v\u00e4rden f\u00f6r m\u00e4rkbara effekter p\u00e5 <strong>Anv\u00e4ndare<\/strong>-upplevelse. En kompakt introduktion till Affinity in hosting hj\u00e4lper dig att komma ig\u00e5ng: <a href=\"https:\/\/webhosting.de\/sv\/server-process-affinitet-numa-medvetenhet-hosting-ressourcentuning\/\">Affinitet och NUMA-medvetenhet<\/a> tillhandah\u00e5lla de n\u00f6dv\u00e4ndiga verktygen f\u00f6r ren placering.<\/p>\n\n<p>Den avg\u00f6rande faktorn \u00e4r <strong>Principen om f\u00f6rsta kontakten<\/strong>Minne skapas p\u00e5 den nod som skriver till sidan f\u00f6rst. Initialisera d\u00e4rf\u00f6r stora heaps eller buffertar p\u00e5 m\u00e5lk\u00e4rnorna i den nod d\u00e4r tj\u00e4nsten senare kommer att k\u00f6ras - helst med CPU- och minnespolicyn redan inst\u00e4lld (t.ex. via systemd unit eller numactl). Om du startar cold p\u00e5 nod 0 och sedan flyttar tr\u00e5darna till nod 1 f\u00f6rblir majoriteten av sidorna avl\u00e4gsna. F\u00f6r h\u00f6gar med stora runtimes \u00e4r det v\u00e4rt att anv\u00e4nda \u201epre-touch\u201c under bootstrap s\u00e5 att sidorna roterar lokalt och sedan f\u00f6rblir varma.<\/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\/06\/server_numa_affinity_2763.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>NUMA-medvetenhet i v\u00e4rdstacken<\/h2>\n\n<p>Ett NUMA-medvetet operativsystem, en l\u00e4mplig hypervisor och applikationer med tr\u00e5dpinnning utvecklar sin fulla potential tillsammans. <strong>Potentiell<\/strong>. Operativsystemet gynnar lokal placering om det finns lediga resurser i noden, medan hypervisorn allokerar virtuella datorer p\u00e5 ett s\u00e5dant s\u00e4tt att vCPU:er och vRAM inte glider is\u00e4r och <strong>Lokalitet<\/strong> uppr\u00e4tth\u00e5lls. I applikationen separerar jag arbetspooler per nod och h\u00e5ller k\u00f6erna lokala ist\u00e4llet f\u00f6r att driva globala pooler kors och tv\u00e4rs. Jag organiserar databasprocesser, cache-demons och webbserverinstanser nod f\u00f6r nod s\u00e5 att hotpaths f\u00f6rblir korta och <strong>Jitter<\/strong> minskar. Detta \u00f6kar konsekvensen och f\u00f6ruts\u00e4gbarheten under belastning, vilket direkt p\u00e5verkar f\u00f6ruts\u00e4gbarheten f\u00f6r SLA:er i euro och sparar dyr \u00f6verprovisionering.<\/p>\n\n<p>P\u00e5 Ingress-niv\u00e5 tar jag hand om <strong>Affinitet till noder<\/strong> av sessionerna, till exempel genom sticky routing eller konsekvent hashing (t.ex. p\u00e5 klient-IP eller sessionstoken), s\u00e5 att f\u00f6rfr\u00e5gningar hamnar tillbaka hos \u201ederas\u201c nodlokala arbetare och cache. F\u00f6r statliga tj\u00e4nster planerar jag repliker per nod och balanserar l\u00e4s\u00e5tkomst lokalt; jag utj\u00e4mnar skrivv\u00e4gar via asynkron replikering eller batchning f\u00f6r att undvika ping-pong mellan noderna.<\/p>\n\n<h2>Schemal\u00e4gga tj\u00e4nster nod f\u00f6r nod<\/h2>\n\n<p>Jag grupperar lagren i en stack p\u00e5 ett s\u00e5dant s\u00e4tt att varje lager har en tydlig nodreferens och <strong>Stigar<\/strong> h\u00e5ll dig kort. En klassisk separation: webb\/API per nod, app-arbetare bredvid, plus den lokala cachen; databasen sitter ocks\u00e5 n\u00e4ra noden om RAM-fotavtrycket passar in och <strong>IO<\/strong>-v\u00e4gen \u00e4r inte avbruten. Jag flyttar rapporteringsjobb, s\u00e4kerhetskopior eller batcharbetare till mindre kritiska noder s\u00e5 att interaktiva f\u00f6rfr\u00e5gningar inte p\u00e5verkas. Jag undviker stora monolitinstanser eftersom de ofta korsar nodgr\u00e4nser och d\u00e4rf\u00f6r genererar fj\u00e4rrbelastning, vilket <strong>Prestanda<\/strong> suddig. Mindre, replikerade instanser per nod ger ofta b\u00e4ttre genomstr\u00f6mning i vardagen, eftersom de respekterar NUMA-reglerna och j\u00e4mnar ut toppar.<\/p>\n\n<p>F\u00f6r kapacitetsplanering ber\u00e4knar jag <strong>Headroom<\/strong> separat f\u00f6r varje nod: CPU-buffert f\u00f6r bursts, RAM-buffert mot OOM och separata marginaler f\u00f6r sidcache. P\u00e5 s\u00e5 s\u00e4tt f\u00f6rhindrar jag att k\u00e4rnan oavsiktligt v\u00e4xlar p\u00e5 distans. Jag definierar tydliga v\u00e4xlingsv\u00e4gar f\u00f6r failover: om en nod misslyckas kan ers\u00e4ttningsinstanser k\u00f6ra cross-node, men jag begr\u00e4nsar deras samtidighet tills den ursprungliga noden \u00e5terst\u00e4lls - detta h\u00e5ller den totala latensen stabil.<\/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\/06\/server-performance-numa-locality-4759.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Inst\u00e4llning av CPU-affinitet: Metoder och fallgropar<\/h2>\n\n<p>F\u00f6r k\u00e4rnallokering anv\u00e4nder jag systemd med CPUAffinity eller cgroups med cpuset.cpus, s\u00e5 att tj\u00e4nsterna har fasta <strong>Centrala omr\u00e5den<\/strong> f\u00e5. Vid pinning \u00e4r jag uppm\u00e4rksam p\u00e5 hyper-threading-par, eftersom tv\u00e5 logiska tr\u00e5dar i en fysisk enhet delar resurser och kan sakta ner varandra om jag kombinerar dem olyckligt, och <strong>Tips<\/strong> skapa. Latensv\u00e4gar - TLS-terminering, API-ing\u00e5ng, cache-l\u00e4sare - f\u00e5r exklusiva k\u00e4rnor, medan loggar, komprimering eller s\u00e4kerhetskopiering flyttas till andra pooler. Pooler som \u00e4r f\u00f6r smala utan buffertar orsakar k\u00f6er, s\u00e5 jag r\u00e4knar med utrymme och kontrollerar kontextbyten, k\u00f6tid och <strong>IRQ<\/strong>-distribution. Fr\u00e5n observationen drar jag slutsatsen om jag ska \u00f6ppna k\u00e4rnorna bredare eller koncentrera dem ytterligare tills latensf\u00f6rdelningen faller av rent och P99-topparna blir tystare.<\/p>\n\n<p>F\u00f6r ytterligare jitterreducering st\u00e4ller jag in kernel-switchar som <strong>nohz_full<\/strong> och <strong>rcu_nocbs<\/strong> f\u00f6r k\u00e4rnor med exklusiv latens, isolera dem fr\u00e5n systemtj\u00e4nster och placera avsiktligt endast IRQ:er p\u00e5 processorer som \u00e4r avsedda f\u00f6r detta \u00e4ndam\u00e5l. Jag anv\u00e4nder tj\u00e4nsten \u201eirqbalance\u201c med f\u00f6rsiktighet: konfigurera den antingen specifikt eller avaktivera den om den motverkar din manuella IRQ-affinitet. Jag anv\u00e4nder SCHED_FIFO\/SCHED_RR sparsamt och endast med Be-gr\u00e4nser f\u00f6r att undvika prioritetsinversion eller sv\u00e4lt.<\/p>\n\n<h2>Minnespolicyer och NUMA-masker<\/h2>\n\n<p>N\u00e4r det g\u00e4ller minnespolicy skiljer jag mellan f\u00f6redragen lokal allokering, interleave \u00f6ver flera noder och fasta NUMA-masker via cpuset.mems, s\u00e5 att <strong>RAM<\/strong> fl\u00f6den till d\u00e4r tr\u00e5darna faktiskt k\u00f6rs. F\u00f6r interaktiva tj\u00e4nster brukar jag st\u00e4lla in \u201epreferred\u201c, vilket inneb\u00e4r att systemet allokerar lokalt och bara avviker n\u00e4r det finns en brist, vilket \u00e4r <strong>Fj\u00e4rrkontroll<\/strong>-\u00e5tkomst \u00e4r begr\u00e4nsad. Analys- eller streamingjobb kan ibland dra nytta av interleave eftersom bandbredden f\u00f6rdelas \u00f6ver noderna och trycket p\u00e5 en styrenhet minskar. Fasta masker ger kontroll, men kr\u00e4ver disciplin i kapacitetsplaneringen s\u00e5 att inga o\u00f6nskade OOM-h\u00e4ndelser i en nod g\u00e5r upp och ner. <strong>Tj\u00e4nster<\/strong> st\u00f6ra. F\u00f6ljande tabell kategoriserar vanliga policyer i typiska scenarier och hj\u00e4lper dig att fatta ett snabbt beslut.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th><strong>Policy<\/strong><\/th>\n      <th><strong>Effekt<\/strong><\/th>\n      <th><strong>Typiska arbetsbelastningar<\/strong><\/th>\n      <th><strong>Risk<\/strong><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>F\u00f6retr\u00e4desvis (lokal)<\/td>\n      <td>RAM i f\u00f6rsta hand i den lokala noden, reservalternativ vid knapphet<\/td>\n      <td>Webb\/ API, cacher, OLTP-databaser<\/td>\n      <td>Liten drift vid full belastning p\u00e5 andra noder<\/td>\n    <\/tr>\n    <tr>\n      <td>Interleave<\/td>\n      <td>J\u00e4mn f\u00f6rdelning \u00f6ver utvalda noder<\/td>\n      <td>Streaming, analys, stora skanningar<\/td>\n      <td>H\u00f6gre latenstid f\u00f6r enskilda \u00e5tkomster<\/td>\n    <\/tr>\n    <tr>\n      <td>Fast NUMA-mask<\/td>\n      <td>Strikt bindning till definierade minnesnoder<\/td>\n      <td>Strikt inkapslade tj\u00e4nster, deterministiska tester<\/td>\n      <td>Risk f\u00f6r OOM om budgeten \u00e4r felaktigt planerad<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>H\u00e5ll ett \u00f6ga p\u00e5 systemomfattande switchar: <strong>zon_\u00e5tervinning_l\u00e4ge<\/strong> p\u00e5verkar om en nod aggressivt rensar upp sitt eget minne innan den allokerar p\u00e5 distans - ofta o\u00f6nskat f\u00f6r latensv\u00e4gar. <strong>Transparenta stora sidor<\/strong> (THP) kan utl\u00f6sa sidmigrering eller generera stall; f\u00f6r latens-k\u00e4nsliga tj\u00e4nster v\u00e4ljer jag vanligtvis \u201emadvise\u201c och anv\u00e4nder statiska hugepages d\u00e4r det \u00e4r vettigt, s\u00e5 att TLB-tr\u00e4ffar \u00f6kar och sidfelstoppar minskar.<\/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\/06\/server_performance_optimization_2314.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Binda n\u00e4tverks- och I\/O-v\u00e4gar n\u00e4ra noden<\/h2>\n\n<p>Jag anpassar NIC-k\u00f6erna (RX\/TX) s\u00e5 att deras IRQ:er pekar p\u00e5 k\u00e4rnor i r\u00e4tt nod och paketbehandlingen sker d\u00e4r <strong>App<\/strong> ber\u00e4knar. Samma sak g\u00e4ller f\u00f6r NVMe SSD-enheter eller RAID-styrenheter: I\/O-tr\u00e5dar b\u00f6r k\u00f6ras p\u00e5 den nod som enheten \u00e4r ansluten till via PCIe, s\u00e5 att DMA-v\u00e4garna f\u00f6rblir korta och enheten kan anv\u00e4ndas mer effektivt. <strong>Flaskhalsar<\/strong> inte materialiseras. Under Linux justerar jag IRQ-affinitetsmasker och l\u00e4nkar dem till CPU-pooler f\u00f6r mina tj\u00e4nster f\u00f6r att skapa en kontinuerlig v\u00e4g. Med mikroutbrott fr\u00e5n n\u00e4tverket, till exempel m\u00e5nga TLS-handskakningar, l\u00f6nar sig denna n\u00e4rhet direkt eftersom kopieringsv\u00e4garna \u00e4r kortare och CPU-cacherna f\u00f6rblir varma och <strong>Sammanhang<\/strong> mindre ofta. Detta resulterar i ett konsekvent datafl\u00f6de fr\u00e5n paketet till applikationen till minnet, utan on\u00f6diga nodhopp.<\/p>\n\n<p>Konkreta h\u00e4vst\u00e4nger i n\u00e4tverksstacken: <strong>RSS<\/strong> f\u00f6r h\u00e5rdvarudistribution till k\u00f6er, <strong>RPS\/RFS<\/strong> f\u00f6r mjukvarubaserad CPU-styrning och <strong>XPS<\/strong> f\u00f6r TX-val. Jag anv\u00e4nder ethtool f\u00f6r att tilldela RX-k\u00f6er till k\u00e4rngrupper som k\u00f6rs i samma nod som dina arbetare. F\u00f6r lagring anv\u00e4nder jag <strong>blk-mq<\/strong>-justering och k\u00f6mappning per nod; NVMe-styrenheter erbjuder flera k\u00f6er f\u00f6r inl\u00e4mning\/avslut, som jag skalar och affinitiserar \u2264 antal k\u00e4rnor per nod. Kontrollera regelbundet om avbrott (cat \/proc\/interrupts) avfyras d\u00e4r dina appk\u00e4rnor finns - du kan k\u00e4nna igen drift genom att \u00f6ka fj\u00e4rrbyte trots en stabil belastning.<\/p>\n\n<h2>Strukturera applikationsarkitekturen i linje med NUMA<\/h2>\n\n<p>P\u00e5 appniv\u00e5 skapar jag mina egna arbetspooler f\u00f6r varje NUMA-nod, h\u00e5ller k\u00f6erna lokala och undviker globala l\u00e5shotspots s\u00e5 att <strong>Tr\u00e5dar<\/strong> inte hoppa fram och tillbaka. Jag konfigurerade session och data sharding s\u00e5 att heta partitioner f\u00f6rblir d\u00e4r de beg\u00e4rande arbetarna k\u00f6rs och <strong>Tid<\/strong> inte g\u00e5r f\u00f6rlorad i trafiken mellan noderna. F\u00f6r cacher anv\u00e4nder jag ofta repliker i st\u00e4llet f\u00f6r en central instans s\u00e5 att l\u00e4sarna tr\u00e4ffar nodlokala kopior. I Netty-, Tokio-, libuv- eller DB-klienter kopplar jag h\u00e4ndelseslingor till fasta k\u00e4rnor och uppm\u00e4rksammar IRQ-n\u00e4rhet s\u00e5 att uppgifts\u00e4ndringar f\u00f6rblir begr\u00e4nsade och <strong>Cacher<\/strong> tr\u00e4ffa b\u00e4ttre. Denna layout minskar ping-pong-effekter och g\u00f6r svarstiderna j\u00e4mnare under dagen.<\/p>\n\n<p>En underskattad h\u00e4vst\u00e5ng \u00e4r <strong>Allokator<\/strong> och k\u00f6rtidsalternativ: NUMA-aktiverade allokatorer (jemalloc\/tcmalloc) minskar konflikter mellan tr\u00e5dar och h\u00e5ller sidorna n\u00e4rmare tr\u00e5darnas hemk\u00e4rnor. I JVM-stackar hj\u00e4lper alternativ som NUMA-medvetenhet och pre-touch till med deterministiska felfaser; i .NET anpassar jag GC-tr\u00e5dar n\u00e4ra noder och uppm\u00e4rksammar server-GC f\u00f6r att j\u00e4mna ut stopptider. I Go dimensionerar jag GOMAXPROCS per nodpool och h\u00e5ller goroutine-schemal\u00e4ggare borta fr\u00e5n latenta k\u00e4rnor som arbetar n\u00e4ra IRQ.<\/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\/06\/server_performance_desk_7452.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>F\u00f6rnuftig kontroll av NUMA:s autobalansering<\/h2>\n\n<p>Automatiska NUMA-balanseringsmekanismer i k\u00e4rnan kan hj\u00e4lpa till att j\u00e4mna ut distribuerad belastning, men jag kontrollerar alltid om de kan st\u00f6dja min <strong>Affinitet<\/strong> undermineras. I latenskritiska tj\u00e4nster inaktiverar eller stryper jag automatisk flyttning om den drar ut tr\u00e5dar ur deras lokala minne och <strong>Tips<\/strong> genereras. F\u00f6r analysjobb eller bred batchbearbetning brukar jag l\u00e5ta balanseringen vara aktiverad eftersom den kan \u00f6ka bandbredden utan att f\u00f6rs\u00e4mra interaktionen. En praktisk introduktion till balanseringsstrategier ger mig ytterligare utg\u00e5ngspunkter: <a href=\"https:\/\/webhosting.de\/sv\/numa-balansering-server-minnesoptimering-hardvara-numaflux\/\">F\u00f6rst\u00e5 NUMA-balansering<\/a> visar n\u00e4r det automatiska systemet ska anv\u00e4ndas och n\u00e4r det ska tilldelas manuellt. I slut\u00e4ndan fattar jag ett databaserat beslut f\u00f6r varje serviceklass i st\u00e4llet f\u00f6r att blint anta en global standardinst\u00e4llning och <strong>M\u00e5l<\/strong> att missa.<\/p>\n\n<p>N\u00e4r balanseringen \u00e4r aktiverad \u00f6vervakar jag migreringshastigheter, mindre och st\u00f6rre feltoppar och CPU-anv\u00e4ndning per nod. Om sidor flyttas fram och tillbaka cykliskt motverkar jag detta med t\u00e4tare pinning, pre-touch och smalare minnesmasker. I arbetsbelastningar med l\u00e5nga, sekventiella skanningar kan balansering dock harmonisera belastningen s\u00e5 l\u00e4nge inga interaktiva latensv\u00e4gar p\u00e5verkas.<\/p>\n\n<h2>\u00d6vervakning: m\u00e4ta, j\u00e4mf\u00f6ra, besluta<\/h2>\n\n<p>Utan m\u00e4tning f\u00f6rblir tuning en gissningslek, s\u00e5 jag f\u00f6ljer CPU-belastning per k\u00e4rna och per nod, minnesanv\u00e4ndning per nod och andelen <strong>Fj\u00e4rrkontroll<\/strong>-accesser. F\u00f6r anv\u00e4ndarupplevelsen r\u00e4knas P95\/P99-latenstider mycket mer \u00e4n medelv\u00e4rden, eftersom extremv\u00e4rden karakt\u00e4riserar SLA-intrycket och <strong>Kostnader<\/strong> upp\u00e5t. Jag k\u00f6r realistiska belastningsprofiler med kalla och varma cacheminnen eftersom de b\u00e5da v\u00e4rldarna visar olika flaskhalsar. Efter varje \u00e4ndring dokumenterar jag inst\u00e4llningarna, testdatum och resultat s\u00e5 att jag s\u00e4kert kan \u00e5terkalla \u00e4ndringar senare och <strong>Kunskap<\/strong> inte g\u00e5r f\u00f6rlorad. Om du ocks\u00e5 korrelerar appm\u00e4tv\u00e4rden - k\u00f6l\u00e4ngder, omf\u00f6rs\u00f6k, skr\u00e4puppsamling - med systemv\u00e4rden kan du snabbare identifiera orsak och verkan.<\/p>\n\n<p>Praktisk hj\u00e4lp i analysen:<\/p>\n<ul>\n  <li>numastat (system- och processrelaterad) f\u00f6r lokal vs. <strong>Fj\u00e4rrkontroll<\/strong>-Hit<\/li>\n  <li>\/proc\/interrupts och SoftIRQ-tid av CPU f\u00f6r IRQ-drift<\/li>\n  <li>perf-h\u00e4ndelser och schemal\u00e4ggningsstatistik f\u00f6r k\u00f6rk\u00f6djup, kontextbyten, LLC-missar etc.<\/li>\n  <li>fio\/iperf\/wrk med nodspecifika arbetspooler f\u00f6r reproducerbara j\u00e4mf\u00f6relser<\/li>\n<\/ul>\n<p>Utv\u00e4rderingen g\u00f6rs per nod: Jag f\u00f6rv\u00e4ntar mig att latenshistogrammen ska ligga n\u00e4ra varandra. Om en nod r\u00f6r sig upp\u00e5t letar jag f\u00f6rst efter felaktigt f\u00f6rdelad IRQ-belastning, drift i sidcachen eller heaps som allokerades till fel nod under uppv\u00e4rmningen.<\/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\/06\/hosting-serverraum-8372.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>NUMA i virtuella datorer och containrar<\/h2>\n\n<p>Vid virtualisering \u00e4r placeringen av vCPU:er och vRAM p\u00e5 en delad nod viktig f\u00f6r att g\u00e4sternas arbetsbelastningar inte ska splittras och <strong>F\u00f6rdr\u00f6jning<\/strong> drar upp. Jag dimensionerar RAM-minnet s\u00e5 att det ryms i den lokala noden och undviker stora virtuella datorer som str\u00e4cker sig \u00f6ver flera noder och <strong>Drift<\/strong> trigger. F\u00f6r containrar anv\u00e4nder jag cpuset-controllers s\u00e5 att pod-grupper fungerar konsekvent p\u00e5 en nod och lagring skapas lokalt. Jag f\u00f6redrar att placera I\/O-tunga g\u00e4ster p\u00e5 noden med en direkt lagringsanslutning f\u00f6r att h\u00e5lla DMA-v\u00e4garna korta och <strong>IRQ<\/strong>-minska bruset. Det inneb\u00e4r att \u00e4ven virtualiseringsv\u00e4rdar med h\u00f6g densitet f\u00f6rblir f\u00f6ruts\u00e4gbara och kan genomf\u00f6ra fler projekt p\u00e5 samma h\u00e5rdvara.<\/p>\n\n<p>Jag \u00e4r uppm\u00e4rksam p\u00e5 <strong>vNUMA<\/strong>Exponering: G\u00e4sten b\u00f6r se samma nodstruktur som hypervisorn fysiskt tillhandah\u00e5ller. vCPU-pinning och vRAM-bindning h\u00f6r ihop; Jag flyttar hot-adds under underh\u00e5llsf\u00f6nster om m\u00f6jligt, eftersom annars nya sidor hamnar p\u00e5 distans. I Kubernetes st\u00e4ller jag in QoS p\u00e5 \u201egaranterad\u201c, CPU-hanteraren p\u00e5 \u201estatisk\u201c och topologimedveten placering s\u00e5 att pods inte flyttas mellan noder. F\u00f6r SR-IOV\/VF:er tilldelar jag VF:er till l\u00e4mplig fysisk nod och binder IRQ-k\u00f6erna till CPU-upps\u00e4ttningarna i de pods eller VM:er som de betj\u00e4nar.<\/p>\n\n<h2>M\u00e5linriktad f\u00f6rberedelse av f\u00f6rsta touch, uppv\u00e4rmning och h\u00f6jder<\/h2>\n\n<p>M\u00e5nga prestandafel uppst\u00e5r under <strong>Start<\/strong>H\u00f6gen v\u00e4xer under uppv\u00e4rmningsfasen d\u00e4r de f\u00f6rsta f\u00f6rfr\u00e5gningarna landar - ofta centralt p\u00e5 en nod. Jag k\u00f6r d\u00e4rf\u00f6r kontrollerade uppv\u00e4rmningar f\u00f6r varje nod: Jag startar instanser med en inst\u00e4lld CPU-\/minnesmask, k\u00f6r riktade f\u00f6rbelastningsfr\u00e5gor och initierar cacheminnen parallellt f\u00f6r varje nod. F\u00f6r JVM-tj\u00e4nster aktiverar jag pre-touch av heapen; f\u00f6r databaser segmenterar jag buffertpooler nod f\u00f6r nod. Detta minskar efterf\u00f6ljande sidmigreringar och s\u00e4kerst\u00e4ller att de f\u00f6rsta f\u00f6rfr\u00e5gningarna inte slumpm\u00e4ssigt pr\u00e4glar minnesf\u00f6rdelningen.<\/p>\n\n<h2>Kernel\/BIOS-tuning f\u00f6r konstanta latenstider<\/h2>\n\n<p>Under motorhuven justerar jag kraft- och avbrottspolicyn:<\/p>\n<ul>\n  <li>St\u00e4ll in CPU-guvern\u00f6ren p\u00e5 \u201eprestanda\u201c, begr\u00e4nsa djupa C-states, anv\u00e4nd paket-C-states noggrant f\u00f6r att <strong>Jitter<\/strong> f\u00f6r att minska.<\/li>\n  <li>Reglera inte minnesfrekvensen; balanserade energiprofiler minimerar ofta <strong>Genomstr\u00f6mning<\/strong> under belastning.<\/li>\n  <li>Undvik spread spectrum\/klockmodulering om konsekvens \u00e4r viktigare \u00e4n minimala energibesparingar.<\/li>\n<\/ul>\n<p>P\u00e5 k\u00e4rnniv\u00e5 h\u00e5ller jag hush\u00e5lls-CPU:er \u00e5tskilda fr\u00e5n latensk\u00e4rnor, minimerar timeravbrott p\u00e5 heta k\u00e4rnor (nohz_full) och parkerar bakgrundsarbete (komprimering, Kswapd) f\u00f6retr\u00e4desvis p\u00e5 systemk\u00e4rnor i en nod som inte k\u00f6r latensv\u00e4gar.<\/p>\n\n<h2>Fels\u00f6kning och typiska anti-m\u00f6nster<\/h2>\n\n<ul>\n  <li><strong>Symptom<\/strong>P99-latenscy hoppar efter distributioner. <strong>Orsak<\/strong>Heaps\/Caches f\u00f6rsta kontakten p\u00e5 fel nod. <strong>L\u00f6sning<\/strong>Uppv\u00e4rmning\/pre-touch under m\u00e5laffinitet, sedan \u00f6ppen lastf\u00f6rdelare.<\/li>\n  <li><strong>Symptom<\/strong>H\u00f6g SoftIRQ-tid p\u00e5 \u201efel\u201c CPU:er. <strong>Orsak<\/strong>irqbalance f\u00f6rdelad \u00f6ver noder. <strong>L\u00f6sning<\/strong>Fixa IRQ-affinitet, st\u00e4ll in RPS\/RFS\/XPS nodkompatibel.<\/li>\n  <li><strong>Symptom<\/strong>OOM i en nod, trots att systemets RAM-minne \u00e4r ledigt. <strong>Orsak<\/strong>Strikt NUMA-mask utan buffert. <strong>L\u00f6sning<\/strong>Korrigera kapacitet eller anv\u00e4nd \u201epreferred\u201c, uppr\u00e4tta varningar per nod.<\/li>\n  <li><strong>Symptom<\/strong>Oregelbunden genomstr\u00f6mning med NVMe. <strong>Orsak<\/strong>Felaktig k\u00f6mappning, delade k\u00f6er mellan noderna. <strong>L\u00f6sning<\/strong>: blk-mq\/NVMe-k\u00f6er per nod, I\/O-tr\u00e5dar pinnade.<\/li>\n<\/ul>\n\n<h2>Checklista f\u00f6r \u00f6vning<\/h2>\n\n<ul>\n  <li>Spela in topologi: Noder, k\u00e4rnor, RAM, PCIe-enheter per socket.<\/li>\n  <li>Rita serviceavsnitt: Vilka v\u00e4gar \u00e4r <strong>F\u00f6rdr\u00f6jning<\/strong>-kritisk, vilken sats?<\/li>\n  <li>St\u00e4ll in CPU\/minnesaffinitet f\u00f6r varje klass; notera f\u00f6rsta kontakten vid start.<\/li>\n  <li>Bind IRQ\/k\u00f6er n\u00e4ra noden; kontrollera RSS\/RPS\/XPS- och NVMe-k\u00f6er.<\/li>\n  <li>\u00d6vervakning p\u00e5 P95\/P99, fj\u00e4rr\u00e5tkomst, k\u00f6rk\u00f6, IRQ-f\u00f6rdelning.<\/li>\n  <li>Kontrollera autobalansering specifikt; v\u00e4lj THP\/zone_reclaim_mode p\u00e5 l\u00e4mpligt s\u00e4tt.<\/li>\n  <li>H\u00e5ll vNUMA, vCPU-pinning och vRAM-bindning konsekventa i virtuella datorer\/containrar.<\/li>\n  <li>Testa iterativt, dokumentera, rulla tillbaka vid avvikelser och finjustera.<\/li>\n<\/ul>\n\n<h2>Kort sammanfattning och avst\u00e4mningsschema<\/h2>\n\n<p>Det ger den st\u00f6rsta avkastningen, <strong>Tr\u00e5dar<\/strong> och minne tillsammans, f\u00f6rkorta I\/O-v\u00e4garna och distribuera dem endast f\u00f6rsiktigt. Jag b\u00f6rjar med en topologianalys, planerar tj\u00e4nster nod f\u00f6r nod, st\u00e4ller in CPU- och minnesaffinitet, ansluter n\u00e4tverk\/lagring p\u00e5 l\u00e4mpligt s\u00e4tt och \u00f6vervakar P95\/P99-v\u00e4rden med fokus p\u00e5 <strong>Fj\u00e4rrkontroll<\/strong>-\u00e5tkomst. Sedan justerar jag poolstorlekarna, IRQ-maskerna och policyerna tills latensniv\u00e5erna sjunker och genomstr\u00f6mningen \u00f6kar. F\u00f6r virtuella datorer och containrar kontrollerar jag placeringen separat eftersom hypervisorn har stort inflytande och <strong>Gr\u00e4nser<\/strong> fungerar annorlunda. Om du upprepar och dokumenterar den h\u00e4r processen kommer du att f\u00e5 m\u00e4tbart b\u00e4ttre prestanda med Server NUMA Locality och CPU-Memory Affinity - ofta billigare \u00e4n att uppgradera ytterligare maskinvara i euro.<\/p>","protected":false},"excerpt":{"rendered":"<p>L\u00e4r dig hur Server NUMA Locality och CPU-Memory Affinity optimerar prestandan f\u00f6r din hosting. Guiden visar praktisk prestandatuning f\u00f6r moderna servrar.<\/p>","protected":false},"author":1,"featured_media":19858,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-19865","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server_vm"],"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":"75","_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":"Server NUMA","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":"19858","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts\/19865","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=19865"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts\/19865\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/media\/19858"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/media?parent=19865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/categories?post=19865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/tags?post=19865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}