{"id":20866,"date":"2026-08-21T15:06:21","date_gmt":"2026-08-21T13:06:21","guid":{"rendered":"https:\/\/webhosting.de\/vm-swappiness-optimieren-linux-hosting-server-tuning-swap\/"},"modified":"2026-08-21T15:06:21","modified_gmt":"2026-08-21T13:06:21","slug":"vm-swappiness-optimering-linux-hosting-serveroptimering-swap","status":"publish","type":"post","link":"https:\/\/webhosting.de\/da\/vm-swappiness-optimieren-linux-hosting-server-tuning-swap\/","title":{"rendered":"Indstil vm.swappiness korrekt for at opn\u00e5 optimal serverydelse"},"content":{"rendered":"<p>Jeg viser, hvordan du indstiller vm.swappiness, s\u00e5 web- og databasetjenester p\u00e5 hosting-servere reagerer hurtigere og for\u00e5rsager mindre I\/O. Med klare trin, fornuftige startv\u00e6rdier og overv\u00e5gning f\u00e5r du mere ud af den eksisterende RAM og reducerer <strong>Forsinkelser<\/strong> og forhindrer un\u00f8dvendig swapping.<\/p>\n\n<h2>Centrale punkter<\/h2>\n\n<p>Disse punkter giver dig et hurtigt overblik over, hvordan du kan finjustere indstillingerne med det samme.<\/p>\n<ul>\n  <li><strong>Swappiness-adf\u00e6rd<\/strong>: Bestemmer, hvor tidligt kernen flytter RAM til swap.<\/li>\n  <li><strong>I forhold til arbejdsbyrden<\/strong>: Tilpas v\u00e6rdierne til applikationstypen, f.eks. database eller web.<\/li>\n  <li><strong>Midlertidig test<\/strong>: Tjek det f\u00f8rst i praksis, og fastl\u00e6g det derefter permanent.<\/li>\n  <li><strong>Swap-layout<\/strong>: T\u00e6nk p\u00e5 st\u00f8rrelse, omfang og prioriteter.<\/li>\n  <li><strong>Overv\u00e5gning<\/strong>: Overv\u00e5g og juster I\/O, RAM og responstider.<\/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\/08\/optimale-servereinstellung-5932.png\" alt=\"En server med optimale indstillinger, der sikrer enest\u00e5ende ydeevne\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Hvad vm.swappiness er, og hvordan det fungerer<\/h2>\n\n<p>Kernel-parameteren <strong>vm.swappiness<\/strong> bestemmer, hvor aggressivt Linux flytter hukommelsessider fra RAM til swap. Du finder den aktuelle v\u00e6rdi i pseudofilsystemet under \/proc\/sys\/vm\/swappiness og kan \u00e6ndre den under k\u00f8rsel eller permanent. En h\u00f8j v\u00e6rdi medf\u00f8rer tidligere udskiftning, mens en lav v\u00e6rdi holder indholdet l\u00e6ngere i RAM. M\u00e5let er at opn\u00e5 en god balance mellem RAM-udnyttelse, sidecache og kontrolleret swap-adf\u00e6rd. Jeg husker p\u00e5, at RAM er meget hurtigere end enhver SSD, s\u00e5 jeg foretr\u00e6kker <strong>Arbejdshukommelse<\/strong> klart f\u00f8r swap.<\/p>\n\n<h2>Hvorfor swappiness er vigtig p\u00e5 hosting-servere<\/h2>\n\n<p>P\u00e5 web- og applikationsservere er det indstillingen af <strong>Udskiftning<\/strong> om reaktionstid og gennemstr\u00f8mning. Aggressiv swapping skaber ekstra I\/O-belastning og bremser foresp\u00f8rgsler, is\u00e6r ved databasetunge arbejdsbelastninger. For lave v\u00e6rdier medf\u00f8rer derimod risikoen for senere OOM-h\u00e6ndelser, som brat afbryder processer. Derfor vurderer jeg ud over RAM og swap ogs\u00e5 typiske belastningsspidser, cacher og foresp\u00f8rgselsm\u00f8nstre. Ved at reducere latenstider forhindrer man hakken og holder transaktionerne m\u00e6rkbart <strong>flydende<\/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\/08\/servermeeting_swappiness_3847.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Anbefalinger baseret p\u00e5 arbejdsbelastning<\/h2>\n\n<p>En enkelt v\u00e6rdi passer sj\u00e6ldent til alle scenarier, derfor starter jeg med gennempr\u00f8vede intervaller og tilpasser dem derefter til m\u00e5ledataene. Databaser har gavn af meget lave indstillinger, mens rene webservere ofte kan klare lidt h\u00f8jere v\u00e6rdier. Test- eller udviklingssystemer kan k\u00f8re t\u00e6ttere p\u00e5 standarden, fordi brugervenlighed spiller en st\u00f8rre rolle. F\u00f8lgende skema bruger jeg som en pragmatisk indgang til <strong>Hosting<\/strong>-Arbejdsbelastninger. Derefter overv\u00e5ger jeg I\/O, swap-udnyttelse og responstider og finjusterer efter behov.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Arbejdsbyrde<\/th>\n      <th>Anbefalet Swappiness<\/th>\n      <th>M\u00e5l<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td><strong>Databaser<\/strong> (MySQL, PostgreSQL)<\/td>\n      <td>0\u201310<\/td>\n      <td>Bevar bufferen i RAM, hold latenstiderne lave<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Realtid\/lav latenstid<\/strong><\/td>\n      <td>0\u201310<\/td>\n      <td>Undg\u00e5 I\/O-spidsbelastninger ved hj\u00e6lp af swap<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Webserver<\/strong> med cacher<\/td>\n      <td>10\u201320 (i nogle tilf\u00e6lde 10\u201330)<\/td>\n      <td>Flyt kolde sider ud, aktive foresp\u00f8rgsler i RAM\u2019en<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Udvikling\/Test<\/strong><\/td>\n      <td>30\u201360<\/td>\n      <td>Komfort og stabilitet frem for forsinkelse<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Kontroller den aktuelle v\u00e6rdi<\/h2>\n\n<p>Inden jeg \u00e6ndrer v\u00e6rdierne, afl\u00e6ser jeg status og dokumenterer <strong>Baseline<\/strong>. Til det bruger jeg enten `cat \/proc\/sys\/vm\/swappiness` eller `sysctl vm.swappiness`; begge metoder giver et tal som f.eks. 60. Samtidig tjekker jeg RAM- og swap-udnyttelsen med `free -h`. Med swapon \u2013show kan jeg se st\u00f8rrelse, prioritet og medium for de aktive swap-enheder. Disse udgangsdata hj\u00e6lper mig med at vurdere effekterne senere <strong>tildele<\/strong> for at v\u00e6re i stand til det.<\/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\/server-optimierung-swappiness-4287.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Test det midlertidigt i stedet for at \u00e6ndre det med det samme<\/h2>\n\n<p>Jeg installerer Swappiness f\u00f8rst som en pr\u00f8ve for at se, hvordan det fungerer under reelle <strong>Belastning<\/strong> kan ses. Kommandoen sysctl vm.swappiness=10 virker med det samme, men varer kun indtil genstart. Under testene holder jeg \u00f8je med top eller htop, tjekker vmstat og iostat og m\u00e5ler tjenesternes responstider. Hvis swap-frekvensen falder, og latenstiderne forbliver stabile, forts\u00e6tter jeg i fornuftige trin. F\u00f8rst n\u00e5r m\u00e5lingerne er overbevisende, skriver jeg v\u00e6rdien <strong>permanent<\/strong> fast.<\/p>\n\n<h2>Konfigurer permanent<\/h2>\n\n<p>Hvis testv\u00e6rdien passer, indtaster jeg den i en sysctl-konfiguration og genindl\u00e6ser indstillingerne. I \/etc\/sysctl.conf tilf\u00f8jer jeg linjen vm.swappiness=10 og aktiverer den med sysctl -p. Jeg foretr\u00e6kker at opbevare en separat fil i \/etc\/sysctl.d\/, f.eks. 99-swappiness.conf, og indl\u00e6ser den med sysctl \u2013system. Det er nemt at versionere og integrere i automatisering. En mere detaljeret oversigt over relaterede parametre findes i dette indl\u00e6g om <a href=\"https:\/\/webhosting.de\/da\/sysctl-optimering-af-webhostingserverens-ydeevne\/\">indstilling af sysctl<\/a>, der hj\u00e6lper mig med at strukturere \u00e6ndringerne og <strong>Klarhed<\/strong> bringer.<\/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\/serverperformance_8432.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Swap-st\u00f8rrelse, hukommelseslayout og datamedier<\/h2>\n\n<p>Swappiness virker aldrig isoleret, derfor vurderer jeg st\u00f8rrelsen og placeringen af <strong>Bytte<\/strong> altid med. For lidt swap bliver hurtigt fyldt op, mens for stor swap forl\u00e6nger I\/O-faser under belastning. P\u00e5 SSD eller NVMe er swap hurtigere end p\u00e5 HDD, men RAM er stadig flere st\u00f8rrelsesordener hurtigere. Flere swap-enheder med prioriteter hj\u00e6lper med at udnytte det hurtigste medie f\u00f8rst. Hvis du vil dykke dybere ned i fordele og ulemper, finder du i denne oversigt over <a href=\"https:\/\/webhosting.de\/da\/er-swap-nyttigt-ved-hosting-eller-er-det-en-praestationsdraeber-ramboost\/\">Swap i hosting<\/a> nyttige tanker til <strong>\u00d8velse<\/strong>.<\/p>\n\n<h2>Arbejdsgang i praksis: Trin for trin<\/h2>\n\n<p>Jeg starter med en statusopg\u00f8relse: registrerer den aktuelle Swappiness-v\u00e6rdi, RAM- og swap-udnyttelse, CPU og I\/O og gemmer det som <strong>Reference<\/strong> sikre. Derefter klassificerer jeg arbejdsbelastningen: hovedsageligt database, web med cache, blandet drift eller containerbaseret. Herefter fastl\u00e6gger jeg et m\u00e5l: 0\u201310 for databaser, for web typisk 10\u201320, og for blandede belastninger g\u00e5r jeg forsigtigt frem. Jeg indstiller v\u00e6rdien midlertidigt, observerer flere belastningsfaser og sammenligner m\u00e5linger. Hvis billedet stemmer overens gentagne gange, fastl\u00e6gger jeg v\u00e6rdien, dokumenterer \u00e6ndringen og kontrollerer den efter kerne-, hardware- eller <strong>Udgivelse<\/strong>-Skift igen.<\/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\/serverperformance_vm_4512.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>S\u00e6rlige scenarier: Containere, virtuelle maskiner og cloud<\/h2>\n\n<p>I containere og virtuelle maskiner \u00f8ger jeg swappiness p\u00e5 b\u00e5de v\u00e6rts- og g\u00e6steniveau <strong>sammen<\/strong> . Orkestreringsplatforme som Kubernetes drager som regel fordel af meget lave indstillinger p\u00e5 arbejdsknudepunkterne for at holde pod-latenser lave. I VM\u2019er indstiller jeg passende v\u00e6rdier internt, men s\u00f8rger for, at hypervisoren ikke modarbejder dette. I elastiske cloud-ops\u00e6tninger hj\u00e6lper konservative v\u00e6rdier med at udj\u00e6vne spidsbelastninger, indtil skaleringen sl\u00e5r igennem. Jeg undg\u00e5r, at en enkelt container p\u00e5 grund af intensiv swap-adf\u00e6rd belaster hele <strong>Platform<\/strong> bremser.<\/p>\n\n<h2>Overv\u00e5gning og fejlfinding<\/h2>\n\n<p>Typiske advarselstegn p\u00e5 en uhensigtsm\u00e6ssig swappiness ser jeg i form af h\u00f8j I\/O-belastning, selvom der stadig er ledig RAM, svingende responstider og tr\u00e6ge databaseforesp\u00f8rgsler. S\u00e5danne m\u00f8nstre tjekker jeg med vmstat, iostat, sar samt m\u00e5linger fra min observability-stack. Hvis systemet viser stor brug af swap trods ledig RAM, s\u00e6tter jeg som regel swappiness-v\u00e6rdien lavere. Hvis jeg ser OOM-logfiler eller afbrydelser ved knap RAM, h\u00e6ver jeg swappiness-v\u00e6rdien moderat eller justerer swap-ops\u00e6tningen. Den f\u00f8lgende tabel kategoriserer symptomer p\u00e5 en sandsynlig <strong>\u00c5rsag<\/strong> og angiver en f\u00f8rste retning.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Symptom<\/th>\n      <th>Sandsynlig \u00e5rsag<\/th>\n      <th>N\u00e6ste skridt<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td><strong>H\u00f8j I\/O<\/strong> n\u00e5r der er ledig RAM<\/td>\n      <td>Swappiness for h\u00f8j<\/td>\n      <td>Reducere v\u00e6rdien, m\u00e5le effekten<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>OOM-h\u00e6ndelser<\/strong> under belastning<\/td>\n      <td>Swappiness for lav eller for lidt swap<\/td>\n      <td>H\u00e6v v\u00e6rdien, kontroller swap-st\u00f8rrelsen<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Tunge foresp\u00f8rgsler<\/strong> trods CPU-reserve<\/td>\n      <td>Databasebuffer flyttet til disk<\/td>\n      <td>V\u00e6rdi mellem 0 og 10, analyser DB-bufferen<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Belastningsspidser<\/strong> uden CPU-flaskehals<\/td>\n      <td>Swap-for\u00e5rsagede I\/O-spidsbelastninger<\/td>\n      <td>S\u00e6nk swappiness, kontroller cache-hits<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>At forst\u00e5 finmaskede m\u00e5leparametre<\/h2>\n\n<p>For at vurdere swappiness objektivt kigger jeg n\u00e6rmere p\u00e5 kerne-t\u00e6llerne. I \/proc\/vmstat angiver pswpin og pswpout henholdsvis antallet af indl\u00e6ste og udlagrede sider. pgscan_kswapd_* og pgsteal_* viser, hvor aggressivt reclaimeren arbejder. Hvis der er mange pgmajfault (Major Page Faults), tyder det p\u00e5 I\/O-tunge genindl\u00e6sninger. Jeg l\u00e6ser disse v\u00e6rdier gentagne gange eller med sar -B og sar -W for at se frekvenser, ikke kun \u00f8jebliksbilleder. Med vmstat 1 kan jeg se si\/so (swap in\/out) og tilordne spidsbelastninger til reelle h\u00e6ndelser. Derudover giver \/proc\/pressure\/memory en vurdering af, hvor meget opgaver p\u00e5virkes af hukommelsespres <strong>blok<\/strong> (PSI). Hvis nogle eller alle disse v\u00e6rdier stiger, er det et klart tegn p\u00e5 for aggressiv reclaim eller uhensigtsm\u00e6ssig swappiness.<\/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\/serverperformance-8734.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Swappiness 0 vs. 1: hvad kernen egentlig g\u00f8r<\/h2>\n\n<p>Man antager ofte, at Swappiness=0 deaktiverer swap fuldst\u00e6ndigt. Det er ikke helt korrekt. 0 signalerer til kernen, at den skal undg\u00e5 swap s\u00e5 vidt muligt og kun bruge det, n\u00e5r der er reel pladsmangel. I praksis er en v\u00e6rdi p\u00e5 1\u201310 tilstr\u00e6kkelig til at opn\u00e5 en meget tilbageholden adf\u00e6rd, mens 0 i enkelte versioner lejlighedsvis kan f\u00f8re til forsinkede, men til geng\u00e6ld voldsomme reclaim-faser. Til tidsf\u00f8lsomme tjenester indstiller jeg som regel 1\u20135 og holder \u00f8je med, om pswpout\/pswpin forbliver praktisk talt p\u00e5 nul. Hvis der opst\u00e5r OOM-h\u00e6ndelser ved 0 under spidsbelastninger, h\u00e6ver jeg v\u00e6rdien lidt, s\u00e5 kernen tidligere og blidt aflaster presset i stedet for at g\u00f8re det brat <strong>at bryde ind<\/strong>.<\/p>\n\n<h2>S\u00e5dan udnytter du Zswap og ZRAM bedst muligt<\/h2>\n\n<p>Ud over klassisk swap p\u00e5 harddisken bruger jeg, afh\u00e6ngigt af profilen, enten Zswap eller ZRAM. Zswap komprimerer de sider, der er flyttet til swap-omr\u00e5det, og opbevarer dem f\u00f8rst i RAM, f\u00f8r de flyttes til harddisken, hvis det bliver n\u00f8dvendigt. Det reducerer I\/O og udj\u00e6vner ventetider, men belaster CPU'en. P\u00e5 v\u00e6rter med stor CPU-reserve er det en <strong>mere indbringende<\/strong> Afvejning. ZRAM stiller komprimeret swap til r\u00e5dighed direkte i RAM \u2013 ideelt til spidsbelastninger eller meget sm\u00e5 virtuelle maskiner, hvor jeg foretr\u00e6kker at bruge komprimeret RAM frem for langsom I\/O. Vigtigt: Jeg v\u00e6lger bevidst et af koncepterne og prioriterer s\u00e5ledes, at den hurtigste vej betjenes f\u00f8rst. Swappiness forbliver herved et styringsredskab: selv med Zswap\/ZRAM \u00f8nsker jeg at undg\u00e5 un\u00f8dvendige reclaim-b\u00f8lger.<\/p>\n\n<h2>Sidecache, vfs_cache_pressure og cache-hits<\/h2>\n\n<p>Swappiness interagerer med sidecachen, der opbevarer filer og inoder i RAM. Med vm.vfs_cache_pressure styrer jeg, hvor aggressivt kernen rydder disse cacher over for anonyme sider. For h\u00f8je v\u00e6rdier f\u00e5r metadatacacher til at forsvinde for hurtigt, hvilket bremser webserverne. Jeg starter som regel med 50\u2013100, m\u00e5ler cache-hit-raterne og observerer, hvordan latenstiderne for statiske ressourcer og API-svar udvikler sig. M\u00e5let er at holde hyppigt brugt indhold i RAM'en uden at sj\u00e6ldent anvendte sider tilstopper arbejdshukommelsen. Hvis hitraten forbliver god og I\/O-belastningen lav, fungerer samspillet optimalt; ellers justerer jeg swappiness og vfs_cache_pressure i <strong>Tandem<\/strong>.<\/p>\n\n<h2>Undg\u00e5 \u00bbdirty writeback\u00ab og I\/O-spidsbelastninger<\/h2>\n\n<p>Skrivestier p\u00e5virker latenstiderne p\u00e5 samme m\u00e5de som swap. Med vm.dirty_background_ratio\/bytes og vm.dirty_ratio\/bytes bestemmer jeg, hvor meget \u00bbsnavset\u00ab cache der dannes, f\u00f8r kernen skriver til disk. Jeg foretr\u00e6kker *_bytes frem for procenter for at fasts\u00e6tte definerede \u00f8vre gr\u00e6nser \u2013 is\u00e6r i konfigurationer med stor RAM, hvor procenter kan skabe enorme b\u00f8lger af writeback. M\u00e5l: kontinuerlig, planl\u00e6gbar skrivning i stedet for sporadiske b\u00f8lger, der sammen med swap skaber I\/O-l\u00e5se. Jeg overv\u00e5ger iostat og writeback-k\u00f8erne og holder v\u00e6rdierne p\u00e5 et niveau, s\u00e5 SSD\/NVMe udnyttes konstant, men ikke <strong>k\u00f8rt over<\/strong> blive.<\/p>\n\n<h2>NUMA, Zone Reclaim og store v\u00e6rter<\/h2>\n\n<p>P\u00e5 systemer med NUMA spiller hukommelseslokalisering en rolle. Hvis vm.zone_reclaim_mode er aktiveret, kan kernen mere aggressivt genvinde hukommelse p\u00e5 den lokale NUMA-node, hvilket utilsigtet kan udl\u00f8se spidsbelastninger i genvindingen. For mange hosting-arbejdsbelastninger deaktiverer jeg Zone Reclaim og overlader placeringen til scheduleren for at opn\u00e5 en mere stabil drift. Derudover tjekker jeg Transparent Huge Pages (THP): Databaser reagerer ofte bedre p\u00e5 THP=never eller madvise, fordi uplanlagt defragmentering og THP-tildelinger kan udl\u00f8se latensspidser. Swappiness kan v\u00e6re perfekt \u2013 men hvis THP eller NUMA-politikker blander sig, forbliver <strong>Hakkende bev\u00e6gelse<\/strong>.<\/p>\n\n<h2>Container- og Cgroups-enheder<\/h2>\n\n<p>Med Cgroups v2 har jeg ud over host-swappiness yderligere indstillingsmuligheder: memory.high udl\u00f8ser en blid genvinding, memory.max s\u00e6tter strenge \u00f8vre gr\u00e6nser, og memory.swap.max begr\u00e6nser swap pr. arbejdsbelastning. P\u00e5 den m\u00e5de forhindrer jeg, at enkelte containere bremser v\u00e6rten via swap. Jeg indstiller lave swappiness-v\u00e6rdier p\u00e5 noden og prioriterer kritiske arbejdsbelastninger via `memory.low`, s\u00e5 deres hotsets forbliver l\u00e6ngere i RAM. I Kubernetes holder jeg \u00f8je med, hvordan noden h\u00e5ndterer swap, og tester \u00e6ndringer f\u00f8rst i ikke-produktionspuljer. Det er vigtigt at have det samlede overblik: V\u00e6rtsparametre, Cgroup-gr\u00e6nser og orkestratoren skal passe sammen, ellers flyttes presset blot fra et niveau til <strong>andre<\/strong>.<\/p>\n\n<h2>Implementering, automatisering og tilbagefald<\/h2>\n\n<p>Jeg implementerer \u00e6ndringer i Swappiness p\u00e5 samme kontrollerede m\u00e5de som enhver anden ydeevneoptimering: f\u00f8rst p\u00e5 en lille gruppe n\u00e6sten identiske noder (Canary), derefter gradvist i st\u00f8rre omfang. Systemd-sysctl eller konfigurationsstyring integrerer v\u00e6rdierne p\u00e5 en reproducerbar m\u00e5de. Jeg dokumenterer start- og m\u00e5lv\u00e6rdier, tidspunkter, involverede v\u00e6rter og <strong>Metrikker<\/strong>. I tilf\u00e6lde af et tilbageslag planl\u00e6gger jeg p\u00e5 forh\u00e5nd den modsatte \u00e6ndring (f.eks. sysctl vm.swappiness=60) og gemmer de tidligere sysctl-filer. I vedligeholdelsesvinduer m\u00e5ler jeg bevidst typiske belastningsscenarier, s\u00e5 jeg ikke forveksler \u00e6ndringer med udsving i tidspunktet p\u00e5 dagen eller trafikken. Kun p\u00e5 den m\u00e5de forbliver beslutningerne p\u00e5lidelige og i teamet <strong>forst\u00e5elig<\/strong>.<\/p>\n\n<h2>Almindelige misforst\u00e5elser og anti-m\u00f8nstre<\/h2>\n\n<ul>\n  <li><strong>\u201eSwappiness=0 deaktiverer swap\u201c<\/strong>: Nej, kernen bruger stadig swap \u2013 men kun i meget begr\u00e6nset omfang.<\/li>\n  <li><strong>\u201eJo flere swaps, desto mere sikkerhed\u201c<\/strong>: For meget swap forl\u00e6nger belastningsperioder og skjuler RAM-flaskehalse i stedet for at l\u00f8se dem.<\/li>\n  <li><strong>\u201eMed NVMe er swapping ligegyldigt\u201c<\/strong>: NVMe er hurtigt, men flere st\u00f8rrelsesordener langsommere end RAM. Latenstiderne er stadig m\u00e6rkbare.<\/li>\n  <li><strong>\u201eEn v\u00e6rdi for alle servere\u201c<\/strong>: Arbejdsbelastningerne varierer meget. Uden m\u00e5linger er optimering et sp\u00f8rgsm\u00e5l om tilf\u00e6ldigheder.<\/li>\n  <li><strong>\u201eSwappiness l\u00f8ser ethvert forsinkelsesproblem\u201c<\/strong>: Problemer skyldes ofte cache-hits, writeback, THP, foresp\u00f8rgselsplaner eller netv\u00e6rksstier.<\/li>\n<\/ul>\n\n<h2>Resum\u00e9 til hurtig start<\/h2>\n\n<p>Jeg indstiller typisk vm.swappiness til 10\u201320 for webservere og til 0\u201310 for databaser, tester effekten og overv\u00e5ger I\/O, ventetider og <strong>Bytte<\/strong>-andel. Den endelige v\u00e6rdi fastl\u00e6gger jeg via sysctl i \/etc\/sysctl.d\/ og s\u00f8rger for, at \u00e6ndringerne kan spores. Samtidig s\u00f8rger jeg for et velafbalanceret swap-layout: passende st\u00f8rrelse, hurtigt medie, fornuftige prioriteter. Hvad ang\u00e5r belastningen p\u00e5 hukommelsen, holder jeg desuden \u00f8je med side-cachen og dens adf\u00e6rd; denne oversigt giver en god indf\u00f8ring i <a href=\"https:\/\/webhosting.de\/da\/server-page-cache-eviction-linux-memory-print-optimisation-insight\/\">Fjernelse fra sidecachen<\/a>, som hj\u00e6lper mig med at analysere \u00e5rsagerne og <strong>Sammenh\u00e6ng<\/strong> . Med denne fremgangsm\u00e5de opn\u00e5r jeg p\u00e5lidelige svartider, forhindrer overbelastning af swap-omr\u00e5det og udnytter den tilg\u00e6ngelige RAM effektivt.<\/p>","protected":false},"excerpt":{"rendered":"<p>Find ud af, hvordan du m\u00e5lrettet optimerer vm.swappiness til din Linux-hostingserver og markant forbedrer serverens ydeevne ved hj\u00e6lp af passende Linux-swap-tuning.<\/p>","protected":false},"author":1,"featured_media":20859,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-20866","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":"137","_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":"vm.swappiness","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":"20859","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/posts\/20866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/comments?post=20866"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/posts\/20866\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/media\/20859"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/media?parent=20866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/categories?post=20866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/tags?post=20866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}