{"id":21347,"date":"2026-09-13T08:35:03","date_gmt":"2026-09-13T06:35:03","guid":{"rendered":"https:\/\/webhosting.de\/linux-softirq-auslastung-analysieren-performance-tuning-datacenter\/"},"modified":"2026-09-13T08:35:03","modified_gmt":"2026-09-13T06:35:03","slug":"analiza-obciazenia-softirq-w-systemie-linux-optymalizacja-wydajnosci-centrum-danych","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/linux-softirq-auslastung-analysieren-performance-tuning-datacenter\/","title":{"rendered":"Analiza i optymalizacja wykorzystania SoftIRQ w systemie Linux"},"content":{"rendered":"<p>Poka\u017c\u0119 krok po kroku, jak <strong>Linux SoftIRQ<\/strong>-mierz\u0119 obci\u0105\u017cenie, uwidaczniaj\u0119 w\u0105skie gard\u0142a i odzyskuj\u0119 kontrol\u0119 dzi\u0119ki kilku zmianom w j\u0105drze systemu. Przy tym stawiam na wymierne efekty: kr\u00f3tsze <strong>Op\u00f3\u017anienia<\/strong>, zr\u00f3wnowa\u017cone rdzenie procesora oraz stabilne przetwarzanie pakiet\u00f3w przy du\u017cym obci\u0105\u017ceniu sieci.<\/p>\n\n<h2>Punkty centralne<\/h2>\n<ul>\n  <li><strong>Punkty pomiarowe<\/strong> zrozumie\u0107: \/proc\/softirqs, softnet_stat, interrupts<\/li>\n  <li><strong>Objawy<\/strong> wykrywanie: obci\u0105\u017cenie ksoftirqd, utrata pakiet\u00f3w, skoki op\u00f3\u017anie\u0144<\/li>\n  <li><strong>Strojenie<\/strong> parametry steruj\u0105ce: netdev_budget i netdev_budget_usecs<\/li>\n  <li><strong>Dystrybucja<\/strong> zapisz: przypisanie IRQ, RSS, mapowanie kolejek<\/li>\n  <li><strong>Monitoring<\/strong> przeprowadzi\u0107: mpstat, perf, \u015bledzenie<\/li>\n<\/ul>\n\n<h2>Przegl\u0105d SoftIRQ: jak dzia\u0142a j\u0105dro<\/h2>\n<p>Po wyst\u0105pieniu przerwania sprz\u0119towego j\u0105dro przenosi cz\u0119\u015b\u0107 zada\u0144 do tzw. <strong>SoftIRQs<\/strong>, aby \u015bcie\u017cki krytyczne by\u0142y szybko zwalniane, a realizacja zada\u0144 pozostawa\u0142a przewidywalna. Zw\u0142aszcza w \u015bcie\u017cce sieciowej modu\u0142y obs\u0142ugi NAPI zbieraj\u0105 pakiety z pier\u015bcieni kart sieciowych, inicjuj\u0105 operacje protoko\u0142owe i przekazuj\u0105 dane do <strong>Stos sieciowy<\/strong>. Gdy liczba zdarze\u0144 wzrasta, wkraczaj\u0105 w\u0105tki na procesor, takie jak ksoftirqd\/cpuN, i przejmuj\u0105 odpytywanie oraz przetwarzanie zaleg\u0142e. To oddzielenie poprawia og\u00f3ln\u0105 przepustowo\u015b\u0107, ale w przypadku przeci\u0105\u017cenia mo\u017ce powodowa\u0107 d\u0142ugi czas dzia\u0142ania SoftIRQ na poszczeg\u00f3lnych <strong>Rdzenie<\/strong> prowadzi\u0107. Dlatego ju\u017c na wczesnym etapie obserwuj\u0119, czy \u015bcie\u017cki NET_RX i NET_TX dominuj\u0105 oraz czy proces ksoftirqd wyra\u017anie poch\u0142ania czas procesora. W ten spos\u00f3b rozpoznaj\u0119, kiedy softIRQ staj\u0105 si\u0119 w\u0105skim gard\u0142em i podejmuj\u0119 dalsze <strong>Optymalizacje<\/strong> s\u0105 konieczne.<\/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\/09\/linux-analyse-optimierung-5893.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Rozpoznawanie typowych objaw\u00f3w du\u017cego obci\u0105\u017cenia SoftIRQ<\/h2>\n<p>Wyra\u017ane obci\u0105\u017cenie SoftIRQ dostrzegam przede wszystkim po stale wysokim <strong>Procesor j\u0105dra<\/strong> oraz procesy ksoftirqd, kt\u00f3re utrzymuj\u0105 szczytowe warto\u015bci przez wiele sekund. R\u00f3wnolegle rosn\u0105 op\u00f3\u017anienia w operacjach sieciowych i blokowych wej\u015bcia\/wyj\u015bcia, co przejawia si\u0119 w powolnych uzgodnieniach TLS lub spowolnionych <strong>Interfejsy API<\/strong> wyra\u017ca. Cz\u0119sto dochodzi do utraty pakiet\u00f3w, podczas gdy pier\u015bcienie karty sieciowej ulegaj\u0105 przepe\u0142nieniu, a zaleg\u0142o\u015bci rosn\u0105. Gdy przerwy s\u0105 \u017ale rozdzielone, procesor 0 cz\u0119sto bardzo na tym cierpi, poniewa\u017c wiele linii IRQ wraz z wynikaj\u0105c\u0105 z nich prac\u0105 trafia na jeden <strong>Rdze\u0144<\/strong> . To obci\u0105\u017cenie jednego rdzenia wyd\u0142u\u017ca czas oczekiwania na us\u0142ugi i zmniejsza efektywn\u0105 przepustowo\u015b\u0107. Sprawdzam zatem, czy jest to zjawisko systematyczne, czy tylko <strong>Szczyty<\/strong> prowadzi.<\/p>\n\n<h2>G\u0142\u00f3wne punkty pomiarowe: prawid\u0142owe odczytywanie katalogu \/proc i narz\u0119dzi<\/h2>\n<p>Zaczn\u0119 od katalogu \/proc\/softirqs, poniewa\u017c tam mog\u0119 sprawdzi\u0107, jak bardzo obci\u0105\u017cony jest ka\u017cdy procesor w zale\u017cno\u015bci od typu, na przyk\u0142ad <strong>NET_RX<\/strong>, NET_TX, TIMER lub BLOCK. W katalogu \/proc\/net\/softnet_stat sprawdzam wiersze, zwracaj\u0105c uwag\u0119 na pola sygnalizuj\u0105ce przekroczenie limit\u00f3w lub utrat\u0119 pakiet\u00f3w, co przy sta\u0142ym wzro\u015bcie wyra\u017anie wskazuje na zbyt kr\u00f3tkie <strong>Cykle odpytywania<\/strong> wskazuje. \/proc\/interrupts pokazuje nast\u0119pnie, czy przerwania sprz\u0119towe rozk\u0142adaj\u0105 si\u0119 nier\u00f3wnomiernie na procesory oraz kt\u00f3re IRQ s\u0105 najintensywniejsze. Narz\u0119dzia takie jak mpstat, top czy htop pomagaj\u0105 mi zidentyfikowa\u0107 ksoftirqd\/cpuN oraz rozk\u0142ad <strong>Czasy Softirq<\/strong> ocenia\u0107 dla ka\u017cdego j\u0105dra. W razie potrzeby perf wskazuje punkty newralgiczne w stosie, co pozwala mi zidentyfikowa\u0107 procedury obs\u0142ugi i \u015bcie\u017cki sterownik\u00f3w, kt\u00f3re poch\u0142aniaj\u0105 najwi\u0119cej czasu. Poni\u017csza tabela zawiera podsumowanie najwa\u017cniejszych punkt\u00f3w pomiarowych, wska\u017anik\u00f3w i typowych <strong>Dzia\u0142ania<\/strong> razem.<\/p>\n<table>\n  <thead>\n    <tr>\n      <th>Punkt pomiarowy<\/th>\n      <th>Najwa\u017cniejsze obszary\/wska\u017aniki<\/th>\n      <th>Interpretacja<\/th>\n      <th>Dzia\u0142anie<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>\/proc\/softirqs<\/td>\n      <td>NET_RX, NET_TX, BLOCK po <strong>CPU<\/strong><\/td>\n      <td>Wida\u0107 nier\u00f3wnomierny rozk\u0142ad obci\u0105\u017cenia<\/td>\n      <td>Dostosuj przypisanie IRQ, w\u0142\u0105cz RSS<\/td>\n    <\/tr>\n    <tr>\n      <td>\/proc\/net\/softnet_stat<\/td>\n      <td>Licznik bud\u017cetu\/licznik spadk\u00f3w, trzeci <strong>Kolumna<\/strong><\/td>\n      <td>Bud\u017cety s\u0105 zbyt ma\u0142e, paczki pozostaj\u0105 niedostarczone<\/td>\n      <td>Zwi\u0119kszy\u0107 warto\u015b\u0107 netdev_budget\/usecs, sprawdzi\u0107 RPS<\/td>\n    <\/tr>\n    <tr>\n      <td>\/proc\/interrupts<\/td>\n      <td>Liczba linii IRQ na <strong>CPU<\/strong>, mapowanie kolejki<\/td>\n      <td>Zbyt wiele sygna\u0142\u00f3w IRQ na niewielkiej liczbie rdzeni<\/td>\n      <td>Sprawd\u017a irqbalance, ustaw smp_affinity<\/td>\n    <\/tr>\n    <tr>\n      <td>mpstat \/ perf<\/td>\n      <td>%soft, punkty dost\u0119powe, <strong>Stosy<\/strong><\/td>\n      <td>Widoczne dominuj\u0105ce w\u0119z\u0142y i rdzenie<\/td>\n      <td>Priorytetowe traktowanie optymalizacji sterownik\u00f3w i stosu<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Przyczyny i schematy wyst\u0119powania du\u017cego obci\u0105\u017cenia<\/h2>\n<p>Zaci\u0119cia wynikaj\u0105 cz\u0119sto z bardzo wysokiego <strong>Przepustowo\u015b\u0107<\/strong>, wiele po\u0142\u0105cze\u0144 r\u00f3wnoleg\u0142ych lub impuls\u00f3w UDP, kt\u00f3re dominuj\u0105 w NET_RX. Czasami domy\u015blne ustawienia sterownik\u00f3w przewiduj\u0105 ma\u0142e partie danych, co powoduje zbyt du\u017c\u0105 liczb\u0119 przerwa\u0144 i przeci\u0105\u017cenie ksoftirqd, podczas gdy GRO\/LRO pozostaj\u0105 niewykorzystane <strong>pozosta\u0142o\u015bci<\/strong>. Niekorzystne powi\u0105zania powoduj\u0105 skupienie obci\u0105\u017cenia na procesorze CPU 0, mimo \u017ce dost\u0119pnych jest kilka kolejek, a RSS mog\u0142oby u\u0142atwi\u0107 roz\u0142o\u017cenie obci\u0105\u017cenia. W maszynach wirtualnych karty vNIC obci\u0105\u017caj\u0105 j\u0105dro hosta, co wyd\u0142u\u017ca czasy SoftIRQ w ho\u015bcie kosztem go\u015bci <strong>zwi\u0119ksza<\/strong>. Nak\u0142adki kontenerowe dodaj\u0105 kolejne pakiety do stosu, przez co proste przep\u0142ywy nagle staj\u0105 si\u0119 bardziej skomplikowanymi \u015bcie\u017ckami. Dopiero po\u0142\u0105czenie dystrybucji, bud\u017cetu i <strong>Dozowanie<\/strong> daje to sp\u00f3jny obraz.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/linux_softirq_meeting_8593.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Ukierunkowane monitorowanie: uwidocznienie SoftIRQ<\/h2>\n<p>Aby zapewni\u0107 skuteczny monitoring, regularnie czytam <strong>\/proc<\/strong>-Wybieram interfejsy i \u0142\u0105cz\u0119 je z metrykami hosta, takimi jak obci\u0105\u017cenie i op\u00f3\u017anienia planowania. Koreluj\u0119 wzrosty NET_RX z licznikami utraconych pakiet\u00f3w, aby ustali\u0107, czy wzrasta jedynie przepustowo\u015b\u0107, czy te\u017c pakiety gin\u0105 po drodze <strong>pobyt<\/strong>. Polecenie `mpstat` podaje mi dla ka\u017cdego procesora udzia\u0142y czasu po\u015bwi\u0119cone na SoftIRQ, podczas gdy `top`\/`htop` pokazuj\u0105 rzucaj\u0105ce si\u0119 w oczy w\u0105tki typu `ksoftirqd\/cpuN`. Za pomoc\u0105 polece\u0144 `perf record`\/`perf top` identyfikuj\u0119 kosztowne \u015bcie\u017cki, na przyk\u0142ad odci\u0105\u017canie sum kontrolnych, konsolidacj\u0119 GRO lub <strong>qdisc<\/strong>-Praca. \u015alady oparte na eBPF lub ftrace pokazuj\u0105 pocz\u0105tek i koniec dzia\u0142ania handler\u00f3w, co pozwala mi oceni\u0107 czas ich dzia\u0142ania oraz wp\u0142yw harmonogramowania. W ten spos\u00f3b na podstawie metryk, wykres\u00f3w czasowych i <strong>Hotspoty<\/strong>.<\/p>\n\n<h2>Optymalizacja za pomoc\u0105 netdev_budget i netdev_budget_usecs<\/h2>\n<p>Je\u015bli \u015bcie\u017cka NAPI jest za kr\u00f3tka, stopniowo j\u0105 wyd\u0142u\u017cam <strong>net.core.netdev_budget<\/strong> oraz net.core.netdev_budget_usecs, aby przetwarza\u0107 wi\u0119cej pakiet\u00f3w w ka\u017cdym cyklu odpytywania. Obserwuj\u0119 przy tym trzeci\u0105 kolumn\u0119 w \/proc\/net\/softnet_stat; je\u015bli wzrost maleje, zmiany s\u0105 skuteczne, a op\u00f3\u017anienia <strong>kr\u00f3tszy<\/strong>. Zwi\u0119kszam te warto\u015bci umiarkowanie, na przyk\u0142ad z 300 do 600 pakiet\u00f3w i z 2000 do 4000 mikrosekund, i sprawdzam, czy inne zadania zachowuj\u0105 wystarczaj\u0105c\u0105 ilo\u015b\u0107 czasu procesora. Zbyt du\u017ce obci\u0105\u017cenie blokuje harmonogram, dlatego \u015bci\u015ble monitoruj\u0119 szczyty obci\u0105\u017cenia, zmiany kontekstu i d\u0142ugo\u015bci kolejki zada\u0144 do wykonania <strong>towarzyszy\u0107<\/strong>. Ponadto warto sprawdzi\u0107 parametry RPS\/RFS, GRO\/LRO oraz MTU, aby efektywnie wykorzysta\u0107 funkcj\u0119 grupowania i rozmiary pakiet\u00f3w. Aby ograniczy\u0107 zalew przerwa\u0144, bior\u0119 pod uwag\u0119 <a href=\"https:\/\/webhosting.de\/pl\/koalescencja-przerwan-optymalizacja-sieci-serverflux\/\">Koalescencja przerwa\u0144<\/a> i dostosuj te same ustawienia w sterownikach NIC, o ile ta opcja jest dost\u0119pna <strong>jest<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/linux-softirq-analyse-optimierung-4738.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Optymalizacja przydzia\u0142u przerwa\u0144 i powinowactwa IRQ<\/h2>\n<p>Aby unikn\u0105\u0107 w\u0105skich garde\u0142 zwi\u0105zanych z jednym rdzeniem, rozdzielam sygna\u0142y IRQ na kilka <strong>Procesory<\/strong>, albo za pomoc\u0105 irqbalance, albo przy u\u017cyciu r\u0119cznych masek smp_affinity. Kieruj\u0119 si\u0119 przy tym istniej\u0105cymi kolejkami kart sieciowych i w\u0142\u0105czam RSS, aby sprz\u0119t r\u00f3wnomiernie rozdziela\u0142 przychodz\u0105ce strumienie, a ka\u017cde j\u0105dro mia\u0142o u\u0142atwion\u0105 prac\u0119 <strong>Partie<\/strong> . Staram si\u0119 nie miesza\u0107 sygna\u0142\u00f3w steruj\u0105cych IRQ z intensywnymi \u015bcie\u017ckami danych, aby zachowa\u0107 lokalno\u015b\u0107 pami\u0119ci podr\u0119cznej i przewidywalno\u015b\u0107. Prawid\u0142owo ustawione powinowactwa zmniejszaj\u0105 op\u00f3\u017anienia i ograniczaj\u0105 utrat\u0119 danych, poniewa\u017c przetwarzanie SoftIRQ nie utkn\u0119\u0142o ju\u017c na jednym rdzeniu <strong>pozosta\u0142o\u015bci<\/strong>. Sterowniki cz\u0119sto pokazuj\u0105 przyporz\u0105dkowania kolejek do procesor\u00f3w w sysfs; tam sprawdzam, czy ka\u017cda kolejka ma odpowiedni rdze\u0144 i czy nie powstaj\u0105 \u017cadne asymetrie. Aby uzyska\u0107 bardziej szczeg\u00f3\u0142owe informacje, korzystam z przewodnik\u00f3w takich jak <a href=\"https:\/\/webhosting.de\/pl\/serwer-irq-affinity-wielordzeniowy-optymalizacja-sieci-wydajnosc\/\">Powinowactwo IRQ<\/a>, aby uwzgl\u0119dni\u0107 r\u00f3wnie\u017c aspekty NUMA i wp\u0142yw pami\u0119ci podr\u0119cznej <strong>uwzgl\u0119dni\u0107<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/linux_softirq_optimierung_2793.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Przewodnik praktyczny: Od objaw\u00f3w do rozwi\u0105zania<\/h2>\n<p>Na pocz\u0105tku sprawdzam objawy: ksoftirqd\/cpuN w programie top, udzia\u0142y SoftIRQ na j\u0105dro w <strong>mpstat<\/strong> oraz wyra\u017ane skoki warto\u015bci NET_RX. Nast\u0119pnie zbieram twarde dane z \/proc\/softirqs, \/proc\/net\/softnet_stat i \/proc\/interrupts, aby zidentyfikowa\u0107 dominuj\u0105ce \u015bcie\u017cki i nier\u00f3wnomierne rozk\u0142ady. Nast\u0119pnie wprowadzam niewielkie poprawki, najpierw w bud\u017cetach netdev, a potem w powinowactwie IRQ i RSS, za ka\u017cdym razem z dok\u0142adn\u0105 <strong>Kontrola<\/strong>. Je\u015bli nadal wyst\u0119puj\u0105 spadki wydajno\u015bci, sprawdzam ustawienia sterownik\u00f3w, opcje koalescencji, operacje offload oraz zachowanie GRO\/LRO. W przypadku host\u00f3w maszyn wirtualnych lub kontener\u00f3w dodatkowo oceniam, w jaki spos\u00f3b karty vNIC wsp\u00f3\u0142dzia\u0142aj\u0105 ze stosem fizycznego hosta oraz gdzie <strong>Hotspoty<\/strong> rzeczywi\u015bcie tak jest. Ka\u017cd\u0105 zmian\u0119 oceniam na podstawie szereg\u00f3w czasowych, dop\u00f3ki wska\u017aniki i op\u00f3\u017anienia nie ustabilizuj\u0105 si\u0119 na dobrym poziomie <strong>ziemia<\/strong>.<\/p>\n\n<h2>Najlepsze praktyki w zakresie zr\u00f3wnowa\u017conej wydajno\u015bci<\/h2>\n<p>Wprowadzam regularne monitorowanie licznik\u00f3w SoftIRQ, poniewa\u017c tylko sta\u0142e <strong>Przejrzysto\u015b\u0107<\/strong> zapobiega ponownemu wyst\u0105pieniu w\u0105skich garde\u0142. Aktualne wersje j\u0105dra s\u0105 op\u0142acalne, poniewa\u017c NAPI i stos s\u0105 wewn\u0119trznie udoskonalane, co zapewnia rezerwy na trudne <strong>Obci\u0105\u017cenia<\/strong> stworzy\u0107. Konieczne jest zachowanie zr\u00f3wnowa\u017conego roz\u0142o\u017cenia obci\u0105\u017cenia na wiele rdzeni, podobnie jak rozs\u0105dne bud\u017cety, kt\u00f3re pobieraj\u0105 wystarczaj\u0105c\u0105 liczb\u0119 pakiet\u00f3w, nie przeci\u0105\u017caj\u0105c przy tym harmonogramu. W przypadku profili hostingowych z du\u017cym ruchem HTTPS i API warto zwr\u00f3ci\u0107 uwag\u0119 na <a href=\"https:\/\/webhosting.de\/pl\/softirq-cpu-hosting-optymalizacja-przepustowosci-sieci-centrum-danych\/\">SoftIRQ w hostingu<\/a>, poniewa\u017c w\u0142a\u015bnie tam wida\u0107, jak bardzo dob\u00f3r kart sieciowych (NIC), kolejek i optymalizacja wp\u0142ywaj\u0105 na popraw\u0119 jako\u015bci us\u0142ug. Przy planowaniu wydajno\u015bci bior\u0119 pod uwag\u0119 rdzenie procesora, funkcje kart sieciowych, pami\u0119\u0107 oraz strefy NUMA, aby zapewni\u0107 odpowiednie rezerwy, zanim <strong>Wskaz\u00f3wki<\/strong> pojawiaj\u0105 si\u0119. Dzi\u0119ki temu platforma zachowuje wydajno\u015b\u0107 i p\u0142ynnie reaguje na zmiany sezonowe lub zwi\u0105zane z kampaniami <strong>godziny szczytu<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/linux_softirq_analyse_4839.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>softnet_stat w szczeg\u00f3\u0142ach: co naprawd\u0119 oznaczaj\u0105 te liczby<\/h2>\n<p>Aby precyzyjnie dopracowa\u0107 swoje umiej\u0119tno\u015bci, czytam <strong>\/proc\/net\/softnet_stat<\/strong> w trakcie dzia\u0142ania i nale\u017cy zwr\u00f3ci\u0107 szczeg\u00f3ln\u0105 uwag\u0119 na pierwsze kolumny. Pola pocz\u0105tkowe zawieraj\u0105 liczb\u0119 przetworzonych i odrzuconych pakiet\u00f3w na ka\u017cdy procesor, kt\u00f3re <strong>trzecia kolumna<\/strong> wskazuje na presj\u0119 czasow\u0105 (w skr\u00f3cie: zbyt ma\u0142y bud\u017cet\/za ma\u0142o czasu, NAPI musi przerwa\u0107 dzia\u0142anie). Je\u015bli spadki lub presja czasowa rosn\u0105 liniowo wraz z obci\u0105\u017ceniem, pierwszymi narz\u0119dziami s\u0105 bud\u017cety lub koalescencja. Je\u015bli natomiast obserwuj\u0119 szczyty bez trwa\u0142ego wzrostu, a impulsy jedynie kr\u00f3tkotrwale zag\u0119szczaj\u0105 prac\u0119 \u2013 w\u00f3wczas cz\u0119\u015bciej pomaga przetwarzanie wsadowe (GRO) ni\u017c du\u017ce bud\u017cety. Nowsze j\u0105dra rozszerzaj\u0105 statystyki o pola dotycz\u0105ce RPS\/RFS i limit\u00f3w przep\u0142ywu; je\u015bli warto\u015bci te rosn\u0105, rozk\u0142adam obci\u0105\u017cenie w spos\u00f3b bardziej \u015bwiadomy poprzez RPS lub zmniejszam RFS, gdy jego operacje wyszukiwania staj\u0105 si\u0119 bardziej kosztowne ni\u017c przynosz\u0105 korzy\u015bci. Zawsze koreluj\u0119 liczniki z <strong>\/proc\/softirqs<\/strong>: Je\u015bli warto\u015b\u0107 NET_RX na poszczeg\u00f3lnych rdzeniach wzrasta wraz ze wzrostem obci\u0105\u017cenia czasowego w softnet_stat, w pierwszej kolejno\u015bci skupiam si\u0119 na rozk\u0142adzie (IRQ\/RSS), a dopiero w drugim etapie na zwi\u0119kszeniu limit\u00f3w.<\/p>\n\n<h2>RPS\/RFS i XPS: opanowanie sterowania oprogramowaniem i optymalizacji kolejek<\/h2>\n<p>Je\u015bli brakuje sprz\u0119towego RSS lub jest on niewystarczaj\u0105cy, ustawiam <strong>RPS<\/strong> (Receive Packet Steering) w celu roz\u0142o\u017cenia obci\u0105\u017cenia odbiorczego na kilka rdzeni. Za pomoc\u0105 rps_cpus przypisuj\u0119 kolejkom odbiorczym takie rdzenie, kt\u00f3re odpowiadaj\u0105 aktywnym procesom roboczym i, w miar\u0119 mo\u017cliwo\u015bci, <strong>Blisko NUMA<\/strong> znajduj\u0105 si\u0119. W wielu sekwencjach dodaj\u0119 <strong>RFS<\/strong> (Receive Flow Steering), dzi\u0119ki czemu przychodz\u0105ce pakiety trafiaj\u0105 tam, gdzie przetwarzane s\u0105 powi\u0105zane gniazda \u2013 sprzyja to lokalno\u015bci pami\u0119ci podr\u0119cznej, o ile tabele przep\u0142yw\u00f3w nie staj\u0105 si\u0119 w\u0105skim gard\u0142em. Po stronie wysy\u0142aj\u0105cej pomaga <strong>XPS<\/strong> (Transmit Packet Steering) \u2013 dostosowanie wyboru kolejki nadawczej (TX) do przypisania aplikacji do procesora. Celem jest zapewnienie, by dany strumie\u0144 danych by\u0142 konsekwentnie przetwarzany przez t\u0119 sam\u0105 kolejk\u0119 odbiorcz\u0105\/nadawcz\u0105 (RX\/TX) oraz ten sam rdze\u0144, co pozwala zmniejszy\u0107 op\u00f3\u017anienia i <strong>GRO<\/strong>-Partie staj\u0105 si\u0119 wi\u0119ksze. Zawsze testuj\u0119 rozk\u0142ady stopniowo: najpierw aktywuj\u0119 RPS w kilku kolejkach, mierz\u0119 efekt (utraty, %soft, op\u00f3\u017anienia), a nast\u0119pnie dodaj\u0119 RFS\/XPS. Je\u015bli RPS powoduje przeci\u0105\u017cenie rdzeni lub pogorszenie wska\u017anika trafie\u0144 L3, ponownie zmniejszam maski procesora lub \u015bci\u015blej przypisuj\u0119 kolejki do rdzeni odpowiednich us\u0142ug.<\/p>\n\n<h2>NUMA, izolacja procesor\u00f3w i interakcje z harmonogramem<\/h2>\n<p>Nawet najlepsze plany bud\u017cetowe i alokacje niewiele pomog\u0105, je\u015bli operacje dost\u0119pu do pami\u0119ci odbywaj\u0105 si\u0119 przez d\u0142ugie \u015bcie\u017cki NUMA. Dbam o to, by przerwania karty sieciowej (NIC), operacje NAPI oraz procesy wysy\u0142aj\u0105ce \u017c\u0105dania odbywa\u0142y si\u0119 w miar\u0119 mo\u017cliwo\u015bci w ramach tej samej <strong>Domena NUMA<\/strong> pozostaj\u0105. W konfiguracjach z dedykowanymi rdzeniami dzia\u0142aj\u0105cymi w czasie rzeczywistym lub o niskim op\u00f3\u017anieniu izoluj\u0119 je za pomoc\u0105 zasad dotycz\u0105cych procesora i grup Cgroup oraz celowo nie dopuszczam tam do dzia\u0142ania SoftIRQ. <strong>ksoftirqd<\/strong> nie powinny trafia\u0107 do izolowanych j\u0105der, w przeciwnym razie pakiety b\u0119d\u0105 si\u0119 gromadzi\u0107 niezauwa\u017cenie. Z drugiej strony izolowane j\u0105dra nie mog\u0105 pozostawa\u0107 ca\u0142kowicie pozbawione obs\u0142ugi IRQ, je\u015bli ko\u0144cz\u0105 \u015bcie\u017cki danych \u2013 to jasna kwestia powinowactwa i <strong>Sprz\u0105tanie<\/strong>-Strategia jest niezb\u0119dna. W przypadku obci\u0105\u017ce\u0144 o rygorystycznych SLO unikam zbyt agresywnych priorytet\u00f3w SCHED_FIFO\/RR, kt\u00f3re mog\u0142yby wyprze\u0107 wykonanie NAPI. Monitoruj\u0119 d\u0142ugo\u015bci kolejek Runqueue, liczb\u0119 wybudze\u0144 oraz wska\u017aniki preempcji: je\u015bli czasy SoftIRQ rosn\u0105 wraz ze wzrostem interaktywno\u015bci aplikacji, dostosowuj\u0119 ziarnisto\u015b\u0107 i powinowactwa zamiast og\u00f3lnie zwi\u0119ksza\u0107 bud\u017cety.<\/p>\n\n<h2>qdisc, offload i Busy-Poll: r\u00f3wnowa\u017cenie op\u00f3\u017anie\u0144 i przepustowo\u015bci<\/h2>\n<p>Na \u015bcie\u017cce Egress ka\u017cda <strong>qdisc<\/strong>-Czas operacyjny procesora. Wybieram metod\u0119 odpowiedni\u0105 do profilu: fq_codel pomaga w przypadku \u201epuffer bloat\u201d i wyg\u0142adza skoki obci\u0105\u017cenia, podczas gdy <em>mq<\/em>-wersje kart sieciowych z obs\u0142ug\u0105 wielu kolejek. W przypadku czystej przepustowo\u015bci danych na stabilnych \u0142\u0105czach l\u017cejszy qdisc mo\u017ce zminimalizowa\u0107 skoki op\u00f3\u017anie\u0144. Na wej\u015bciu warto precyzyjnie dostroi\u0107 <strong>GRO\/TSO\/GSO<\/strong>: Wi\u0119ksze partie obni\u017caj\u0105 cz\u0119stotliwo\u015b\u0107 SoftIRQ, ale w skrajnych przypadkach wyd\u0142u\u017caj\u0105 czas przebywania pakiet\u00f3w w stosie. Sprawdzam, czy interwa\u0142y opr\u00f3\u017cniania GRO lub odci\u0105\u017canie sprz\u0119towe prowadz\u0105 do powstania zbyt du\u017cych agregat\u00f3w, kt\u00f3re mog\u0105 negatywnie wp\u0142ywa\u0107 na dzia\u0142anie aplikacji. W przypadku \u015bcie\u017cek, w kt\u00f3rych op\u00f3\u017anienia maj\u0105 kluczowe znaczenie, ustawiam <strong>busy_poll<\/strong> oraz stosuj\u0119 funkcj\u0119 `busy_read` w spos\u00f3b kontrolowany, aby aktywnie pobiera\u0107 pakiety ze sterownika \u2013 jednak tylko pod \u015bcis\u0142\u0105 obserwacj\u0105, aby inne zadania nie zosta\u0142y pozbawione zasob\u00f3w. Podobnie zgadzam si\u0119, \u017ce <strong>Koalescencja przerwa\u0144<\/strong> w przypadku skok\u00f3w obci\u0105\u017cenia: nieco d\u0142u\u017csze mikrosekundy sprzyjaj\u0105 przepustowo\u015bci, natomiast zbyt d\u0142ugie op\u00f3\u017aniaj\u0105 potwierdzenia ACK i wyd\u0142u\u017caj\u0105 procesy uzgadniania po\u0142\u0105czenia. Wa\u017cne jest, aby ka\u017cd\u0105 zmian\u0119 ocenia\u0107 osobno: symulowane skoki obci\u0105\u017cenia, rzeczywiste szczyty produkcyjne i okresy bezczynno\u015bci cz\u0119sto charakteryzuj\u0105 si\u0119 r\u00f3\u017cnymi profilami op\u00f3\u017anie\u0144.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/linux-softirq-analyse-1934.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Lista kontrolna diagnostyczna i bezpieczne przywr\u00f3cenie poprzedniego stanu<\/h2>\n<p>Zmiany wprowadzam konsekwentnie, korzystaj\u0105c z kr\u00f3tkiej listy kontrolnej: 1) Potwierdzam objawy (ksoftirqd, %soft, Drops). 2) Sprawdzam rozk\u0142ad (\/proc\/interrupts, Queue-&gt;CPU, stan RSS\/RPS). 3) Dostosowuj\u0119 bud\u017cety, sprawdzam efekt w <strong>softnet_stat<\/strong> obserwowa\u0107 (zmniejsza si\u0119 presja czasowa, liczba utrat danych ustabilizowa\u0142a si\u0119). 4) Dokona\u0107 precyzyjnej regulacji offload\u00f3w\/koalescencji, sprawdzi\u0107 qdisc. 5) Ponownie sprawdzi\u0107 powi\u0105zania NUMA\/CPU oraz cgroups. Ka\u017cdy krok ko\u0144czy si\u0119 wyra\u017an\u0105 popraw\u0105 wska\u017anik\u00f3w lub <strong>Cofni\u0119cie<\/strong> do ostatniego dobrego stanu. Dokumentuj\u0119 warto\u015bci docelowe i rzeczywiste (op\u00f3\u017anienie P95\/P99, %soft na rdze\u0144, wska\u017aniki utraty pakiet\u00f3w, zmiany kontekstu), aby kolejne iteracje nie odbywa\u0142y si\u0119 na \u015blepo. Je\u015bli kilka niewielkich usprawnie\u0144 nie przynosi ulgi, przerywam i szukam przyczyn strukturalnych (w\u0105skie gard\u0142a w kolejkach, bloki aplikacji, wp\u0142yw pami\u0119ci masowej). Taka dyscyplina zapobiega b\u0142\u0119dnym korelacjom i chroni przed spiralami optymalizacji, kt\u00f3re wprawdzie zwi\u0119kszaj\u0105 przepustowo\u015b\u0107, ale pogarszaj\u0105 interaktywno\u015b\u0107 i stabilno\u015b\u0107.<\/p>\n\n<h2>Jasne rozr\u00f3\u017cnienie przypadk\u00f3w granicznych i profili obci\u0105\u017cenia<\/h2>\n<p>\u015awiadomie rozr\u00f3\u017cniam transfery masowe, interfejsy API wra\u017cliwe na op\u00f3\u017anienia oraz przesy\u0142anie z du\u017cymi skokami <strong>UDP<\/strong>-Ruch. W przypadku danych masowych wol\u0119 wcze\u015bniej stosowa\u0107 przetwarzanie partiami i koalescencj\u0119, o ile nie dochodzi do utraty pakiet\u00f3w. W przypadku ruchu API priorytetem jest dla mnie r\u00f3wnomierny rozk\u0142ad, ograniczone partie i stabilne op\u00f3\u017anienia E2E, nawet je\u015bli nominalna maksymalna przepustowo\u015b\u0107 nieco spadnie. Z impulsami UDP radz\u0119 sobie najlepiej poprzez rozszerzenie kolejki i stosowanie afinno\u015bci \u2013 zbyt du\u017ce bud\u017cety powoduj\u0105 w przeciwnym razie jedynie nasilenie zjawiska blokowania na pocz\u0105tku kolejki (Head-of-Line-Blocking). Je\u015bli \u015brodowisko wykorzystuje wiele kontener\u00f3w lub przeskok\u00f3w w sieciach nak\u0142adkowych, planuj\u0119 dodatkow\u0105 prac\u0119 stosu i szerzej rozk\u0142adam obci\u0105\u017cenie SoftIRQ. Opr\u00f3cz tego osobno oceniam obci\u0105\u017cenia zwi\u0105zane z zapor\u0105 sieciow\u0105 i Conntrack: gdy tabele osi\u0105gaj\u0105 swoje granice, obci\u0105\u017cenie SoftIRQ nieuchronnie wzrasta, niezale\u017cnie od tego, jak dobry jest rozk\u0142ad IRQ. Dopiero gdy \u015bcie\u017cki dla poszczeg\u00f3lnych profili s\u0105 konsekwentnie zoptymalizowane, warto zaj\u0105\u0107 si\u0119 precyzyjnym dostrojeniem ostatnich kilku procent.<\/p>\n\n<h2>SoftIRQ w \u015brodowiskach chmurowych i kontenerowych<\/h2>\n<p>W \u015brodowiskach wirtualnych obci\u0105\u017cenie przemieszcza si\u0119 przez vSwitche, sieci nak\u0142adkowe i stosy host\u00f3w, dlatego analizuj\u0119 zar\u00f3wno systemy go\u015bcinne, jak i hosty\u2014<strong>Metryki<\/strong> przeanalizuj. D\u0142ugie czasy SoftIRQ w ho\u015bcie bezpo\u015brednio spowalniaj\u0105 kontenery i maszyny wirtualne, nawet je\u015bli systemy-go\u015bcie wydaj\u0105 si\u0119 dzia\u0142a\u0107 p\u0142ynnie <strong>praca<\/strong>. Sprawdzam zatem funkcje offloadu i koalescencji na fizycznej karcie sieciowej, podczas gdy RPS\/RFS w ho\u015bcie zapewnia lepsz\u0105 dystrybucj\u0119 obci\u0105\u017cenia w \u015bcie\u017cce programowej. W przypadku obci\u0105\u017ce\u0144 kontenerowych sprawdzam, czy limity Cgroup dla procesora i przetwarzania IRQ s\u0105 odpowiednio ustawione, aby wa\u017cne us\u0142ugi nie znalaz\u0142y si\u0119 w <strong>Kolejki<\/strong> umrze\u0107 z g\u0142odu. Karty vNIC obs\u0142uguj\u0105ce wiele kolejek (multi-queue) z funkcj\u0105 RSS poprawiaj\u0105 r\u00f3wnoleg\u0142o\u015b\u0107, o ile odpowiednio skonfigurowano powi\u0105zania i mapowania kolejek. Dzi\u0119ki takiemu podej\u015bciu utrzymuj\u0119 \u015bcie\u017cki danych na kr\u00f3tkich odcinkach, stabilizuj\u0105c <strong>Op\u00f3\u017anienia<\/strong> oraz pewn\u0105 i powtarzaln\u0105 wydajno\u015b\u0107.<\/p>\n\n<h2>Podsumowanie: Jak z \u0142atwo\u015bci\u0105 opanowa\u0107 analiz\u0119 SoftIRQ<\/h2>\n<p>Kto dok\u0142adnie analizuje obci\u0105\u017cenie SoftIRQ, korzysta z jasno okre\u015blonych punkt\u00f3w pomiarowych, bierze pod uwag\u0119 rozk\u0142ady i stosuje stopniowane <strong>Kroki<\/strong>. Zaczynam od \/proc\/softirqs i softnet_stat, por\u00f3wnuj\u0119 te dane z ksoftirqd i mpstat, a na tej podstawie ustalam kolejno\u015b\u0107 moich <strong>\u015arodki<\/strong>. Najpierw dostosowuj\u0119 parametry netdev_budget i netdev_budget_usecs, a nast\u0119pnie optymalizuj\u0119 przypisanie IRQ, RSS oraz opcje przetwarzania wsadowego, takie jak GRO i offload. Ka\u017cda zmiana jest niewielka, poddawana pomiarom i kontynuowana tylko wtedy, gdy przynosi pozytywny efekt, a\u017c znikn\u0105 utraty pakiet\u00f3w i <strong>Op\u00f3\u017anienia<\/strong> spadaj\u0105. Ta dyscyplina zapobiega efektom ubocznym, zapewnia interaktywno\u015b\u0107 na poziomie procesora i utrzymuje dzia\u0142anie us\u0142ug nawet w okresach szczytowego nat\u0119\u017cenia ruchu <strong>responsywny<\/strong>. Dzi\u0119ki temu wydajno\u015b\u0107 systemu Linux pozostaje przejrzysta, niezawodna i elastyczna, bez ukrytych punkt\u00f3w newralgicznych, kt\u00f3re <strong>Stabilno\u015b\u0107<\/strong> zagrozi\u0107.<\/p>","protected":false},"excerpt":{"rendered":"<p>Dowiedz si\u0119, jak systematycznie analizowa\u0107 i optymalizowa\u0107 wykorzystanie SoftIRQ w systemie Linux, aby zwi\u0119kszy\u0107 wydajno\u015b\u0107 serwer\u00f3w dzi\u0119ki ukierunkowanemu dostrajaniu modu\u0142\u00f3w netdev oraz lepszemu rozk\u0142adowi przerwa\u0144.<\/p>","protected":false},"author":1,"featured_media":21340,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-21347","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":"93","_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":"Linux SoftIRQ","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":"21340","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/21347","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=21347"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/21347\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/21340"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=21347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=21347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=21347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}