Ahoj. Potreboval jsem mezi data centrama otestovat propustnost 10 Gb linky, takze jsem potreboval nejaky stroje s iperfem. Sahnul jsem po FreeBSD jelikoz je to pres 27 let muj nejblinenejsi serverovy operacni system.
V nasich data centerech je vsechno virtualizovane nad VMware vSphere, takze testovaci servery jsou VMka a pouzity sitovy driver pro VMXNET3 sitovky je vmx. FreeBSD je na VMwaru podporovano. Je jasne, ze pro sitovy prenos je potreba CPU cykly. Obecne je to polde ruznych mych testu nekde mezi 0.25 Hz a 1 Hz na 1 bit/s, ale samozrejme je to zavisle na ruznych typech procesoru, sitoveho paternu a dalsich faktorech. Zjistil jsem, ze defaultni instalace FreeBSD potrebuje 4 vCPU, aby to propustilo 8,5 Gb/s a 8 vCPU, aby to dalo 19,5 Gb/s. Dulezite je to defaultni instalace. Detailni popis testovani je zde ... http://vcdx200.uw.cz/2025/03/network-benchmark-iperf-of-10gb-data.html Probiral jsem to s kolegou sitarem/linuxarem a ten mi tvrdil, ze Debian zvladne 10 Gb/s i s jednim vCPU. Nevahal jsem tedy a otestoval to viz. http://vcdx200.uw.cz/2025/04/network-throughput-and-cpu-efficiency.html Zakladni testy delam mezi dvema VM-kama na jenom Hypervisoru, aby me nelimitovala fyzicka sit. Az kdyz to dava rozumny vykon bez fyzicke site, tak to pak dava smysl testovat pres fyzickou 25 Gb/100 Gb sit, kterou mame v data centru. Takze pro jednoduchost porovnani se staci zamerit na propustnost mezi dvouma virtualama na jednom hypervizoru. Zjistil jsem, ze FreeBSD vmx interface defaultne nepouziva LRO (Large Receive Offload) a s jednim CPU dava pouhych 1,34 Gb/s. V Debianu sitovy interface vmxnet3 sitovky pouziva LRO by default a s jednim vCPU to je schopne dat 9,5 Gb/s. To me vlastne dovedlo ke zjisteni, ze ve FreeBSD se defaulne nepouziva LRO a po enablovani LRO na vmx interfacu jsem byl schopen dosahnut 7,29 Gb/s, coz je vyrazne lepsi nez 1,34 Gb/s, ale porad mene nez 9,5 Gb/s na Debianu. S MTU 9000 dalo FreeBSD 8.9 Gb/s, coz uz je dost blizko 9,5 Gb/s na Debianu. Vyse uvedene testy, jsem delal na asi 9 let starych Cisco UCS serverech s CPU Intel Xeon CPU E5-2680 v4 a tak jsem si to jeste rozchodil a testuju to na domacim labu kde mam taky asi 9 let stare Intel NUC consumer PC-cka s CPU Intel Core i3-6100U. Zajimave je, ze na consumer PC-ckach dosahuju vyssich sitovych propustnosti nez na serverech, ale to plati jak pro FreeBSD, tak pro Debian, takze to je jen zajimavost. Vysledky z domaciho labu: FreeBSD vmx interface bez LRO s jednim CPU (iperf -P1) dava 2,4 Gb/s a CPU je vyuzito na cca 95% jak na serveru, tak na klientovi. FreeBSD vmx interface bez LRO s jednim CPU (iperf -P2) dava 2,4 Gb/s a CPU je vyuzito na cca 95% jak na serveru, tak na klientovi. FreeBSD vmx interface bez LRO s jednim CPU (iperf -P3) dava 2,4 Gb/s a CPU je vyuzito na cca 95% jak na serveru, tak na klientovi. FreeBSD vmx interface s LRO s jednim CPU (iperf -P1) dava 8,6 Gb/s a CPU je vyuzito na cca 50% na serveru a 25% na klientovi. FreeBSD vmx interface s LRO s jednim CPU (iperf -P2) dava 12,4 Gb/s a CPU je vyuzito na cca 90% na serveru a 40% na klientovi. FreeBSD vmx interface s LRO s jednim CPU (iperf -P3) dava 13,8 Gb/s a CPU je vyuzito na cca 98% na serveru a 60% na klientovi. FreeBSD vmx interface s LRO + MTU 9000 s jednim CPU (iperf -P1) dava 13,4 Gb/s a CPU je vyuzito na cca 70% na serveru a 40% na klientovi. FreeBSD vmx interface s LRO + MTU 9000 s jednim CPU (iperf -P2) dava 15,2 Gb/s a CPU je vyuzito na cca 90% na serveru a 80% na klientovi. FreeBSD vmx interface s LRO + MTU 9000 s jednim CPU (iperf -P3) dava 16,2 Gb/s a CPU je vyuzito na cca 95% na serveru a 85% na klientovi. Debian vmx interface bez LRO s jednim CPU dava 14,8 Gb/s a CPU (iperf -P1) je vyuzito na cca 99% na serveru a 80% na klientovi. Debian vmx interface bez LRO s jednim CPU dava 14,8 Gb/s a CPU (iperf -P2) je vyuzito na cca 99% na serveru a 80% na klientovi. Debian vmx interface bez LRO s jednim CPU dava 14,8 Gb/s a CPU (iperf -P3) je vyuzito na cca 99% na serveru a 80% na klientovi. Debian vmx interface s LRO s jednim CPU dava 16,1 Gb/s a CPU (iperf -P1) je vyuzito na cca 95% na serveru a 85% na klientovi. Debian vmx interface s LRO s jednim CPU dava 16,1 Gb/s a CPU (iperf -P2) je vyuzito na cca 95% na serveru a 85% na klientovi. Debian vmx interface s LRO s jednim CPU dava 16,2 Gb/s a CPU (iperf -P3) je vyuzito na cca 95% na serveru a 85% na klientovi. Debian vmx interface s LRO + MTU 9000 s jednim CPU dava 17,5 Gb/s a CPU (iperf -P1) je vyuzito na cca 95% na serveru a 80% na klientovi. Debian vmx interface s LRO + MTU 9000 s jednim CPU dava 17,5 Gb/s a CPU (iperf -P2) je vyuzito na cca 95% na serveru a 85% na klientovi. Debian vmx interface s LRO + MTU 9000 s jednim CPU dava 17,5 Gb/s a CPU (iperf -P3) je vyuzito na cca 95% na serveru a 85% na klientovi. Kdyz bych to mel sesumarizovat, tak bych to popsal takto. Debian s jednim vCPU dava propustnost mezi 14,8 a 17.5 Gb/s, kdy LRO, ktere je v Debianu pouzito defaultne, pomuze o 8% a MTU 9000 o dalsich 8%. Vice iperf paralelnich vlaken v jednotlivych testech vysi propustnosti nepomaha. FreeBSD s jednim vCPU dava propustnost mezi 2,4 a 16,2 Gb/s, kdy LRO, ktere neni pouzito defaultne, pomuze vyznamne. Z 2,4 Gb/s na 8,6 Gb/s (3.5x) pri pouziti jednoho paralelniho vlakna (-P1). Z 2,4 Gb/s na 12,4 Gb/s (5x) pri pouziti dvou paralelnich vlaken (-P2). Z 2,4 Gb/s na 13,8 Gb/s (5.8x) pri pouziti trech paralelnich vlaken (-P3). Dalsi zlepseni k LRO prinasi pouziti MTU 9000. Z 8,6 Gb/s na 13,4 Gb/s (+46%) pri pouziti jednoho paralelniho vlakna (-P1). Z 12,4 Gb/s na 15,2 Gb/s (+18%) pri pouziti dvou paralelnich vlaken (-P2). Z 13,8 Gb/s na 16,2 Gb/s (+15%) pri pouziti trech paralelnich vlaken (-P3). Na FreeBSD pomaha pouziti vice klientskych vlaken (-P2, -P3) ale jen v pripadech, ze je pouzite LRO a MTU 9000. Chtel jsem se zeptat co si o tom myslite, jestli nekdo provozujete FreeBSD pro velke sitove toky a jestli mate na sitovych interfacech nastavene LRO a jestli pouzivate Jumbo Frames (MTU 9000). Dalsi dotaz je, jestli nekoho nenapada neco dalsiho co by se dalo na FreeBSD vytunit, aby se zvysila sitova propustnost. Jeste me napada enablovat RSS, ale to neni enabovane ani na Debianu ani na FreeBSD. -dp-
