Två servrar med samma antal processorer kan upprätthålla mycket olika genomströmning, eftersom talet som spelar roll är hur många kärnor den aktiva datavägen faktiskt kan använda. En enda daemon i användarutrymmet som bearbetar en klients paket är begränsad till en kärna, medan en offloadad kärnväg kan sprida det arbetet. Ingen av de två utsagorna säger vad en given maskin gör med din trafik, därför kommer mätningen före kärnräkningen.

Jämförelsen nedan handlar om var paketen bearbetas, inte om vilken produkt som är snabbast i abstrakt mening. Det är olika frågor med olika svar.

En kärna per flöde på vägen i användarutrymmet

I en traditionell Community OpenVPN instans bearbetas datakanalen i användarutrymmet, och en upptagen anslutning kan låsa en processor medan maskinens totala utnyttjande förblir omärkligt. Därför förändrar det inget att lägga till kärnor på en värd som redan är mättad på ett enda flöde: schemaläggaren har ingen möjlighet att dela det arbetet. Strukturen med en process per klient begränsar en klients överföring till kapaciteten hos en kärna, oavsett det totala antalet kärnor. Läs utnyttjandet per kärna under ett test i stället för siffran totalt, annars kommer flaskhalsen att se ut som ledig kapacitet.

Att köra flera serverinstanser på en värd fördelar separata klienter över processer. Det parallelliserar inte en befintlig anslutning och kostar separata pooler, lyssnare och routingbeslut.

Den andra vägen: paket i kärnan

Offload av datakanalen flyttar stödd paketbearbetning och kryptografi in i kärnan, där arbetet kan använda flera kärnor. Det ändrar kapacitetsfrågan från en kärna till maskinen, men bara för konfigurationer som implementationen stöder: en kompatibel kärnmodul, ett lämpligt datachiffer och en konfiguration utan de funktioner som offload utesluter. Att installera en modul är inte samma sak som att använda den, så bekräfta det aktiva läget i anslutningens egen logg eller statusutdata. En versionsbanner bevisar vad som är tillgängligt, inte vad som körs.

Offload tar inte bort autentisering eller kontrollkanalen, och det gör inte varje utrullning flerkärnig. Det är en lokal acceleration av en kompatibel dataväg, och kraven skiljer sig åt beroende på plattform och version.

Vad jämförelsen faktiskt avgör

Det verkliga valet står mellan att acceptera ett tak per flöde, att sprida klienter över instanser och att gå över till en stödd offload-konfiguration. Var och en löser ett annat problem, och att välja fel kostar pengar utan att flytta siffran. Testet som betyder något är det som är format efter hur tjänsten används.

Mät tre former: en klient med en överföring, en klient med flera flöden och flera klienter samtidigt. En hög summa i den tredje bevisar inte att en enda nedladdning kan nå den, och en långsam enkel överföring bevisar inte att servern har tömt sin totala kapacitet. Resultaten svarar på olika frågor och båda är värda att ha.

Bara den mellersta formen berättar om samtidighet inuti en klient hjälper, vilket vanligtvis är en egenskap hos transporten och vägen snarare än servern. Bara den första berättar taket som en enda applikation kommer att se. Håll arbetsbelastningen identisk mellan körningarna så att jämförelsen betyder något.

Mäta så att siffran betyder något

Anteckna versionerna för server och klient, den aktiva datavägen, det förhandlade datachiffret, överföringsriktningen, paketstorlekar, antalet flöden och varaktigheten. Följ aktiviteten per kärna och paket- och köförluster i båda ändarna, eftersom klientens eget gränssnitt, leverantörens nätverk eller måltjänsten kan bli gränsen först. Ändra en variabel i taget, eftersom en körning som ändrar chiffer, komprimering, MTU och offload samtidigt inte kan säga vilken som spelade roll. Behåll den åtkomstpolicy du faktiskt tänker införa under testet, eftersom en laboratorieuppställning som ingen kommer att köra bevisar lite.

Lämna sedan utrymme för kontrollkanalen, för omförhandling och för allt annat som körs på värden.

Rapportera vad konfigurationen höll under den avsedda samtidigheten, i stället för en hastighet som extrapolerats från någon annans hårdvara. En siffra med sina testvillkor bifogade är användbar; ett löfte utan dem är en gissning som kommer att citeras tillbaka till dig.

Relaterade artiklar