{"id":19569,"date":"2026-06-01T08:35:01","date_gmt":"2026-06-01T06:35:01","guid":{"rendered":"https:\/\/webhosting.de\/softirq-cpu-hosting-netzwerkdurchsatz-optimierung-datacenter\/"},"modified":"2026-06-01T08:35:01","modified_gmt":"2026-06-01T06:35:01","slug":"softirq-cpu-hosting-optymalizacja-przepustowosci-sieci-centrum-danych","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/softirq-cpu-hosting-netzwerkdurchsatz-optimierung-datacenter\/","title":{"rendered":"Hosting procesor\u00f3w softirq: optymalizacja wydajno\u015bci serwera i przepustowo\u015bci sieci"},"content":{"rendered":"<p>Pokazuj\u0119, jak <strong>softirq cpu<\/strong> wraz z NAPI, dystrybucj\u0105 IRQ i projektowaniem kolejek ogranicza lub uwalnia przepustowo\u015b\u0107 sieci w hostingu. Dzi\u0119ki jasnym punktom pomiarowym, ukierunkowanemu tuningowi i czystym powinowactwom, redukuj\u0119 <strong>Op\u00f3\u017anienia<\/strong> i konsekwentnie zwi\u0119ksza\u0107 przepustowo\u015b\u0107 pps na wydajnych serwerach.<\/p>\n\n<h2>Punkty centralne<\/h2>\n<p>Te podstawowe idee skutecznie przenosz\u0105 pakiety sieciowe przez CPU, j\u0105dro i NIC - i ograniczaj\u0105 czas odpowiedzi do minimum. <strong>sta\u0142y<\/strong> niski.<\/p>\n<ul>\n  <li><strong>Bud\u017cet NAPI<\/strong> precyzyjne dostrajanie: Wi\u0119ksza liczba pakiet\u00f3w na ankiet\u0119 zmniejsza koszty og\u00f3lne i wyg\u0142adza <strong>Obci\u0105\u017cenie procesora<\/strong>.<\/li>\n  <li><strong>R\u00f3wnowa\u017cenie IRQ<\/strong> i powinowactwo: unikaj hotspot\u00f3w, zwi\u0119ksz liczb\u0119 trafie\u0144 w pami\u0119ci podr\u0119cznej, <strong>Szczyty op\u00f3\u017anie\u0144<\/strong> nacisn\u0105\u0107.<\/li>\n  <li><strong>Wiele kolejek<\/strong>, RSS\/RPS\/XPS: r\u00f3wnoleg\u0142o\u015b\u0107 przep\u0142yw\u00f3w, utrzymanie wyr\u00f3wnania NUMA, <strong>pps<\/strong> podnie\u015b\u0107.<\/li>\n  <li><strong>Odci\u0105\u017cenia<\/strong> u\u017cywa\u0107 \u015bwiadomie: GRO\/LRO, OSP, oceni\u0107 koalescencj\u0119, <strong>Jitter<\/strong> na widoku.<\/li>\n  <li><strong>Izolacja<\/strong> i Busy Polling: przewidywalne czasy odpowiedzi na dedykowanych serwerach <strong>Rdzenie<\/strong>.<\/li>\n<\/ul>\n\n<h2>Podstawy: Co dzieje si\u0119 w j\u0105drze podczas ruchu sieciowego?<\/h2>\n<p>Pakiet najpierw l\u0105duje w przerwaniu sprz\u0119towym, po czym j\u0105dro przejmuje prac\u0119 w <strong>SoftIRQs<\/strong> i p\u0119tle ankiet NAPI. Upewniam si\u0119, \u017ce szybka faza HardIRQ pozostaje naprawd\u0119 kr\u00f3tka i \u017ce faktyczna logika przenosi si\u0119 do w\u0142a\u015bciwego kontekstu, tak aby <strong>czas procesora<\/strong> nie wygasa. W\u0105tki ksoftirqd wkraczaj\u0105 tylko wtedy, gdy bezpo\u015brednie przetwarzanie nie jest mo\u017cliwe, co szybko prowadzi do kolejek pod ci\u0105g\u0142ym obci\u0105\u017ceniem. To w\u0142a\u015bnie tam pojawia si\u0119 czas oczekiwania, co znajduje odzwierciedlenie w zwi\u0119kszonym TTFB i wahaniach przepustowo\u015bci. Je\u015bli chcesz zag\u0142\u0119bi\u0107 si\u0119 w temat, praktyczn\u0105 wiedz\u0119 na temat przetwarzania IRQ znajdziesz w tym artykule na stronie <a href=\"https:\/\/webhosting.de\/pl\/obsluga-przerwan-serwera-optymalizacja-wydajnosci-procesora-7342\/\">Obs\u0142uga przerwa\u0144 i wydajno\u015b\u0107 procesora<\/a>, kt\u00f3rego u\u017cywam do kategoryzacji.<\/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\/06\/serverperformance-netzwerk-4861.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>NAPI, SoftIRQs i ksoftirqd: kontrolowanie op\u00f3\u017anie\u0144 zamiast zarz\u0105dzania nimi<\/h2>\n<p>NAPI redukuje burze przerwa\u0144, odbieraj\u0105c kilka pakiet\u00f3w na uruchomienie w ramach okre\u015blonego bud\u017cetu, a tym samym minimalizuj\u0105c czas przerwania. <strong>Nad g\u0142ow\u0105<\/strong> obni\u017ca. Je\u015bli bud\u017cet jest niewystarczaj\u0105cy, paczki pi\u0119trz\u0105 si\u0119, ksoftirqd jest gor\u0105cy i <strong>Op\u00f3\u017anienie<\/strong> wzrasta mierzalnie. W takich sytuacjach systematycznie sprawdzam \/proc\/softirqs i \/proc\/net\/softnet_stat w celu wizualizacji spadk\u00f3w, time_squeeze lub przepe\u0142nionych kolejek. Nast\u0119pnie stopniowo zwi\u0119kszam net.core.netdev_budget lub net.core.netdev_budget_usecs i r\u00f3wnolegle monitoruj\u0119 obci\u0105\u017cenie CPU, rozk\u0142ad p95\/p99 i straty pakiet\u00f3w. Sztuczka polega na tym, aby wykona\u0107 wystarczaj\u0105c\u0105 ilo\u015b\u0107 pracy na jedn\u0105 ankiet\u0119 bez t\u0142umienia interaktywnego wykonywania w\u0105tk\u00f3w u\u017cytkownika.<\/p>\n\n<h2>R\u00f3wnowa\u017cenie IRQ i powinowactwo: unikaj hotspot\u00f3w, zwi\u0119ksz liczb\u0119 trafie\u0144 w pami\u0119ci podr\u0119cznej<\/h2>\n<p>Pojedynczy rdze\u0144 ze wszystkimi IRQ NIC staje si\u0119 w\u0105skim gard\u0142em, poniewa\u017c musi obs\u0142ugiwa\u0107 przerwania, mi\u0119kkie IRQ i w\u0105tki aplikacji. <strong>IRQ<\/strong> ukierunkowane. Us\u0142uga irqbalance pomaga, ale w przypadku wysokich szybko\u015bci pps wyra\u017anie mapuj\u0119 kolejki RX \/ TX poprzez powinowactwo do odpowiednich <strong>j\u0105dra<\/strong>. W systemach NUMA wi\u0105\u017c\u0119 kolejki z rdzeniami tego samego w\u0119z\u0142a, aby unikn\u0105\u0107 zdalnego dost\u0119pu do pami\u0119ci. W\u0105tki aplikacji dzia\u0142aj\u0105 na s\u0105siaduj\u0105cych, ale oddzielnych rdzeniach, co poprawia lokalizacj\u0119 pami\u0119ci podr\u0119cznej i harmonogramowanie. Ten przewodnik po strategicznej dystrybucji zapewnia dobry przegl\u0105d <a href=\"https:\/\/webhosting.de\/pl\/rownowazenie-irq-serwera-optymalizacja-wydajnosci-sieci-centrum-danych\/\">R\u00f3wnowa\u017cenie IRQ w centrum danych<\/a>, kt\u00f3rego u\u017cywam jako odniesienia do dostrajania.<\/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\/serverperformance3942.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Wiele kolejek, RSS\/RPS\/XPS: prawid\u0142owe korzystanie z r\u00f3wnoleg\u0142o\u015bci<\/h2>\n<p>Nowoczesne karty NIC s\u0105 wyposa\u017cone w kilka kolejek RX\/TX, kt\u00f3re mog\u0119 kontrolowa\u0107 za pomoc\u0105 <strong>RSS<\/strong> do przep\u0142yw\u00f3w, a tym samym osi\u0105gn\u0105\u0107 rzeczywist\u0105 r\u00f3wnoleg\u0142o\u015b\u0107. Je\u015bli karta oferuje zbyt ma\u0142o kolejek, u\u017cywam RPS\/XPS, aby dokona\u0107 regulacji po stronie oprogramowania w celu rozs\u0105dnej dystrybucji pakiet\u00f3w mi\u0119dzy przep\u0142ywami. <strong>j\u0105dra<\/strong> do wypchni\u0119cia. Czysta dystrybucja hash\u00f3w jest wa\u017cna, aby przep\u0142yw zawsze pozostawa\u0142 na tym samym CPU i nie dochodzi\u0142o do kosztownych zniekszta\u0142ce\u0144 pami\u0119ci podr\u0119cznej. Jednocze\u015bnie utrzymuj\u0119 \u015bcie\u017cki TX i RX blisko siebie, aby unikn\u0105\u0107 blokady i niepotrzebnych dost\u0119p\u00f3w mi\u0119dzyw\u0119z\u0142owych. Zwi\u0119ksza to przepustowo\u015b\u0107 pps bez hamowania przez pojedynczy rdze\u0144.<\/p>\n\n<h2>Przynale\u017cno\u015b\u0107 procesora do przestrzeni u\u017cytkownika: kompleksowe my\u015blenie<\/h2>\n<p>Planuj\u0119 \u015bcie\u017ck\u0119 danych od NIC-IRQ przez kolejki NAPI do w\u0105tk\u00f3w roboczych aplikacji, tak aby pakiety dociera\u0142y do miejsca docelowego bez zb\u0119dnych haczyk\u00f3w i bez zb\u0119dnych b\u0142\u0119d\u00f3w. <strong>Czas reakcji<\/strong> pozostaje sta\u0142a. Aby to osi\u0105gn\u0105\u0107, konsekwentnie oddzielam rdzenie dla przerwa\u0144\/softIRQ od rdzeni aplikacji i tworz\u0119 wyra\u017ane <strong>Affinity<\/strong>-zasady. Serwery internetowe, odwrotne proxy i bazy danych otrzymuj\u0105 sta\u0142e zestawy procesor\u00f3w, kt\u00f3re s\u0105 blisko rdzeni IRQ, aby utrzyma\u0107 kr\u00f3tkie \u015bcie\u017cki. Dodatkowo ustawi\u0142em CPU Governor na wydajno\u015b\u0107, aby zmiany zegara nie powodowa\u0142y jittera w p99. To sp\u00f3jne przypisanie sprawia, \u017ce zachowanie jest przewidywalne i pomaga w \u0142atwym diagnozowaniu w\u0105skich garde\u0142.<\/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-optimization-8321.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Odci\u0105\u017cenia, GRO\/LRO, firewall i eBPF: Oszcz\u0119dzaj \u0142adunek bez latania na \u015blepo<\/h2>\n<p>Zapisywanie sum kontrolnych, odci\u0105\u017canie OSP i koalescencja <strong>czas procesora<\/strong>, Mog\u0105 one jednak zmienia\u0107 rozmiary pakiet\u00f3w, zachowanie burst i jitter, dlatego mierz\u0119 efekty w szczeg\u00f3lno\u015bci. GRO\/LRO \u0142\u0105cz\u0105 ramki i zmniejszaj\u0105 obci\u0105\u017cenie stosu, ale w przypadku wymaga\u0144 czasu rzeczywistego decyduj\u0119 o tym w zale\u017cno\u015bci od sytuacji. <strong>Dezaktywacja<\/strong> lub ograniczone u\u017cycie. Tabele Conntrack i g\u0142\u0119bokie \u0142a\u0144cuchy nftables\/iptables kosztuj\u0105 zegary, wi\u0119c porz\u0105dkuj\u0119 zb\u0119dne regu\u0142y i upraszczam \u015bcie\u017cki. W razie potrzeby korzystam z eBPF (XDP, tc-BPF), aby podejmowa\u0107 wczesne decyzje w NIC i unika\u0107 kosztownych \u015bcie\u017cek. Dobrym punktem wyj\u015bcia dla praktyki dostrajania jest ten przegl\u0105d <a href=\"https:\/\/webhosting.de\/pl\/koalescencja-przerwan-optymalizacja-sieci-serverflux\/\">Koalescencja przerwa\u0144<\/a>, kt\u00f3re bior\u0119 pod uwag\u0119 w przypadku wra\u017cliwych bud\u017cet\u00f3w op\u00f3\u017anie\u0144.<\/p>\n\n<h2>Odpytywanie zaj\u0119to\u015bci i izolacja CPU: Blokowanie czas\u00f3w odpowiedzi<\/h2>\n<p>W przypadku cel\u00f3w o du\u017cych op\u00f3\u017anieniach u\u017cywam zaj\u0119tego odpytywania, dzi\u0119ki czemu gniazda przestrzeni u\u017cytkownika odbieraj\u0105 pakiety jeszcze wcze\u015bniej i <strong>Czas oczekiwania<\/strong> shorten. Zwi\u0119ksza to obci\u0105\u017cenie, ale zapewnia mi bardzo w\u0105skie dystrybucje p99 dla API lub obci\u0105\u017ce\u0144 handlowych na dedykowanych serwerach. <strong>Rdzenie<\/strong>. Ponadto izoluj\u0119 rdzenie za pomoc\u0105 isolcpus=, nohz_full= i rcu_nocbs=, tak aby timery, RCU i us\u0142ugi systemowe dzia\u0142a\u0142y tylko na procesorach sprz\u0105taj\u0105cych. Taka separacja zapobiega zak\u0142\u00f3ceniom na rdzeniach op\u00f3\u017aniaj\u0105cych i sprawia, \u017ce zachowanie jest powtarzalne. Rezultatem jest jasna mapa drogowa: dedykowane rdzenie, wczesne zbieranie pakiet\u00f3w, zdefiniowane bud\u017cety.<\/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\/softirq_cpu_hosting_4321.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Monitorowanie i rozwi\u0105zywanie problem\u00f3w: od objawu do przyczyny<\/h2>\n<p>Zaczynam od pps, przepustowo\u015bci i obci\u0105\u017cenia rdzenia, a nast\u0119pnie sprawdzam spadki i aktywno\u015b\u0107 <strong>ksoftirqd<\/strong>-w\u0105tki w czasie, aby niezawodnie rozpoznawa\u0107 wzorce. Narz\u0119dzia takie jak sar, htop, ss, nload i ethtool pokazuj\u0105 mi, kiedy i gdzie wyst\u0119puje przeci\u0105\u017cenie i czy <strong>Wskaz\u00f3wki<\/strong> osi\u0105gaj\u0105 swoje limity. Rozk\u0142ady s\u0105 wa\u017cne zamiast warto\u015bci \u015brednich, aby wieczorne szczyty, okna cron lub kampanie nie zosta\u0142y utracone. Koreluj\u0119 szczyty TTFB z dystrybucj\u0105 IRQ, bud\u017cetem NAPI i ustawieniami odci\u0105\u017cania w celu wprowadzenia ukierunkowanych zmian. Dostosowane powinowactwo IRQ lub nowo dostosowany bud\u017cet NAPI cz\u0119sto wystarcza, aby zauwa\u017calnie zmniejszy\u0107 limity czasu.<\/p>\n\n<h2>Parametry strojenia w skr\u00f3cie<\/h2>\n<p>Poni\u017cszy przegl\u0105d pomaga mi m\u0105drze korzysta\u0107 ze zmian i jasno przypisywa\u0107 efekty, zanim wprowadz\u0119 trwa\u0142e zmiany. <strong>wdro\u017cenia<\/strong> plan. Testuj\u0119 iteracyjnie ka\u017cde dostosowanie, mierz\u0119 rozk\u0142ady op\u00f3\u017anie\u0144 i obserwuj\u0119 efekty uboczne na <strong>CPU<\/strong> i pami\u0119\u0107. Zawsze zmieniam tylko jeden punkt na okno testowe, aby przyczyna i skutek pozosta\u0142y jasne. Nast\u0119pnie dokumentuj\u0119 wyniki i ustawiam warto\u015bci progowe dla alert\u00f3w. W ten spos\u00f3b osi\u0105gam powtarzalne ulepszenia bez ryzyka niespodzianek w ruchu produktywnym.<\/p>\n<table>\n  <thead>\n    <tr>\n      <th>Parametr\/Funkcja<\/th>\n      <th>Efekt w \u015bcie\u017cce danych<\/th>\n      <th>Kiedy podnie\u015b\u0107\/aktywowa\u0107<\/th>\n      <th>Ryzyko\/skutki uboczne<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td><strong>net.core.netdev_budget<\/strong><\/td>\n      <td>Wi\u0119cej pakiet\u00f3w na ankiet\u0119 NAPI<\/td>\n      <td>Dla spadk\u00f3w w softnet_stat<\/td>\n      <td>D\u0142u\u017csze ankiety wypieraj\u0105 w\u0105tki u\u017cytkownik\u00f3w<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>net.core.netdev_budget_usecs<\/strong><\/td>\n      <td>Ograniczenie okna czasowego na ankiet\u0119<\/td>\n      <td>Dla jittera spowodowanego du\u017cymi seriami<\/td>\n      <td>Za ma\u0142e: wi\u0119cej zmian kontekstu<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>RSS\/RPS\/XPS<\/strong><\/td>\n      <td>Dystrybucja przep\u0142yw\u00f3w mi\u0119dzy rdzeniami<\/td>\n      <td>Dla hotspot\u00f3w na rdzeniu<\/td>\n      <td>Nieprawid\u0142owe skr\u00f3ty: zniekszta\u0142cenia pami\u0119ci podr\u0119cznej<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Powinowactwo IRQ<\/strong><\/td>\n      <td>Powi\u0105zanie IRQ blisko rdzenia<\/td>\n      <td>Z NUMA-Missmatch<\/td>\n      <td>Niew\u0142a\u015bciwa alokacja tworzy nowe hotspoty<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>GRO\/LRO\/TSO<\/strong><\/td>\n      <td>Zmniejsza liczb\u0119 pakiet\u00f3w<\/td>\n      <td>W przypadku w\u0105skiego gard\u0142a procesora<\/td>\n      <td>Jitter, wi\u0119ksze serie<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Zaj\u0119te odpytywanie<\/strong><\/td>\n      <td>Wczesny odbi\u00f3r paczek<\/td>\n      <td>Dla trudnych cel\u00f3w p99<\/td>\n      <td>Wi\u0119ksze zu\u017cycie procesora<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\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\/developer_desk_focus_optimization_3748.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Pier\u015bcienie RX\/TX i g\u0142\u0119boko\u015b\u0107 cue: prawid\u0142owy wymiar bufor\u00f3w<\/h2>\n<p>Nawet przy prawid\u0142owo roz\u0142o\u017conych IRQ i odpowiednich bud\u017cetach, zbyt ma\u0142e lub zbyt du\u017ce pier\u015bcienie NIC mog\u0105 obni\u017cy\u0107 wydajno\u015b\u0107. Dlatego te\u017c sprawdzam rozmiary pier\u015bcieni RX\/TX karty i dostosowuj\u0119 je do docelowych warto\u015bci burst i op\u00f3\u017anie\u0144. Zbyt ma\u0142e pier\u015bcienie prowadz\u0105 do spadk\u00f3w w NIC podczas szczyt\u00f3w ruchu, widocznych jako rx_missed_errors lub fifo_errors w statystykach sterownika. Zbyt du\u017ce pier\u015bcienie maskuj\u0105 przeci\u0105\u017cenia, zwi\u0119kszaj\u0105 op\u00f3\u017anienia i tworz\u0105 d\u0142ugie kraw\u0119dzie ko\u0144cowe w p95\/p99. Szukam rozwi\u0105zania po\u015bredniego: wystarczaj\u0105cego bufora, aby zaabsorbowa\u0107 kr\u00f3tkie impulsy, ale nie tak du\u017cego, \u017ce pakiety \u201cstarzej\u0105 si\u0119\u201d w kolejkach.<\/p>\n<p>Ponadto przygl\u0105dam si\u0119 stronie hosta <strong>tx_queue_len<\/strong> i u\u017cywanego Qdisc. Za pomoc\u0105 sch_fq lub fq_codel mog\u0119 wyg\u0142adzi\u0107 zachowanie burst i dystrybuowa\u0107 du\u017ce pakiety TSO poprzez pacing. Redukuje to mikrowybuchy na porcie prze\u0142\u0105cznika i wyg\u0142adza krzyw\u0105 op\u00f3\u017anienia - co jest wa\u017cne w przypadku mieszanych obci\u0105\u017ce\u0144, w kt\u00f3rych ma\u0142e RPC dzia\u0142aj\u0105 obok du\u017cych wysy\u0142ek. Monitoruj\u0119 statystyki ethtool i koreluj\u0119 je z softnet_stat, aby rozpozna\u0107, czy przeci\u0105\u017cenie wyst\u0119puje w pier\u015bcieniu NIC, w backlogu netdev czy w Qdisc.<\/p>\n\n<h2>MTU, ramki jumbo i segmentacja<\/h2>\n<p>Die <strong>MTU<\/strong> to klasyczna d\u017awignia, kt\u00f3ra jest cz\u0119sto niedoceniana. Ramki jumbo zmniejszaj\u0105 liczb\u0119 pakiet\u00f3w na Gbit\/s i zmniejszaj\u0105 obci\u0105\u017cenie procesora - ale tylko wtedy, gdy \u015bcie\u017cka naprawd\u0119 obs\u0142uguje jumbo od ko\u0144ca do ko\u0144ca. Dlatego systematycznie sprawdzam zdalne stacje, prze\u0142\u0105czniki i tunele. Jak tylko gdzie\u015b nast\u0105pi fragmentacja z powrotem do 1500, istnieje ryzyko problem\u00f3w z MTU \u015bcie\u017cki, retransmisji i niepotrzebnych <strong>Jitter<\/strong>. W centrach danych, w kt\u00f3rych dominuje komunikacja wsch\u00f3d\/zach\u00f3d, op\u0142acalna jest jednorodna strategia 9k, podczas gdy 1500 jest cz\u0119sto bardziej stabilnym wyborem dla obci\u0105\u017ce\u0144 zwi\u0105zanych z Internetem.<\/p>\n<p>Zawsze oceniam MTU w po\u0142\u0105czeniu z <strong>OSP\/GSO\/GRO<\/strong>Zbyt agresywne \u0142\u0105czenie mo\u017ce prowadzi\u0107 do du\u017cych impuls\u00f3w w TX, kt\u00f3re wype\u0142niaj\u0105 bufory upstream i generuj\u0105 szczyty op\u00f3\u017anie\u0144. Celem jest sp\u00f3jna \u015bcie\u017cka: rozs\u0105dna segmentacja w nadajniku, wystarczaj\u0105ce mechanizmy stymulacji i GRO, kt\u00f3re oszcz\u0119dzaj\u0105 prac\u0119 po stronie odbiornika bez udaremniania wymaga\u0144 czasu rzeczywistego.<\/p>\n\n<h2>Obci\u0105\u017cenia UDP, QUIC i streaming: rozwa\u017c szczeg\u00f3\u0142y<\/h2>\n<p>Nie ca\u0142y ruch to TCP. <strong>UDP<\/strong>-Profile o du\u017cym obci\u0105\u017ceniu (DNS, VoIP, QUIC, telemetria) zachowuj\u0105 si\u0119 inaczej w RSS\/RPS i GRO. Nowoczesne stosy obs\u0142uguj\u0105 UDP-GRO\/GSO, co mo\u017ce zmniejszy\u0107 obci\u0105\u017cenie CPU - u\u017cywam tego selektywnie i mierz\u0119, czy ryzyko zmiany kolejno\u015bci lub jittera wzrasta. W przypadku obci\u0105\u017ce\u0144 QUIC\/HTTP3 kluczowa jest czysta dystrybucja przep\u0142yw\u00f3w: RPS mo\u017ce pom\u00f3c, je\u015bli NIC oferuje zbyt ma\u0142o kolejek RSS, ale nie mo\u017ce \u201crozrzuca\u0107\u201d \u017cadnych gor\u0105cych przep\u0142yw\u00f3w pami\u0119ci podr\u0119cznej. Po stronie TX ustawi\u0142em <strong>XPS<\/strong> do \u0142\u0105czenia \u015bcie\u017cek transmisji i zmniejszania rywalizacji blokad. W praktyce, cicha alokacja rdzenia jest op\u0142acalna, zw\u0142aszcza w przypadku wielu \u015brednich przep\u0142yw\u00f3w UDP, gdzie liczy si\u0119 ka\u017cde trafienie w pami\u0119ci podr\u0119cznej.<\/p>\n\n<h2>Wirtualizacja i kontenery: czysta integracja hosta, go\u015bcia i vhosta<\/h2>\n<p>W \u015brodowiskach zwirtualizowanych praca przenosi si\u0119 mi\u0119dzy hostem, w\u0105tkami vhost i IRQ go\u015bcia. Upewniam si\u0119, \u017ce <strong>vhost-net<\/strong>-W\u0105tki otrzymuj\u0105 w\u0142asne rdzenie i nie koliduj\u0105 z pracownikami aplikacji. Ich powinowactwa musz\u0105 pasowa\u0107 do fizycznych kolejek RX\/TX, w przeciwnym razie nast\u0105pi niepotrzebna migracja mi\u0119dzy procesorami. W go\u015bciu sprawdzam kolejki virtio-net, aktywuj\u0119 multi-queue i ustawiam RSS\/RPS analogicznie do bare metal. Gdzie latencja i pps s\u0105 na pierwszym planie <strong>SR-IOV<\/strong> dalsze zmniejszenie koszt\u00f3w og\u00f3lnych - warunkiem wst\u0119pnym jest sp\u00f3jna topologia NUMA: VF, vCPU i pami\u0119\u0107 nale\u017c\u0105 do tego samego w\u0119z\u0142a.<\/p>\n<p>W stosie kontener\u00f3w sieci nak\u0142adkowe, g\u0142\u0119bokie \u0142a\u0144cuchy NAT i z\u0142o\u017cone topologie CNI powoduj\u0105 dodatkowe przeskoki. W przypadku us\u0142ug krytycznych pod wzgl\u0119dem op\u00f3\u017anie\u0144 preferuj\u0119 hostNetwork lub sieci szczup\u0142e (macvlan\/ipvlan), wyr\u00f3wnuj\u0119 \u015bcie\u017cki NAT i zachowuj\u0119 <strong>Conntrack<\/strong> tak ma\u0142e, jak to tylko mo\u017cliwe. Wa\u017cna jest sp\u00f3jna strategia CPU: rdzenie IRQ i NAPI hosta powinny znajdowa\u0107 si\u0119 w s\u0105siedztwie rdzeni, na kt\u00f3rych dzia\u0142aj\u0105 vhost\/container workers - to jedyny spos\u00f3b na utrzymanie kr\u00f3tkiej i przewidywalnej \u015bcie\u017cki danych.<\/p>\n\n<h2>Planowanie, stany C i w\u0105tkowanie IRQ<\/h2>\n<p>Poniewa\u017c op\u00f3\u017anienie to nie tylko czas obliczeniowy, ale tak\u017ce <strong>Czas budzenia<\/strong> Minimalizuj\u0119 g\u0142\u0119bokie stany C na rdzeniach op\u00f3\u017aniaj\u0105cych. Agresywne oszcz\u0119dzanie energii mo\u017ce kosztowa\u0107 milisekundy przed faktycznym uruchomieniem SoftIRQ. Dlatego polegam na regulatorach wydajno\u015bci, ograniczam g\u0142\u0119bokie stany C i utrzymuj\u0119 sp\u00f3jno\u015b\u0107 turbo, aby skoki cz\u0119stotliwo\u015bci by\u0142y przewidywalne. R\u00f3wnie wa\u017cne jest <strong>W\u0105tkowanie IRQ<\/strong>Tam, gdzie sterowniki na to pozwalaj\u0105, przenosz\u0119 prac\u0119 do w\u0105tk\u00f3w IRQ i ustalam priorytety tak, aby RX uruchamia\u0142 si\u0119 przed dalsz\u0105 prac\u0105 bez ca\u0142kowitego wypierania userland. Interakcja polityk sched, powinowactw i bud\u017cet\u00f3w jest trudna; testuj\u0119 krok po kroku, loguj\u0119 p99 i uwa\u017cam na interferencj\u0119 z ksoftirqd, kt\u00f3ry w przeciwnym razie staje si\u0119 ukrytym w\u0105skim gard\u0142em.<\/p>\n\n<h2>Szczeg\u00f3\u0142owa obserwacja: punkty \u015bledzenia, liczniki, histogramy<\/h2>\n<p>Je\u015bli metryki pozostaj\u0105 niejasne, wchodz\u0119 o jeden poziom g\u0142\u0119biej: u\u017cywam tracepoint\u00f3w j\u0105dra wok\u00f3\u0142 <strong>netif_receive_skb<\/strong>, <strong>napi_poll<\/strong> oraz <strong>net_dev_queue<\/strong>, aby wy\u015bwietli\u0107 czas trwania odpytywania, ilo\u015b\u0107 pakiet\u00f3w i czasy oczekiwania w postaci histogram\u00f3w. Takie rozk\u0142ady pokazuj\u0105, czy 1 % sonda\u017cy trwa zbyt d\u0142ugo lub czy poszczeg\u00f3lne kolejki si\u0119 wyczerpuj\u0105. Dodatkowo, ethtool-<strong>rx\/tx<\/strong>-counters, TCP retransmits, busy poll hits i softnet_stat wyra\u017anie wskazuj\u0105, gdzie pakiety s\u0105 tracone. U\u017cywam analizy drop\u00f3w, aby rozpozna\u0107, czy NIC upuszcza (ring full), netdev backlog si\u0119 zapada (time_squeeze) lub Qdisc\/firewall zwalnia. Dopiero gdy te elementy uk\u0142adanki pasuj\u0105 do siebie, dostosowuj\u0119 pier\u015bcienie, bud\u017cety lub odci\u0105\u017cenia.<\/p>\n\n<h2>Usprawnienie \u015bcie\u017cek zabezpiecze\u0144 i filtrowania<\/h2>\n<p>Z\u0142o\u017cone ACL, g\u0142\u0119bokie \u0142a\u0144cuchy nftables\/iptables i szerokie tabele conntrack dodaj\u0105 sta\u0142e op\u00f3\u017anienia na pakiet. Konsoliduj\u0119 regu\u0142y, pracuj\u0119 z zestawami\/mapami i przenosz\u0119 og\u00f3lne spadki tak daleko na \u015bcie\u017cce, jak to mo\u017cliwe - najlepiej jak najwcze\u015bniej w NIC (XDP\/clsact), je\u015bli op\u00f3\u017anienie jest krytyczne. Przep\u0142ywy bezstanowe, telemetria lub znane \u201cbezpieczne\u201d porty mog\u0105 by\u0107 u\u017cywane w spos\u00f3b ukierunkowany. <strong>bez \u015bledzenia<\/strong> aby wyeliminowa\u0107 potrzeb\u0119 kosztownego wyszukiwania. Jednocze\u015bnie utrzymuj\u0119 \u015bwie\u017co\u015b\u0107 tabel stanu, dostosowuj\u0119 rozmiary hash\u00f3w do szczyt\u00f3w obci\u0105\u017cenia i agresywnie porz\u0105dkuj\u0119 osierocone wpisy. Celem jest czysta, identyfikowalna \u015bcie\u017cka polityki, kt\u00f3ra nie jest zauwa\u017calna w profilu jako sta\u0142e obci\u0105\u017cenie.<\/p>\n\n<h2>Typowe antywzorce i jak ich unika\u0107<\/h2>\n<ul>\n  <li><strong>Wszystkie IRQ na jednym rdzeniu:<\/strong> prowadzi do przeci\u0105\u017cenia i gor\u0105cych ksoftirqd. Antidotum: ukierunkowane powinowactwa na wskaz\u00f3wk\u0119, sp\u00f3jne z NUMA.<\/li>\n  <li><strong>\u015alepa maksymalizacja pier\u015bcieni\/bud\u017cet\u00f3w:<\/strong> ukrywa zatory, zwi\u0119ksza op\u00f3\u017anienia. Antidotum: zwi\u0119kszaj stopniowo, mierz rozk\u0142ady.<\/li>\n  <li><strong>Nieprawid\u0142owa konfiguracja haszowania przep\u0142ywu:<\/strong> Przep\u0142ywy przeskakuj\u0105 mi\u0119dzy rdzeniami, cache przestaje dzia\u0142a\u0107. Antidotum: stabilne klucze RSS, RPS\/XPS tylko z jasnym celem.<\/li>\n  <li><strong>W\u0105tki aplikacji na tych samych rdzeniach co SoftIRQ:<\/strong> Zak\u0142\u00f3cenia i jitter. Antidotum: twarda separacja, alokacja s\u0105siedzka.<\/li>\n  <li><strong>Nak\u0142adki\/NAT bez bud\u017cetu:<\/strong> dodane do ka\u017cdego przeskoku. Rozwi\u0105zanie: Usprawnienie \u015bcie\u017cek, sieci host\u00f3w dla obci\u0105\u017ce\u0144 z op\u00f3\u017anieniami.<\/li>\n  <li><strong>Oszcz\u0119dzanie energii na rdzeniach z op\u00f3\u017anieniami:<\/strong> G\u0142\u0119bokie stany C spowalniaj\u0105 reakcj\u0119. Antidotum: regulator wydajno\u015bci, ograniczenie stanu C.<\/li>\n  <li><strong>Roz\u0142adunek bez pomiaru:<\/strong> TSO\/GRO mo\u017ce zaostrzy\u0107 burst i jitter. Rozwi\u0105zanie: Aktywacja specyficznego obci\u0105\u017cenia, monitorowanie p99.<\/li>\n<\/ul>\n\n<h2>Praktyczny hosting: kroki, kt\u00f3re dzia\u0142aj\u0105<\/h2>\n<p>Zaczynam od czystej fazy pomiarowej, ustalam warto\u015bci bazowe i utrzymuj\u0119 wszystkie zmiany na niskim poziomie w kr\u00f3tkich oknach czasowych, dzi\u0119ki czemu mog\u0119 <strong>Przyczyny<\/strong> mo\u017cna rozdzieli\u0107. Nast\u0119pnie w\u0142\u0105czam irqbalance, sprawdzam automatyczn\u0105 dystrybucj\u0119 i, je\u015bli to konieczne, ustawiam r\u0119czne powinowactwa, a\u017c do momentu, gdy nie b\u0119dzie ju\u017c \u017cadnego <strong>Hotspoty<\/strong> nie s\u0105 ju\u017c widoczne. Nast\u0119pnie konfiguruj\u0119 Multi-Queue, RSS i - w razie potrzeby - RPS\/XPS, zsynchronizowane z NUMA. Wi\u0105\u017c\u0119 pracownik\u00f3w aplikacji z rdzeniami w s\u0105siedztwie ich rdzeni IRQ, ale bez bezpo\u015bredniej kolizji. Na koniec czyszcz\u0119 \u015bcie\u017cki firewalla, sprawdzam tabele conntrack i podejmuj\u0119 \u015bwiadome decyzje o odci\u0105\u017ceniach w oparciu o docelowe op\u00f3\u017anienia.<\/p>\n\n<h2>Przyk\u0142adowy playbook dla op\u00f3\u017anie\u0144 p99<\/h2>\n<p>Najpierw mierz\u0119 p95\/p99 poprzez reprezentatywne obci\u0105\u017cenie i bezpieczne logi z \/proc\/softirqs i \/proc\/net\/softnet_stat w celu <strong>Krople<\/strong> i time_squeeze s\u0105 wyra\u017anie widoczne. Nast\u0119pnie zwi\u0119kszam netdev_budget lub netdev_budget_usecs krok po kroku i przytrzymuj\u0119 p99 po ka\u017cdej zmianie, abym m\u00f3g\u0142 zobaczy\u0107 rzeczywist\u0105 warto\u015b\u0107. <strong>Trendy<\/strong> rozpozna\u0107. R\u00f3wnolegle wi\u0105\u017c\u0119 IRQ z rdzeniami w\u0119z\u0142a NUMA i przenosz\u0119 pracownik\u00f3w aplikacji do odpowiednich s\u0105siad\u00f3w. Je\u015bli p99 nadal skacze, testuj\u0119 warianty GRO\/LRO i profile koalescencji przerwa\u0144, ka\u017cdy z kr\u00f3tk\u0105 \u015bcie\u017ck\u0105 pomiarow\u0105. Dopiero gdy dystrybucja pozostaje stabilna, przenosz\u0119 konfiguracj\u0119 do r\u00f3l Ansible lub dropin\u00f3w systemd.<\/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\/serverraum-performance-1947.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Skr\u00f3cona wersja dla administrator\u00f3w<\/h2>\n<p>Najwi\u0119ksz\u0105 d\u017awigni\u0119 osi\u0105gam poprzez <strong>SoftIRQs<\/strong>, Bud\u017cet NAPI, powi\u0105zania IRQ i w\u0105tki aplikacji jako sp\u00f3jna \u015bcie\u017cka danych. Rozdzielam prac\u0119 sieciow\u0105 mi\u0119dzy rdzenie, utrzymuj\u0119 sp\u00f3jne kolejki NUMA i rozs\u0105dnie \u0142\u0105cz\u0119 pracownik\u00f3w, tak aby <strong>Trasy<\/strong> Kr\u00f3tko m\u00f3wi\u0105c. Celowo ustawiam odci\u0105\u017cenia i mierz\u0119 jitter, zamiast \u015blepo optymalizowa\u0107 przepustowo\u015b\u0107. W przypadku twardych cel\u00f3w op\u00f3\u017anie\u0144 polegam na zaj\u0119tym odpytywaniu i izolacji procesora, podczas gdy procesory sprz\u0105taj\u0105ce przechwytuj\u0105 zak\u0142\u00f3cenia. Je\u015bli wdro\u017cysz te kroki w zdyscyplinowany spos\u00f3b, uzyskasz sta\u0142\u0105 przepustowo\u015b\u0107, w\u0119\u017csze rozk\u0142ady op\u00f3\u017anie\u0144 i \u015brodowisko hostingowe, kt\u00f3re reaguje przewidywalnie na szczyty obci\u0105\u017cenia.<\/p>","protected":false},"excerpt":{"rendered":"<p>Dowiedz si\u0119, jak hosting procesor\u00f3w softirq ze zoptymalizowanymi przerwaniami linuksowymi, NAPI i r\u00f3wnowa\u017ceniem IRQ zwi\u0119ksza przepustowo\u015b\u0107 sieci i zmniejsza op\u00f3\u017anienia w dzia\u0142aniu serwera.<\/p>","protected":false},"author":1,"featured_media":19562,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-19569","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":"66","_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":"softirq cpu","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":"19562","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/19569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/comments?post=19569"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/19569\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/19562"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=19569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=19569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=19569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}