{"id":21103,"date":"2026-08-28T11:49:48","date_gmt":"2026-08-28T09:49:48","guid":{"rendered":"https:\/\/webhosting.de\/numa-balancing-deaktivieren-oder-aktiv-lassen-linux-performance-optimal\/"},"modified":"2026-08-28T11:49:48","modified_gmt":"2026-08-28T09:49:48","slug":"inaktivera-eller-behall-numa-balansering-foer-optimal-prestanda-i-linux","status":"publish","type":"post","link":"https:\/\/webhosting.de\/sv\/numa-balancing-deaktivieren-oder-aktiv-lassen-linux-performance-optimal\/","title":{"rendered":"NUMA-balansering i Linux: ska man inaktivera den eller l\u00e5ta den vara aktiverad?"},"content":{"rendered":"<p>NUMA-balanseringen i Linux avg\u00f6r om <strong>K\u00e4rnan<\/strong> Om minnes\u00e5tkomst automatiskt lokaliseras eller om jag sj\u00e4lv styr placeringen p\u00e5 ett m\u00e5linriktat s\u00e4tt. I den h\u00e4r guiden visar jag n\u00e4r jag l\u00e5ter numa-balanseringen vara aktiv och n\u00e4r jag st\u00e4nger av den f\u00f6r <strong>F\u00f6rdr\u00f6jning<\/strong>-St\u00e4ng av s\u00e4kerhetsfunktionen.<\/p>\n\n<h2>Centrala punkter<\/h2>\n\n<ul>\n  <li><strong>Automatisk<\/strong> hj\u00e4lper vid blandade arbetsbelastningar utan NUMA-optimering.<\/li>\n  <li><strong>Inaktivera<\/strong> vid pinning, statiska policyer eller h\u00f6g latens.<\/li>\n  <li><strong>Overhead<\/strong> uppst\u00e5r till f\u00f6ljd av skanningar, fel och migreringar.<\/li>\n  <li><strong>Konfiguration<\/strong> styra via sysctl eller startparametrar.<\/li>\n  <li><strong>Testning<\/strong> och m\u00e4ta ist\u00e4llet f\u00f6r att gissa, och sedan fatta ett beslut.<\/li>\n<\/ul>\n\n<h2>NUMA i korthet: Latenser och lokalitet<\/h2>\n\n<p>I NUMA-system f\u00f6rdelar h\u00e5rdvaran minnet p\u00e5 flera noder, d\u00e4r de enskilda <strong>Processorer<\/strong> ligger n\u00e4ra varandra. Lokala \u00e5tkomstf\u00f6rfr\u00e5gningar tar mindre tid \u00e4n avl\u00e4gsna, vilket jag omedelbart m\u00e4rker p\u00e5 <strong>F\u00f6rdr\u00f6jning<\/strong> och bandbredd. Om en process k\u00f6rs p\u00e5 en nod men data finns p\u00e5 en annan, f\u00f6rlorar jag v\u00e4rdefulla mikrosekunder vid varje \u00e5tkomst. Det \u00e4r just h\u00e4r som k\u00e4rnan tr\u00e4der in och optimerar <strong>Plats<\/strong> sidor. Den som f\u00f6rst\u00e5r grundid\u00e9n inser snabbt att n\u00e4rhet mellan processork\u00e4rnor och data \u00e4r den direktaste v\u00e4gen till konstant <strong>Prestanda<\/strong>.<\/p>\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\/08\/linux-numa-balancing-2345.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Hur automatisk NUMA-balansering fungerar<\/h2>\n\n<p>K\u00e4rnan \u00f6vervakar fr\u00e5n vilka k\u00e4rnor en process n\u00e5r sidor och utl\u00f6ser m\u00e5linriktat <strong>Hint<\/strong>-Faults. P\u00e5 s\u00e5 s\u00e4tt kan den identifiera vilken nod som har flest \u00e5tkomstf\u00f6rfr\u00e5gningar och d\u00e4refter flytta relevanta sidor dit. Dessa migreringar minskar antalet \u00e5tkomstf\u00f6rfr\u00e5gningar fr\u00e5n avl\u00e4gsna platser och \u00f6kar den lokala <strong>Tr\u00e4fffrekvens<\/strong>. Jag m\u00e4rker effekten s\u00e4rskilt vid dynamiska arbetsbelastningar, d\u00e4r tr\u00e5dar flyttar sig och minnet f\u00f6rflyttas. Den som vill f\u00f6rdjupa sig kan unders\u00f6ka sambanden mellan CPU- och minnesn\u00e4rhet via <a href=\"https:\/\/webhosting.de\/sv\/server-numa-lokalitet-cpu-minne-affinitet-optimering-kaerna\/\">CPU-\/minnesaffinitet<\/a> f\u00f6rst\u00e5 i praktiken.<\/p>\n\n<h2>N\u00e4r ska man l\u00e5ta det vara aktivt: typiska arbetsbelastningar<\/h2>\n\n<p>Jag l\u00e5ter funktionen vara aktiverad om applikationer inte har n\u00e5gon egen NUMA-logik och processer ofta <strong>f\u00f6r\u00e4ndring<\/strong>. Typiska exempel \u00e4r applikationsservrar, databaser med varierande belastning och v\u00e4rddatorer med m\u00e5nga <strong>Containrar<\/strong>. I s\u00e5dana konfigurationer ser den automatiska funktionen till att sidor och tr\u00e5dar hamnar n\u00e4rmare varandra utan att jag beh\u00f6ver f\u00e4sta dem manuellt. S\u00e4rskilt p\u00e5 v\u00e4rdsystem med flera socklar \u00f6kar andelen lokala \u00e5tkomstf\u00f6rs\u00f6k m\u00e4rkbart. F\u00f6r administrat\u00f6rer med heterogena tj\u00e4nster ger detta en bra <strong>Kompromiss<\/strong> av tid och arbete.<\/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\/08\/numa_balancing_linux_5843.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>N\u00e4r ska man inaktivera: tydliga kriterier<\/h2>\n\n<p>Jag st\u00e4nger av den automatiska funktionen s\u00e5 fort jag medvetet g\u00f6r ett misstag eller fattar beslut <strong>Policys<\/strong> st\u00e4ller in. Om jag anv\u00e4nder numactl, cgroups eller MPOL_BIND\/MPOL_PREFERRED finns det redan ett fastst\u00e4llt val av minnesv\u00e4gar. D\u00e5 orsakar hint-fel och migreringar on\u00f6dig <strong>Overhead<\/strong>. Detsamma g\u00e4ller f\u00f6r realtids- eller HFT-scenarier, d\u00e4r varje mikrosekund r\u00e4knas och f\u00f6ruts\u00e4gbarhet \u00e4r avg\u00f6rande. Den som f\u00f6rdjupar sig i valet av placeringsregler har nytta av att ta en titt p\u00e5 l\u00e4mpliga <a href=\"https:\/\/webhosting.de\/sv\/numa-minnesprinciper-databasserver-optimering-server\/\">Minnespolicyer<\/a>.<\/p>\n\n<h2>Att f\u00f6rst\u00e5 och m\u00e4ta overhead<\/h2>\n\n<p>Automatisk balansering medf\u00f6r arbete: skanningar, <strong>Fel<\/strong> och sidmigreringar tar upp CPU-tid. Det m\u00e4rks knappt n\u00e4r antalet fj\u00e4rr\u00e5tkomster minskar kraftigt, men l\u00f6nar sig knappast n\u00e4r layouten redan finns lokalt. D\u00e4rf\u00f6r kontrollerar jag alltid den faktiska effekten med numastat, perf och meningsfulla <strong>Riktm\u00e4rken<\/strong>. Det \u00e4r utvecklingen \u00f6ver flera minuter som \u00e4r intressant, inte bara en kort topp. F\u00f6rst n\u00e4r m\u00e4tv\u00e4rdena konsekvent visar att de lokala \u00e5tkomsterna \u00f6kar och latenserna minskar beh\u00e5ller jag det h\u00e4r l\u00e4get.<\/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\/08\/numa-balancing-decision-linux-4539.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Konfiguration: Sysctl och startparametrar<\/h2>\n\n<p>Jag kontrollerar statusen via \/proc eller sysctl och \u00e4ndrar den omedelbart vid behov, utan att <strong>Omstart<\/strong>. F\u00f6r test\u00e4ndam\u00e5l r\u00e4cker det med enkla kommandon som de nedan, som jag k\u00f6r i konsolen. P\u00e5 sikt st\u00e4ller jag in v\u00e4rdet i en sysctl-fil s\u00e5 att det bevaras efter en omstart. Den som vill st\u00e4lla in det redan vid uppstarten anv\u00e4nder k\u00e4rnparametern numa_balancing=enable eller <strong>inaktivera<\/strong>. Jag dokumenterar varje \u00e4ndring och antecknar i vilken arbetsbelastningsfas jag har gjort den.<\/p>\n\n<pre><code>cat \/proc\/sys\/kernel\/numa_balancing\necho 0 &gt; \/proc\/sys\/kernel\/numa_balancing\nsysctl -w kernel.numa_balancing=1\n# \/etc\/sysctl.d\/90-numa.conf\n# kernel.numa_balancing = 0\n<\/code><\/pre>\n\n<h2>Container- och virtualiseringsscenarier<\/h2>\n\n<p>P\u00e5 v\u00e4rddatorer med m\u00e5nga virtuella maskiner och containrar spelar den automatiska <strong>Lokalisering<\/strong> utnyttjar ofta sina styrkor. Processer startas och avslutas, Cgroups omf\u00f6rdelar belastningen, och k\u00e4rnan h\u00e5ller minnet n\u00e4rmare de aktiva k\u00e4rnorna. Jag m\u00e4rker detta framf\u00f6r allt p\u00e5 stora servrar med flera socklar och flera <strong>Noder<\/strong>. S\u00e4rskilda fall d\u00e4r enskilda instanser \u00e4r strikt fastst\u00e4llda skiljer jag tydligt \u00e5t och inaktiverar d\u00e4r automatiken p\u00e5 ett m\u00e5linriktat s\u00e4tt. F\u00f6r en mer ing\u00e5ende klassificering kan det vara bra att ta en titt p\u00e5 praktiska <a href=\"https:\/\/webhosting.de\/sv\/numa-balansering-server-minnesoptimering-hardvara-numaflux\/\">NUMA-optimering<\/a> i v\u00e4rdl\u00e4get.<\/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\/08\/numa_balancing_linux_5823.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Beslutstabell f\u00f6r praktiskt bruk<\/h2>\n\n<p>I f\u00f6ljande \u00f6versikt sammanfattas typiska scenarier, den f\u00f6rv\u00e4ntade effekten och min tydliga <strong>Rekommendation<\/strong>. Jag anv\u00e4nder dem som utg\u00e5ngspunkt, men ers\u00e4tter aldrig m\u00e4tv\u00e4rdena i det verkliga systemet med dem. Varje milj\u00f6 har sina egna s\u00e4rdrag, och jag fattar beslut f\u00f6rst efter att ha uppn\u00e5tt reproducerbara <strong>Resultat<\/strong> fast. Den som arbetar systematiskt sparar tid senare vid fels\u00f6kning och finjustering. Sm\u00e5 testk\u00f6rningar inf\u00f6r en lansering l\u00f6nar sig n\u00e4stan alltid i <strong>Constance<\/strong> och f\u00f6ruts\u00e4gbarhet.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Scenario<\/th>\n      <th>Typiska effekter<\/th>\n      <th>Mitt f\u00f6rslag<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Standardarbetsbelastningar utan NUMA-optimering<\/td>\n      <td>Fler lokala bes\u00f6k, f\u00e4rre fr\u00e5n andra orter <strong>L\u00e4sning<\/strong><\/td>\n      <td>L\u00e4mna aktiv<\/td>\n    <\/tr>\n    <tr>\n      <td>Databaser med varierande belastning<\/td>\n      <td>Dynamisk sidolokalisering, m\u00e5ttlig <strong>Skannar<\/strong><\/td>\n      <td>L\u00e5t den vara aktiv, testa<\/td>\n    <\/tr>\n    <tr>\n      <td>H\u00e5rd realtid eller HFT<\/td>\n      <td>Latensen vid hint-fel st\u00f6r <strong>Jitter<\/strong>-M\u00e5l<\/td>\n      <td>Inaktivera, f\u00e4sta manuellt<\/td>\n    <\/tr>\n    <tr>\n      <td>Manuell fastst\u00e4llning via numactl\/cgroups<\/td>\n      <td>Automatiken kolliderar med fasta f\u00f6rem\u00e5l <strong>Policys<\/strong><\/td>\n      <td>Inaktivera<\/td>\n    <\/tr>\n    <tr>\n      <td>Statiska minnesregler (MPOL_BIND, m.fl.)<\/td>\n      <td>Migrationer ger ingen verklig <strong>F\u00f6rdel<\/strong><\/td>\n      <td>Inaktivera<\/td>\n    <\/tr>\n    <tr>\n      <td>Test- och analysmilj\u00f6<\/td>\n      <td>Bra \u00f6verblick \u00f6ver platsen och <strong>Effekter<\/strong><\/td>\n      <td>L\u00e4mna aktivt, granska alternativ<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Riktlinjer f\u00f6r testning och validering<\/h2>\n\n<p>Jag startar med Balancer aktiverat och loggar lokala kontra fj\u00e4rranslutna <strong>Tilltr\u00e4den<\/strong> via Numastat. D\u00e4refter inaktiverar jag funktionen och upprepar m\u00e4tningarna p\u00e5 exakt samma s\u00e4tt. Jag utv\u00e4rderar skillnaderna inte bara utifr\u00e5n medelv\u00e4rden, utan \u00e4ven utifr\u00e5n <strong>Percentiler<\/strong>. Regressionskontroller med belastningsprofiler fr\u00e5n produktionen ger de mest tillf\u00f6rlitliga resultaten. F\u00f6rst d\u00e5 fattar jag det slutgiltiga beslutet om server, virtuell maskin eller en viss <strong>Service<\/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\/08\/devdesk_linux_numa_bal_7283.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Vanliga hinder och myter<\/h2>\n\n<p>En vanlig missuppfattning \u00e4r att den automatiska funktionen ers\u00e4tter alla <strong>N\u00e5lning<\/strong>. Det st\u00e4mmer inte, eftersom fasta latensbudgetar knappt t\u00e5l ytterligare fel. Lika felaktig \u00e4r antagandet att migreringar alltid <strong>kostnadsfritt<\/strong> intr\u00e4ffa. S\u00e4rskilt n\u00e4r det g\u00e4ller lokala layouter verkar overhead oftare ha en negativ \u00e4n en positiv inverkan. Den som undviker myter och m\u00e4ter noggrant fattar beslut med betydligt h\u00f6gre <strong>Noggrannhet<\/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\/08\/linux-numa-balancing-8192.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Automatiseringens gr\u00e4nser och interaktioner<\/h2>\n\n<p>AutoNUMA har stor inverkan p\u00e5 anonyma sidor som en process sj\u00e4lv allokerar. Men det g\u00e5r inte att migrera allt p\u00e5 ett meningsfullt s\u00e4tt. F\u00e4sta sidor (mlock), DMA-\/enhetsminne, DAX eller RDMA-registrerade omr\u00e5den f\u00f6rblir d\u00e4r de \u00e4r. \u00c4ven delade sidor (t.ex. flitigt delade bibliotek eller sidcache) ger endast begr\u00e4nsad nytta genom migrering, eftersom flera processer konkurrerar om <strong>\u00c5tkomstm\u00f6nster<\/strong> generera. Jag tar dessutom h\u00e4nsyn till kostnaderna f\u00f6r <strong>Transparenta stora sidor<\/strong> (THP): deras migrering \u00e4r dyrare \u00e4n f\u00f6r 4-KiB-sidor och kan orsaka belastningstoppar. Den som har strikta latensm\u00e5l kombinerar ofta THP=never eller madvise med inaktiverad balansering och ren pinning f\u00f6r att undvika \u00f6verraskningar.<\/p>\n\n<p>En annan aspekt \u00e4r samspelet med CPU-schemal\u00e4ggaren. Schemal\u00e4ggaren f\u00f6rs\u00f6ker placera tr\u00e5dar d\u00e4r deras data finns \u2013 och balanseraren flyttar data dit d\u00e4r tr\u00e5darna k\u00f6rs. De b\u00e5da kompletterar varandra, men kan vid oj\u00e4mn belastning tillf\u00e4lligt leda till <strong>Sv\u00e4ngningar<\/strong> leda till. I praktiken d\u00e4mpar skanningsintervallen dessa effekter; den som ser extremt oj\u00e4mna belastningsprofiler kan j\u00e4mna ut situationen genom l\u00e4ngre skanningsperioder eller genom stabilare tr\u00e5df\u00e4stning.<\/p>\n\n<h2>Finjustering av skanningsparametrarna<\/h2>\n\n<p>F\u00f6rutom den globala inst\u00e4llningen finns det k\u00e4rnparametrar som jag kan anv\u00e4nda f\u00f6r att finjustera automatikens aggressivitet. De exakta namnen kan variera n\u00e5got beroende p\u00e5 k\u00e4rnversionen, men syftet \u00e4r detsamma:<\/p>\n\n<ul>\n  <li>kernel.numa_balancing_scan_delay_ms: V\u00e4ntetid efter start, fork eller exec tills den f\u00f6rsta skanningen p\u00e5b\u00f6rjas.<\/li>\n  <li>kernel.numa_balancing_scan_period_min_ms \/ _max_ms: Minimi- och maximigr\u00e4ns f\u00f6r skanningsfrekvensen per processadressomr\u00e5de.<\/li>\n  <li>kernel.numa_balancing_rate_limit_mb: \u00d6vre gr\u00e4ns per tidsf\u00f6nster f\u00f6r sidmigreringar, f\u00f6r att spara p\u00e5 minnesbandbredden.<\/li>\n  <li>kernel.numa_balancing_scan_size_mb: M\u00e4ngden minne som markeras per skanningsomg\u00e5ng (om tillg\u00e4ngligt).<\/li>\n<\/ul>\n\n<p>I system d\u00e4r latensen \u00e4r avg\u00f6rande brukar jag, av f\u00f6rsiktighetssk\u00e4l, \u00f6ka minimiperioderna och maximiperioderna samt s\u00e4nka hastighetsbegr\u00e4nsningarna, ist\u00e4llet f\u00f6r att omedelbart st\u00e4nga av den automatiska funktionen. Det ger ofta en bra medelv\u00e4g: f\u00e4rre \u201dhint-faults\u201d, f\u00e4rre migreringar, men \u00e4nd\u00e5 tillr\u00e4cklig reaktion p\u00e5 verkliga felplaceringar.<\/p>\n\n<pre><code>#-exempel (tillf\u00e4lligt, fram till omstart)\nsysctl -w kernel.numa_balancing_scan_period_min_ms=60000\nsysctl -w kernel.numa_balancing_scan_period_max_ms=240000\nsysctl -w kernel.numa_balancing_rate_limit_mb=64\n<\/code><\/pre>\n\n<h2>M\u00e4tv\u00e4rden och diagnostik p\u00e5 djupet<\/h2>\n\n<p>F\u00f6r att kunna fatta v\u00e4lgrundade beslut granskar jag nyckeltal som tydligt belyser mekanismen. Jag anv\u00e4nder regelbundet tre k\u00e4llor:<\/p>\n\n<ul>\n  <li>numastat: F\u00f6rh\u00e5llandet mellan lokala och fj\u00e4rr\u00e5tkomster p\u00e5 systemniv\u00e5 och per process.<\/li>\n  <li>\/proc\/\/numa_maps: F\u00f6rdelning av en process minnessidor \u00f6ver noder, inklusive flaggor som active, file och anon.<\/li>\n  <li>\/proc\/vmstat: R\u00e4knare som numa_hint_faults, numa_hint_faults_local och numa_pages_migrated visar om balanseringsmodulen \u00e4r aktiv och om den <strong>Framg\u00e5ng<\/strong> har.<\/li>\n<\/ul>\n\n<pre><code># \u00d6versikt per process\nnumastat -p \n\n# Detaljvy: vilka omr\u00e5den finns var?\ngrep -E 'anon|file' \/proc\/\/numa_maps | head\n\n# Kernel\u00f6vergripande \u00f6versikt \u00f6ver AutoNUMA-aktivitet\ngrep -E 'numa_(hint_faults|pages_migrated)' \/proc\/vmstat\n<\/code><\/pre>\n\n<p>I resultaten letar jag efter trender: \u00d6kar andelen lokala \u00e5tkomstf\u00f6rs\u00f6k stadigt? Minskar samtidigt antalet \u201dhint-faults\u201d? D\u00e5 har en bra layout slagit igenom. Om andelen lokala \u00e5tkomstf\u00f6rfr\u00e5gningar f\u00f6rblir of\u00f6r\u00e4ndrad trots m\u00e5nga migreringar, sl\u00f6sar jag hellre bort cykler. F\u00f6r latensm\u00e5l kontrollerar jag dessutom den 95:e och 99:e percentilen f\u00f6r svarstiderna; sm\u00e5 f\u00f6rb\u00e4ttringar av medelv\u00e4rdet kan genom <strong>Jitter<\/strong> t\u00e4ckas \u00f6ver.<\/p>\n\n<h2>Arbetsbelastningsprofiler: vad som vanligtvis fungerar<\/h2>\n\n<p>Erfarenheterna har visat vilka situationer d\u00e4r AutoNUMA oftast \u00e4r till hj\u00e4lp och n\u00e4r det inte \u00e4r det:<\/p>\n\n<ul>\n  <li>JVM-tj\u00e4nster och applikationsservrar: De drar ofta nytta av detta, s\u00e5 l\u00e4nge ingen strikt tr\u00e5dbindningsstrategi och ingen egen aggressiv NUMA-logik \u00e4r aktiv. Vissa runtime-milj\u00f6er erbjuder NUMA-alternativ; om jag anv\u00e4nder dessa strikt, minskar jag den automatiska funktionen eller st\u00e4nger av den helt.<\/li>\n  <li>Relationella databaser: Vid varierande belastning med blandade cacher fungerar den automatiska funktionen ofta bra. Om jag d\u00e4remot anv\u00e4nder dedikerad pinning (Worker-to-Node, strikt f\u00f6rdelade delade buffertar) inaktiverar jag balanseringen f\u00f6r att s\u00e4kerst\u00e4lla ren reproducerbarhet.<\/li>\n  <li>In-memory-lagring och cacher: En stor, aktiv arbetsupps\u00e4ttning drar nytta av lokal placering. Om instansen k\u00f6rs i en tr\u00e5d eller \u00e4r strikt fastl\u00e5st f\u00f6rhindrar jag on\u00f6diga migreringar genom att st\u00e4nga av den.<\/li>\n  <li>HPC\/MPI och vetenskapliga program: Oftast finns det tydliga regler f\u00f6r placering och bindning (OpenMP\/numactl). H\u00e4r \u00e4r f\u00f6ruts\u00e4gbarhet viktigare \u00e4n automatik \u2013 jag st\u00e4nger av NUMA-balansering.<\/li>\n<\/ul>\n\n<h2>Virtualisering: vNUMA, pinning och live-migrering<\/h2>\n\n<p>I samspelet mellan v\u00e4rd och g\u00e4st tar jag h\u00e4nsyn till b\u00e5da niv\u00e5erna:<\/p>\n\n<ul>\n  <li>Om vNUMA-topologin i g\u00e4stsystemet st\u00e4mmer \u00f6verens med v\u00e4rdens fysiska NUMA-topologi kan g\u00e4stbalanseraren fatta v\u00e4lgrundade beslut. Om det finns avvikelser uppst\u00e5r \u201efelaktiga grannskap\u201c, vilket AutoNUMA endast kan kompensera i begr\u00e4nsad utstr\u00e4ckning.<\/li>\n  <li>Om jag kopplar vCPU:er fast till v\u00e4rd-CPU:er och binder g\u00e4stminnet till specifika noder, \u00e4r det en explicit policy \u2013 jag minskar eller inaktiverar AutoNUMA p\u00e5 denna VM-niv\u00e5 f\u00f6r att undvika dubbla migreringar.<\/li>\n  <li>Efter live-migreringar ser jag en uppv\u00e4rmningsfas: antalet hint-fel \u00f6kar tills en ny j\u00e4mvikt har uppn\u00e5tts. Under den h\u00e4r tiden planerar jag in buffertar f\u00f6r <strong>F\u00f6rdr\u00f6jning<\/strong>-spetsar.<\/li>\n<\/ul>\n\n<p>P\u00e5 t\u00e4tbefolkade virtualiseringsv\u00e4rdar, d\u00e4r instanser startas och st\u00e4ngs av och cgroups omf\u00f6rdelar belastningen, \u00e4r den automatiska funktionen p\u00e5 v\u00e4rden ofta en nettof\u00f6rdel. F\u00f6r dedikerade virtuella maskiner som \u00e4r k\u00e4nsliga f\u00f6r \u201eNoisy Neighbors\u201c kapslar jag in resurserna ordentligt och st\u00e4ller in reglerna statiskt.<\/p>\n\n<h2>Pragmatiska m\u00e5lv\u00e4rden och acceptanskriterier<\/h2>\n\n<p>Jag definierar f\u00f6rst vad \u201ebra\u201c inneb\u00e4r, s\u00e5 att jag inte beh\u00f6ver finjustera i all o\u00e4ndlighet:<\/p>\n\n<ul>\n  <li>Allm\u00e4nna tj\u00e4nster: 70\u201385% lokala \u00e5tkomstf\u00f6rs\u00f6k r\u00e4cker ofta om variansen \u00e4r l\u00e5g.<\/li>\n  <li>SLA:er f\u00f6r latens: M\u00e5l &gt;90% lokalt, tydliga \u00f6vre gr\u00e4nser f\u00f6r Hint-Fault-Rate och stabila 99:e percentiler.<\/li>\n  <li>Bandbreddstungt: Migreringar f\u00e5r inte \u00f6verbelasta lagringskanalerna \u2013 justera hastighetsbegr\u00e4nsningar och tidsintervall d\u00e4refter.<\/li>\n<\/ul>\n\n<p>Jag dokumenterar dessa tr\u00f6skelv\u00e4rden och utv\u00e4rderar A\/B-tester \u00f6ver flera belastningsfaser. Jag fattar inte n\u00e5got beslut f\u00f6rr\u00e4n resultaten \u00e4r reproducerbara.<\/p>\n\n<h2>Checklista f\u00f6r fels\u00f6kning<\/h2>\n\n<ul>\n  <li>Pl\u00f6tsliga latensspikar: Kontrollera om THP-migreringar eller toppar i numa_hint_faults korrelerar. \u00c5tg\u00e4rd: \u00d6ka skanningsintervallen, st\u00e4ll in THP p\u00e5 madvise\/never, st\u00e4ng av Balance vid behov.<\/li>\n  <li>Knappast n\u00e5gon effekt trots aktivering: \u00c4r tr\u00e5darna starkt f\u00e4sta eller finns det fasta minnesregler? I s\u00e5 fall kolliderar den automatiska funktionen med inst\u00e4llningarna.<\/li>\n  <li>H\u00f6g migreringstakt, men \u00e4nd\u00e5 m\u00e5nga fj\u00e4rr\u00e5tkomster: Kontrollera och h\u00f6j hastighetsbegr\u00e4nsningen; alternativt stabilisera arbetsbelastningen (tr\u00e5df\u00e4stning, h\u00e5ll cachen s\u00e5 varm som m\u00f6jligt).<\/li>\n  <li>Otydliga m\u00e4tv\u00e4rden: Anv\u00e4nd processvis vy med numastat -p och \/proc\/\/numa_maps, inte bara systemets sammanlagda v\u00e4rden.<\/li>\n<\/ul>\n\n<h2>Detaljer som ofta f\u00f6rbises<\/h2>\n\n<ul>\n  <li>Arbetsbelastningar som \u00e4r beroende av sidcache: AutoNUMA har framf\u00f6r allt effekt p\u00e5 anonyma sidor. Den som fr\u00e4mst arbetar med I\/O-intensiva uppgifter b\u00f6r inte f\u00f6rv\u00e4nta sig n\u00e5gra mirakel genom balansering.<\/li>\n  <li>Cgroups och cpusets: cpuset.mems begr\u00e4nsar vilka noder en grupp f\u00e5r \u00e5tkomst till. Detta \u00e4r en fast ram inom vilken det automatiska systemet verkar.<\/li>\n  <li>Memory-Hotplug\/Node-Offlining: Dynamiska topologier f\u00f6r\u00e4ndrar avst\u00e5nden; efter \u00e4ndringar \u00e4r det l\u00e4mpligt att utf\u00f6ra ett nytt test och vid behov justera skanningsparametrarna.<\/li>\n<\/ul>\n\n<h2>Kortfattat sammanfattat<\/h2>\n\n<p>F\u00f6r allm\u00e4nna serverarbetsbelastningar l\u00e5ter jag den automatiska inst\u00e4llningen vara p\u00e5slagen, eftersom den utan manuellt ingripande n\u00e4stan <strong>Uppgifter<\/strong> vilket leder till aktiva k\u00e4rnor. Vid realtidsdrift, HFT, manuell pinning eller fasta policyer st\u00e4nger jag av dem f\u00f6r att undvika \u00f6verbelastning och jitter. Under testfaser arbetar jag iterativt: m\u00e4ta, besluta, upprepa <strong>validera<\/strong>. Jag h\u00e5ller konfigurationen enkel, dokumenterar varje \u00e4ndring och kontrollerar effekten med hj\u00e4lp av tillf\u00f6rlitliga nyckeltal. P\u00e5 s\u00e5 s\u00e4tt utnyttjar jag styrkorna hos NUMA-h\u00e5rdvaran utan on\u00f6diga <strong>Risker<\/strong> att ta h\u00e4nsyn till.<\/p>","protected":false},"excerpt":{"rendered":"<p>Ta reda p\u00e5 hur NUMA-balansering p\u00e5verkar Linux-prestandan p\u00e5 modern serverh\u00e5rdvara och n\u00e4r du b\u00f6r inaktivera eller l\u00e5ta funktionen vara aktiverad. Fokus: NUMA-balansering.<\/p>","protected":false},"author":1,"featured_media":21096,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-21103","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":"171","_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":"numa balancing","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":"21096","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts\/21103","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=21103"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts\/21103\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/media\/21096"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/media?parent=21103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/categories?post=21103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/tags?post=21103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}