{"id":19425,"date":"2026-05-17T08:36:29","date_gmt":"2026-05-17T06:36:29","guid":{"rendered":"https:\/\/webhosting.de\/server-tcp-window-scaling-durchsatzoptimierung-netzwerktuning\/"},"modified":"2026-05-17T08:36:29","modified_gmt":"2026-05-17T06:36:29","slug":"serwer-tcp-skalowanie-okna-optymalizacja-przepustowosci-dostrajanie-sieci","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/server-tcp-window-scaling-durchsatzoptimierung-netzwerktuning\/","title":{"rendered":"Skalowanie okna TCP serwera i optymalizacja przepustowo\u015bci w centrum danych"},"content":{"rendered":"<p><strong>TCP serwera<\/strong> Skalowanie okna okre\u015bla u\u017cyteczn\u0105 przepustowo\u015b\u0107 na po\u0142\u0105czenie w centrach danych, zw\u0142aszcza przy wysokiej przepustowo\u015bci i dwucyfrowym RTT. Pokazuj\u0119, jak obliczam okno odbioru, skaluj\u0119 je dynamicznie i u\u017cywam ukierunkowanego strojenia, aby zminimalizowa\u0107 w\u0105skie gard\u0142o mi\u0119dzy <strong>Rozmiar okna<\/strong> i op\u00f3\u017anienia.<\/p>\n\n<h2>Punkty centralne<\/h2>\n\n<p>Z g\u00f3ry podsumuj\u0119 najwa\u017cniejsze stwierdzenia, aby artyku\u0142 zapewnia\u0142 szybk\u0105 orientacj\u0119. Skoncentruj\u0119 si\u0119 na rozmiarze okna, RTT, iloczynie przepustowo\u015bci i op\u00f3\u017anienia oraz rozs\u0105dnych parametrach systemu. Ka\u017cde stwierdzenie bezpo\u015brednio przyczynia si\u0119 do powtarzalnej przepustowo\u015bci danych. Unikam teorii bez odniesienia i zapewniam odpowiednie kroki. Tworzy to jasn\u0105 \u015bcie\u017ck\u0119 od diagnozy do <strong>Strojenie<\/strong>.<\/p>\n<ul>\n  <li><strong>Skalowanie okna<\/strong> znosi limit 64 KB i umo\u017cliwia korzystanie z du\u017cych okien.<\/li>\n  <li><strong>RTT<\/strong> i rozmiar okna okre\u015blaj\u0105 maksymaln\u0105 przepustowo\u015b\u0107 (\u2248 Okno\/RTT).<\/li>\n  <li><strong>BDP<\/strong> pokazuje rozmiar okna wymagany do pe\u0142nego wykorzystania \u0142\u0105cza.<\/li>\n  <li><strong>Bufor<\/strong> i automatyczne dostrajanie stos\u00f3w systemu operacyjnego zapewniaj\u0105 rzeczywist\u0105 wydajno\u015b\u0107.<\/li>\n  <li><strong>Wielostrumieniowo\u015b\u0107<\/strong> i parametry protoko\u0142u zwi\u0119kszaj\u0105 transfer danych.<\/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\/05\/rechenzentrum-tcp-9204.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Dlaczego rozmiar okna i RTT dyktuj\u0105 przepustowo\u015b\u0107<\/h2>\n\n<p>Obliczam g\u00f3rny limit na po\u0142\u0105czenie za pomoc\u0105 prostego wzoru Przepustowo\u015b\u0107 \u2248 <strong>Okno<\/strong>\/RTT. Okno 64 KB i 50 ms RTT zapewniaj\u0105 oko\u0142o 10 Mbit\/s, nawet je\u015bli kabel \u015bwiat\u0142owodowy pozwala na 1 Gbit\/s. Rozbie\u017cno\u015b\u0107 ta jest szczeg\u00f3lnie zauwa\u017calna na du\u017cych odleg\u0142o\u015bciach i \u015bcie\u017ckach WAN. Im wi\u0119ksze op\u00f3\u017anienie, tym bardziej ma\u0142e okno spowalnia transfer. Dlatego priorytetem jest dla mnie wystarczaj\u0105co du\u017cy rozmiar okna odbiorczego zamiast kupowania przepustowo\u015bci, kt\u00f3ra pozostaje niewykorzystana. W ten spos\u00f3b zwracam si\u0119 do rzeczywistej \u015bruby regulacyjnej w module <strong>Stos TCP<\/strong>.<\/p>\n\n<h2>Ograniczenia klasycznego okna TCP<\/h2>\n\n<p>Oryginalne 16-bitowe okno ogranicza warto\u015b\u0107 do 65 535 bajt\u00f3w, a tym samym ustala sztywny limit dla <strong>Przepustowo\u015b\u0107<\/strong> przy wysokim RTT. Jest to rzadko zauwa\u017calne w sieci LAN, ale na kontynentach szybko\u015b\u0107 spada drastycznie do jednocyfrowych lub niskich dwucyfrowych Mbit\/s. Przyk\u0142ad pokazuje to wyra\u017anie: 64 KB przy 100 ms RTT daje tylko oko\u0142o 5 Mbit\/s. To nie wystarcza do tworzenia kopii zapasowych, replikacji lub przesy\u0142ania du\u017cych plik\u00f3w. Rozwi\u0105zuj\u0119 ten limit poprzez konsekwentne stosowanie skalowania okien. <strong>aktywowa\u0107 si\u0119<\/strong> i sprawdzi\u0107 negocjacje.<\/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\/05\/Konferenz_TCP_Optimierung_7823.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Jak dzia\u0142a skalowanie okien TCP<\/h2>\n\n<p>Z opcj\u0105 <strong>Skala okna<\/strong> Powi\u0119kszam okno logiczne za pomoc\u0105 wyk\u0142adnika (0-14), kt\u00f3ry jest negocjowany podczas uzgadniania SYN. Efektywne okno wynika z Header-Window \u00d7 2^Scale, a zatem mo\u017ce rosn\u0105\u0107 do rozmiar\u00f3w z zakresu gigabajt\u00f3w. Kluczowe jest, aby oba punkty ko\u0144cowe zaakceptowa\u0142y t\u0119 opcj\u0119 i aby \u017caden komponent po\u015brednicz\u0105cy jej nie filtrowa\u0142. Sprawdzam u\u015bcisk d\u0142oni w Wireshark i zwracam uwag\u0119 na opcj\u0119 w SYN i SYN\/ACK. Je\u015bli jej brakuje, po\u0142\u0105czenie spada do 64 KB, co oznacza, \u017ce <strong>Przepustowo\u015b\u0107<\/strong> ograniczone natychmiast.<\/p>\n\n<h2>Dynamiczne rozmiary okien w obecnych systemach<\/h2>\n\n<p>Nowoczesne j\u0105dra Linux i serwery Windows dostosowuj\u0105 <strong>RWIN<\/strong> dynamicznie i rosn\u0105 do kilku megabajt\u00f3w w sprzyjaj\u0105cych warunkach. Pod Linuksem kontroluj\u0119 zachowanie poprzez <code>net.ipv4.tcp_rmem<\/code>, <code>net.ipv4.tcp_wmem<\/code> oraz <code>net.ipv4.tcp_window_scaling<\/code>. W systemie Windows sprawdzam za pomoc\u0105 <code>netsh int tcp show global<\/code>, czy automatyczne dostrajanie jest aktywne. Upewniam si\u0119, \u017ce po obu stronach dost\u0119pne s\u0105 wystarczaj\u0105ce bufory, aby wzrost nie zatrzyma\u0142 si\u0119 na maksymalnych warto\u015bciach. W ten spos\u00f3b wykorzystuj\u0119 zalety automatycznego skalowania w aplikacji <strong>Wydajne dzia\u0142anie<\/strong> od.<\/p>\n\n<h2>Prawid\u0142owe oszacowanie BDP: Jak du\u017ce powinno by\u0107 okno?<\/h2>\n\n<p>Iloczyn op\u00f3\u017anienia szeroko\u015bci pasma (<strong>BDP<\/strong>) podaje mi docelow\u0105 warto\u015b\u0107 okna TCP: Bandwidth \u00d7 RTT. Ustawiam okno odbioru na co najmniej t\u0119 warto\u015b\u0107, aby wykorzysta\u0107 \u0142\u0105cze. Bez wystarczaj\u0105cego bufora po\u0142\u0105czenie b\u0119dzie znacznie poni\u017cej nominalnej przepustowo\u015bci. Poni\u017csza tabela przedstawia typowe kombinacje RTT i przepustowo\u015bci z wymaganymi rozmiarami okien i limitem okna 64 KB. To pozwala mi zobaczy\u0107 na pierwszy rzut oka, jak bardzo ma\u0142e okno mo\u017ce by\u0107 wykorzystane przy <strong>WAN<\/strong>-hamulce odleg\u0142o\u015bciowe.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>RTT<\/th>\n      <th>Szeroko\u015b\u0107 pasma<\/th>\n      <th>BDP (MBit)<\/th>\n      <th>Minimalne okno (MB)<\/th>\n      <th>Przepustowo\u015b\u0107 przy 64 KB<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>20 ms<\/td>\n      <td>1 Gbit\/s<\/td>\n      <td>20<\/td>\n      <td>\u2248 2,5<\/td>\n      <td>\u2248 26 Mbit\/s<\/td>\n    <\/tr>\n    <tr>\n      <td>50 ms<\/td>\n      <td>1 Gbit\/s<\/td>\n      <td>50<\/td>\n      <td>\u2248 6,25<\/td>\n      <td>\u2248 10 Mbit\/s<\/td>\n    <\/tr>\n    <tr>\n      <td>100 ms<\/td>\n      <td>1 Gbit\/s<\/td>\n      <td>100<\/td>\n      <td>\u2248 12,5<\/td>\n      <td>\u2248 5 Mbit\/s<\/td>\n    <\/tr>\n    <tr>\n      <td>50 ms<\/td>\n      <td>10 Gbit\/s<\/td>\n      <td>500<\/td>\n      <td>\u2248 62,5<\/td>\n      <td>\u2248 10 Mbit\/s<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/05\/tcp-optimization-datacenter-4321.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Praktyczny tuning: od pomiaru do dostosowania<\/h2>\n\n<p>Zaczynam od pomiar\u00f3w: <code>ping<\/code> oraz <code>traceroute<\/code> zapewnia RTT, <code>iperf3<\/code> mierzy pr\u0119dko\u015bci wlotowe i wylotowe oraz <code>Wireshark<\/code> pokazuje wynegocjowane <strong>Skalowanie<\/strong> w u\u015bcisku d\u0142oni. Je\u015bli okno w \u015bladzie pozostaje na poziomie 64 KB, szukam urz\u0105dze\u0144, kt\u00f3re filtruj\u0105 lub zmieniaj\u0105 opcje. Sprawdzam firewalle, bramy VPN i load balancery pod k\u0105tem zgodno\u015bci z RFC1323. Je\u015bli negocjacje s\u0105 odpowiednie, sprawdzam limity bufora i maksymalne limity automatycznego dostrajania systemu operacyjnego. Oceniam r\u00f3wnie\u017c wyb\u00f3r algorytmu kontroli przeci\u0105\u017cenia, poniewa\u017c jego reakcja na straty i op\u00f3\u017anienia jest taka sama jak w rzeczywisto\u015bci. <strong>Przepustowo\u015b\u0107<\/strong> Podsumowuj\u0119 szczeg\u00f3\u0142y w artykule <a href=\"https:\/\/webhosting.de\/pl\/porownanie-wplywu-kontroli-przeciazenia-protokolu-tcp-na-opoznienia\/\">Kontrola przeci\u0105\u017cenia TCP<\/a> razem.<\/p>\n\n<h2>Rozs\u0105dny wyb\u00f3r bufor\u00f3w odbioru i wysy\u0142ania<\/h2>\n\n<p>Rozmiar bufora opieram na rozmiarze mojego <strong>BDP<\/strong> i ustawiam maksymalne warto\u015bci hojnie, ale w kontrolowany spos\u00f3b. Pod Linuksem ustawiam <code>net.ipv4.tcp_rmem<\/code> oraz <code>net.ipv4.tcp_wmem<\/code> (minimalny\/domy\u015blny\/maksymalny w ka\u017cdym przypadku) i zachowa\u0107 margines na du\u017ce odleg\u0142o\u015bci. W systemie Windows sprawdzam poziomy automatycznego dostrajania i dokumentuj\u0119 zmiany w stosie TCP. Wa\u017cne: Wi\u0119ksze bufory wymagaj\u0105 pami\u0119ci RAM, wi\u0119c oceniam liczb\u0119 i typ moich po\u0142\u0105cze\u0144 o du\u017cym obci\u0105\u017ceniu. Wi\u0119cej informacji i przyk\u0142ad\u00f3w na temat prawid\u0142owego wyboru bufora mo\u017cna znale\u017a\u0107 w artykule <a href=\"https:\/\/webhosting.de\/pl\/bufory-gniazd-serwera-strojenie-hostingu-buforopti\/\">Strojenie bufora gniazda<\/a>, co sprawia, \u017ce zale\u017cno\u015bci mi\u0119dzy buforami, RWIN i op\u00f3\u017anieniami s\u0105 namacalne.<\/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\/05\/nacht_tech_optierung_6789.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>R\u00f3wnoleg\u0142o\u015b\u0107: ukierunkowane wykorzystanie wielu strumieni TCP<\/h2>\n\n<p>Nawet z du\u017cym oknem, cz\u0119sto osi\u0105gam wi\u0119cej w praktyce, je\u015bli u\u017cywam kilku <strong>Strumienie<\/strong> r\u00f3wnolegle. Wiele narz\u0119dzi do tworzenia kopii zapasowych, program\u00f3w do pobierania lub rozwi\u0105za\u0144 do synchronizacji robi to ju\u017c domy\u015blnie. R\u00f3wnoleg\u0142o\u015b\u0107 pozwala mi omin\u0105\u0107 limity na po\u0142\u0105czenie w skrzynkach po\u015brednicz\u0105cych i wyg\u0142adzi\u0107 wahania w poszczeg\u00f3lnych przep\u0142ywach. Segmentuj\u0119 transfery wed\u0142ug plik\u00f3w lub blok\u00f3w i definiuj\u0119 rozs\u0105dne warto\u015bci wsp\u00f3\u0142bie\u017cno\u015bci. Pozwala mi to roz\u0142o\u017cy\u0107 ryzyko i zyska\u0107 dodatkowe punkty procentowe <strong>Szeroko\u015b\u0107 pasma<\/strong> na zewn\u0105trz.<\/p>\n\n<h2>Precyzyjne dostrojenie protoko\u0142u i poziomu aplikacji<\/h2>\n\n<p>Nie wszystkie programy u\u017cywaj\u0105 du\u017cych <strong>Windows<\/strong> poniewa\u017c dodatkowe potwierdzenia lub ma\u0142e rozmiary blok\u00f3w spowalniaj\u0105 transfer danych. Zwi\u0119kszam rozmiary blok\u00f3w, aktywuj\u0119 pipelining i konfiguruj\u0119 r\u00f3wnoleg\u0142e \u017c\u0105dania, je\u015bli aplikacja to oferuje. Nowoczesne wersje SMB, aktualne stosy HTTP i zoptymalizowane silniki kopii zapasowych przynosz\u0105 wymierne korzy\u015bci. Sprawdzam r\u00f3wnie\u017c odci\u0105\u017canie TLS, zaciskanie MSS i ramki jumbo, je\u015bli ca\u0142y \u0142a\u0144cuch obs\u0142uguje je prawid\u0142owo. Dostosowania te uzupe\u0142niaj\u0105 skalowanie okien i podnosz\u0105 rzeczywist\u0105 wydajno\u015b\u0107. <strong>Przepustowo\u015b\u0107<\/strong> dalej.<\/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\/05\/rechenzentrum_optimierung_4762.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Zrozumienie automatycznego dostrajania: Limity, heurystyka i rozs\u0105dne ustawienia domy\u015blne<\/h2>\n<p>Automatyczne dostrajanie nie jest pewnym sukcesem. Pod Linuksem, opr\u00f3cz <code>tcp_rmem<\/code>\/<code>tcp_wmem<\/code> przede wszystkim <code>net.core.rmem_max<\/code> oraz <code>net.core.wmem_max<\/code> to g\u00f3rny limit na gniazdo. Warto\u015bci takie jak 64-256 MB s\u0105 zalecane dla transfer\u00f3w WAN o wysokiej przepustowo\u015bci. <strong>BDP<\/strong>-Wymagania s\u0105 wsp\u00f3lne. Aktywuj\u0119 <code>net.ipv4.tcp_moderate_rcvbuf=1<\/code>, tak, aby j\u0105dro stopniowo uruchamia\u0142o okno odbiorcze i sprawdza\u0142o <code>net.ipv4.tcp_adv_win_scale<\/code>, kt\u00f3ry okre\u015bla, jak agresywnie wolne bufory s\u0105 konwertowane na rozmiar okna. <code>tcp_timestamps<\/code> oraz <code>SACK<\/code> Utrzymuj\u0119 je aktywne, poniewa\u017c sprawiaj\u0105, \u017ce retransmisje s\u0105 ukierunkowane i s\u0105 niezb\u0119dne w przypadku du\u017cych okien.<\/p>\n<p>W systemie Windows obserwuj\u0119 zachowanie z <code>netsh int tcp show global<\/code> oraz <code>netsh int tcp show heuristics<\/code>. Zwykle ustawiam poziom strojenia samochodu na <em>normalny<\/em> i dezaktywowa\u0107 heurystyk\u0119, kt\u00f3ra niepotrzebnie ogranicza wzrost okna dla \u015bcie\u017cek rozpoznawanych jako \u201ewolne \u0142\u0105cza\u201c. Wa\u017cne w obu \u015bwiatach: Aplikacje, kt\u00f3re wyra\u017anie <code>SO_RCVBUF<\/code>\/<code>SO_SNDBUF<\/code> mo\u017ce skutecznie spowolni\u0107 automatyczne dostrajanie. Dlatego sprawdzam procesy serwera (np. proxy, demony transferu) pod k\u0105tem takich nadpisa\u0144 i odpowiednio je dostosowuj\u0119.<\/p>\n\n<h2>Analiza \u015bledzenia: Co sprawdzam w uzgadnianiu i przep\u0142ywie danych?<\/h2>\n<p>W Wiresharku sprawdzam poprawno\u015b\u0107 SYN\/SYN-ACK obok <strong>Skala okna<\/strong> R\u00f3wnie\u017c <em>SACK Dozwolone<\/em>, <em>Znaczniki czasu<\/em> i <em>MSS<\/em>. W przep\u0142ywie danych patrz\u0119 na \u201eBajty w locie\u201c, \u201eWarto\u015b\u0107 rozmiaru okna TCP\u201c i \u201eObliczony rozmiar okna\u201c. Je\u015bli obliczone okno pozostaje takie samo pomimo wysokiego <code>rmem<\/code> p\u0142askie, blokuj\u0105ce limity lub aplikacja jest <em>ograniczona aplikacja<\/em>. U\u017cywam r\u00f3wnie\u017c wykres\u00f3w strumienia TCP (sekwencja czasowa, skalowanie okna), aby zobaczy\u0107, czy okno ro\u015bnie dynamicznie i czy retransmisje lub pakiety poza kolejno\u015bci\u0105 niweluj\u0105 ten efekt.<\/p>\n\n<h2>MTU, MSS i ramki jumbo: ile naprawd\u0119 wnosz\u0105<\/h2>\n<p>Du\u017ce okna s\u0105 skuteczne tylko wtedy, gdy potok jest efektywnie wype\u0142niony. Dlatego sprawdzam efektywne MTU wzd\u0142u\u017c \u015bcie\u017cki. Z <code>\u0142\u0105cze ip<\/code> oraz <code>narz\u0119dzie<\/code> Uznaj\u0119 lokalne ograniczenia, z <code>ping -M do -s<\/code> Testuj\u0119 Path-MTU. Je\u015bli PMTUD nie powiedzie si\u0119, aktywuj\u0119 go pod Linuksem <code>net.ipv4.tcp_mtu_probing=1<\/code> lub ustawi\u0107 rozs\u0105dne zaciskanie MSS na urz\u0105dzeniach brzegowych, aby unikn\u0105\u0107 fragmentacji. Ramki Jumbo (9000) s\u0105 op\u0142acalne w ramach jednolicie skonfigurowanej tkaniny, zmniejszaj\u0105 obci\u0105\u017cenie procesora i zwi\u0119kszaj\u0105 <strong>Dobra wydajno\u015b\u0107<\/strong>. W przeciwie\u0144stwie do tego, przedk\u0142adam czysty PMTUD i sp\u00f3jne warto\u015bci MSS nad surowe wzrosty MTU poprzez segmenty \u015bcie\u017cki heterogenicznej lub WAN.<\/p>\n\n<h2>Straty, ECN i zarz\u0105dzanie kolejkami<\/h2>\n<p>Przy du\u017cych oknach nawet niewielka utrata pakiet\u00f3w wystarcza, aby znacznie zmniejszy\u0107 rzeczywist\u0105 przepustowo\u015b\u0107. Dlatego aktywnie sprawdzam, czy ECN jest obs\u0142ugiwany i nie jest usuwany wzd\u0142u\u017c \u015bcie\u017cki i \u0142\u0105cz\u0119 to z AQM (np. FQ-CoDel) na interfejsach brzegowych. To obni\u017ca <em>Op\u00f3\u017anienie kolejki<\/em> i zapobiega bufferbloat bez utrzymywania sztucznie ma\u0142ego okna. W systemie Linux nowoczesne detektory strat, takie jak RACK\/TLP, pomagaj\u0105 mi szybciej zamyka\u0107 ogony. W \u015brodowiskach z cz\u0119stymi przerwami, polegam na kontroli przeci\u0105\u017cenia z obs\u0142ug\u0105 stymulacji (np. CUBIC z limitami kolejki bajt\u00f3w lub BBR), ale nadal upewniam si\u0119, \u017ce okno odbioru jest wystarczaj\u0105co du\u017ce - nawet BBR nie mo\u017ce dostarczy\u0107 bez odpowiedniego RWIN.<\/p>\n\n<h2>Widok serwera i aplikacji: \u015bwiadome korzystanie z opcji gniazda<\/h2>\n<p>Wiele proces\u00f3w serwerowych twardo ustawia rozmiary bufor\u00f3w, ograniczaj\u0105c w ten spos\u00f3b ich wzrost. Wyra\u017anie sprawdzam warto\u015bci pocz\u0105tkowe i szczytowe za pomoc\u0105 <code>ss -ti<\/code> (Linux) i obserwowa\u0107 <em>skmem<\/em>\/<em>rcv_space<\/em>. Na poziomie aplikacji dostosowuj\u0119 rozmiary blok\u00f3w i rekord\u00f3w, dezaktywuj\u0119 Nagle (<code>TCP_NODELAY<\/code>) tylko tam, gdzie op\u00f3\u017anienie na wiadomo\u015b\u0107 jest bardziej krytyczne ni\u017c przepustowo\u015b\u0107, i zmniejszy\u0107 efekty op\u00f3\u017anionego ACK poprzez u\u017cycie wi\u0119kszych jednostek transmisji. Do przesy\u0142ania plik\u00f3w u\u017cywam <code>sendfile()<\/code> lub mechanizmy zerowego kopiowania i asynchroniczne wej\u015bcia\/wyj\u015bcia, aby przestrze\u0144 u\u017cytkownika nie sta\u0142a si\u0119 w\u0105skim gard\u0142em.<\/p>\n\n<h2>Skalowanie do 10\/25\/40\/100G: CPU, odci\u0105\u017cenia i multiqueue<\/h2>\n<p>Du\u017ce okna wymagaj\u0105 hosta. Upewniam si\u0119, \u017ce TSO\/GSO i GRO\/LRO s\u0105 aktywne, aby system wydajnie obs\u0142ugiwa\u0142 du\u017ce segmenty. U\u017cywam RSS\/Multiqueue do dystrybucji przep\u0142yw\u00f3w do wielu rdzeni, dostosowuj\u0119 powinowactwo IRQ do topologii NUMA i monitoruj\u0119 obci\u0105\u017cenie SoftIRQ. Po stronie urz\u0105dzenia dostosowuj\u0119 bufory pier\u015bcieniowe i koalescencj\u0119 przerwa\u0144, aby host nie wpada\u0142 w burze przerwa\u0144. Wszystko to gwarantuje, \u017ce skalowanie okien nie zawiedzie z powodu ogranicze\u0144 procesora, a osi\u0105gane pr\u0119dko\u015bci pozostan\u0105 powtarzalne.<\/p>\n\n<h2>\u015acie\u017cka krok po kroku: Od stawki docelowej do konfiguracji<\/h2>\n<ul>\n  <li>Okre\u015blenie celu: po\u017c\u0105dana przepustowo\u015b\u0107 i zmierzony RTT (np. 5 Gbit\/s przy 40 ms).<\/li>\n  <li><strong>BDP<\/strong> Obliczenie: 5 Gbit\/s \u00d7 0,04 s = 200 Mbit \u2248 okno 25 MB.<\/li>\n  <li>Ustaw limity dla systemu Linux: <code>sysctl -w net.core.rmem_max=268435456<\/code>, <code>net.core.wmem_max=268435456<\/code>, <code>net.ipv4.tcp_rmem=\"4096 87380 268435456\"<\/code>, <code>net.ipv4.tcp_wmem=\"4096 65536 268435456\"<\/code>, <code>net.ipv4.tcp_moderate_rcvbuf=1<\/code>.<\/li>\n  <li>Sprawd\u017a system Windows: <code>netsh int tcp show global<\/code>; Tuning samochodu <em>normalny<\/em>, a nie heurystyki d\u0142awienia.<\/li>\n  <li>Weryfikacja u\u015bcisku d\u0142oni: Wireshark - dost\u0119pne Window Scale, MSS, SACK\/Timestamps.<\/li>\n  <li>Secure MTU\/MSS: PMTUD funkcjonalny lub MSS biwakuj\u0105cy wzd\u0142u\u017c \u015bcie\u017cki.<\/li>\n  <li>Ustaw kontrol\u0119 przeci\u0105\u017cenia i AQM: CUBIC\/BBR pasuj\u0105ce do profilu; ECN\/AQM aktywne na kraw\u0119dzi.<\/li>\n  <li>Z <code>iperf3<\/code> weryfikacja: Pojedynczy i wielostrumieniowy (<code>-P<\/code>), z\/bez TLS\/aplikacji.<\/li>\n  <li>Sprawd\u017a bufor aplikacji: brak ma\u0142y <code>SO_RCVBUF<\/code>\/<code>SO_SNDBUF<\/code> zwi\u0119kszy\u0107 rozmiary blok\u00f3w.<\/li>\n<\/ul>\n\n<h2>Typowe pu\u0142apki i szybkie kontrole<\/h2>\n\n<p>Cz\u0119sto spotykam si\u0119 z firewallami lub routerami, kt\u00f3re <strong>Opcje<\/strong> w nag\u0142\u00f3wku TCP lub je odrzuci\u0107. Asymetryczne \u015bcie\u017cki zaostrzaj\u0105 problem, poniewa\u017c \u015bcie\u017cki wychodz\u0105ce i powrotne przechodz\u0105 przez r\u00f3\u017cne polityki. Agresywna normalizacja TCP w routerach dost\u0119powych r\u00f3wnie\u017c niszczy prawid\u0142owe negocjacje. Zbyt ciasne bufory i timeouty prowadz\u0105 do d\u0142ugich faz odzyskiwania w przypadku strat. Testuj\u0119 zmiany w odizolowanych oknach, obserwuj\u0119 retransmisje i wprowadzam korekty krok po kroku, tak aby <strong>Stabilno\u015b\u0107<\/strong> jest zachowana.<\/p>\n\n<h2>Kontekst hostingu i centrum danych<\/h2>\n\n<p>W wydajnych konfiguracjach wielu klient\u00f3w korzysta z tego samego <strong>Infrastruktura<\/strong>, liczy si\u0119 efektywne wykorzystanie ka\u017cdego po\u0142\u0105czenia. Korzystam z topologii \"leaf-spine\", kr\u00f3tkich \u015bcie\u017cek wsch\u00f3d-zach\u00f3d i wystarczaj\u0105cej liczby uplink\u00f3w. Nowoczesne algorytmy kontroli przeci\u0105\u017cenia, przejrzyste zarz\u0105dzanie kolejkami i solidne regu\u0142y QoS sprawiaj\u0105, \u017ce wyniki s\u0105 powtarzalne. Rozmiary okien i bufor\u00f3w planuj\u0119 z my\u015bl\u0105 o szczytowych obci\u0105\u017ceniach i r\u00f3wnoleg\u0142ych sesjach. Zapewnia to sta\u0142\u0105 wydajno\u015b\u0107 i minimalizuje wp\u0142yw <strong>Skalowanie okna<\/strong> dociera do wszystkich us\u0142ug.<\/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\/05\/servernetzwerkoptimierung-1837.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Monitorowanie i bie\u017c\u0105ca optymalizacja<\/h2>\n\n<p>Regularnie mierz\u0119 za pomoc\u0105 <code>iperf3<\/code> mi\u0119dzy lokalizacjami, \u015bledzenie RTT, jittera, retransmisji oraz <strong>Dobra wydajno\u015b\u0107<\/strong>. Dane o przep\u0142ywie i sFlow\/NetFlow pomagaj\u0105 mi rozpozna\u0107 wzorce w ruchu w odpowiednim czasie. W przypadku warto\u015bci odstaj\u0105cych, sprawdzam straty pakiet\u00f3w, poniewa\u017c nawet niskie stawki powa\u017cnie obni\u017caj\u0105 przepustowo\u015b\u0107; podsumowuj\u0119, jak skutecznie sobie z tym radz\u0119 w <a href=\"https:\/\/webhosting.de\/pl\/siec-utrata-pakietow-strona-internetowa-spowolnienie-analiza\/\">Analiza utraty paczek<\/a> razem. U\u017cywam pulpit\u00f3w szereg\u00f3w czasowych, aby przerwy w trendach by\u0142y natychmiast widoczne. Oznacza to, \u017ce moje dostrajanie pozostaje skuteczne i mog\u0119 reagowa\u0107 na zmiany w \u015bcie\u017ckach, zasadach lub profilach obci\u0105\u017cenia, zanim one nast\u0105pi\u0105. <strong>U\u017cytkownicy<\/strong> poczu\u0107 to.<\/p>\n\n<h2>Kr\u00f3tkie podsumowanie z praktyki<\/h2>\n\n<p>Du\u017ce okna przez <strong>Skalowanie okna<\/strong>, Odpowiednie bufory i prawid\u0142owo wynegocjowany handshake ustawiaj\u0105 d\u017awigni\u0119 we w\u0142a\u015bciwym miejscu. Obliczam BDP, mierz\u0119 rzeczywisty RTT i ustawiam maksymalne warto\u015bci, aby automatyczne dostrajanie mog\u0142o si\u0119 rozwija\u0107. Nast\u0119pnie sprawdzam parametry protoko\u0142u i w razie potrzeby u\u017cywam r\u00f3wnoleg\u0142o\u015bci. Je\u015bli przepustowo\u015b\u0107 nie spe\u0142nia oczekiwa\u0144, szukam specjalnie skrzynek po\u015brednicz\u0105cych, kt\u00f3re filtruj\u0105 opcje i optymalizuj\u0105 kontrol\u0119 przeci\u0105\u017cenia, w tym zachowanie kolejki. W ten spos\u00f3b wykorzystuj\u0119 dost\u0119pne <strong>Szeroko\u015b\u0107 pasma<\/strong> nawet podczas d\u0142ugich podr\u00f3\u017cy i zaoszcz\u0119dzi\u0107 mi kosztownych aktualizacji sprz\u0119tu, kt\u00f3re nie rozwi\u0105zuj\u0105 rzeczywistego w\u0105skiego gard\u0142a.<\/p>","protected":false},"excerpt":{"rendered":"<p>Dowiedz si\u0119, jak skalowanie okien TCP serwera, produkt przepustowo\u015bci i op\u00f3\u017anienia oraz dostrajanie sieci wsp\u00f3\u0142pracuj\u0105 ze sob\u0105 i jak mo\u017cesz zoptymalizowa\u0107 przepustowo\u015b\u0107 po\u0142\u0105cze\u0144 za pomoc\u0105 s\u0142owa kluczowego Server TCP Window Scaling.<\/p>","protected":false},"author":1,"featured_media":19418,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-19425","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":"109","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"Server TCP","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":"19418","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/19425","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=19425"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/19425\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/19418"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=19425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=19425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=19425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}