Året var 1982. 17-årige Mats Wilander blir yngste någonsin att vinna de franska öppna mästerskapen, Sveriges riksdag tar beslut om att börja utveckla JAS 39 Gripen. Internet används som begrepp för första gången, IEEE lägger fram nätverksstandarden 802.3 som ett förslag och tio megabit per sekund var raketsnabbt. Tre år senare klubbades IEEE 802.3 igenom och lade grunden till flaskhalsar som skulle förfölja ännu ofödda systemadministratörer nära trettio år senare.

IEEE 802.3 är synonymt med ethernet och är den utan konkurrens vanligaste nätverkstekniken. När mjukvaruingenjörerna på IEEE röstade ja till 802.3 röstade de också ja till att sätta en begränsning för hur mycket data som kan skickas i ett ethernet-paket, inom en så kallad ethernet-ram. Begränsningen är 1 542 byte varav maximalt 1 500 byte kan användas för nyttodata och gäller för majoriteten av all nätverksutrustning du hittar där ute. Nätverkskort, switchar, bryggor, routrar.


Lagom för 30 år sedan
För trettio år sedan när antalet anslutna datorer till internets föregångare Arpanet var några hundra Unix-maskiner och den mesta av kommunikationer var textbaserad spelade begränsningen på 1 542 byte ingen större roll. Den relativt låga gränsen var satt för att minska antalet kollisioner på nätet och reducera antal bitfel.

I dag är nätet hundra gånger snabbare och du kan ha några hundra virtuella maskiner på en och samma fysiska server som alla slåss om att komma ut genom samma nätverksport. Det är plötsligt trångbott i de här 1 542 byten. Problemet med kollisionsdetektering är också i stort sett utraderat tack vare smarta switchar som låter sändare och mottagare prata direkt med varandra.

Om 1 500 byte skulle räcka för vår trafik vore begränsningen inget problem, men högupplöst grafik, strömmande ljud och bild, torrents och mastiga hemsidor slukar massvis med ethernet-ramar och behöver således packas ned i omgångar.

Låt säga att vi kunde packa ner en högupplöst bild på 1,6 megabyte direkt i ett antal ethernet-ramar. Det skulle bli 10 925 ramar som går ut på nätverket. Lägg sedan till det faktum att vi gjort en glädjekalkyl och att underliggande protokoll som tcp/ip också tar plats och du förstår problemet. Max utnyttjandegrad i ett ethernet-nätverk med enbart välfyllda ramar är 97,28 procent när vi räknat bort den plats adressinformationen tar.

Lösningen på problemet heter jumboramar – de kan innehålla sex gånger så mycket information, eller 9 000 byte i effektiv data. Den runda siffran 9 000 byte kommer av den checksumma på 32 bitar som skickas med varje ethernet-paket och används för att verifiera att paketet inte är trasigt. Checksumman på 32 bitar är inte effektiv på paketstorlekar över 12 000 byte. 9 000 byte är tillräckligt stort för att kunna rymma ett datagram på åtta kilobyte plus adressinformation, till exempel nätverksfilsystemet nfs.


83 procent bättre
I vårt exempel med den högupplösta bilden skulle antalet ramar som går ut på nätet reduceras från 10 925 till 1 821 ramar – en minskning med 83 procent. Samtidigt ökar den maximala nyttjandegraden från 97,28 till 99,5 procent.

Tester har också visat att processorn inte behöver jobba lika hårt när paketstorleken ökar eftersom det blir färre paket att packa. Varje mottaget paket resulterar i ett mjukvaruavbrott där processorn måste stanna upp, ta hand om paketet och skicka det vidare till rätt destination. Större paket betyder färre bortkastade processorcykler.

Ett stort problem med jumboramar är att all nätverksutrustning som ska anslutas till segmentet där du använder dig av jumboramar måste klara av att hantera dem. Det går inte att blanda gammal och ny teknik, eller använda dig av äldre switchar som inte kan tolka jumboramarna.

Det främsta användningsområdet är i datacentret för att effektivisera intensiv trafik mellan servrar. Jumboramar implementerar du med fördel i ett iscsi-san, eller lagringsnät som vi kan kalla det för på svenska.

Klusterstorleken i filsystemet ntfs ligger till exempel på fyra kilobyte och måste därför packas ned i flera traditionella ethernet-ramar. Genom att aktivera stödet för jumboramar i din gigabit-ethernet-port ser du till att samma information går att skicka i ett enda paket. Tester har visat att du kan snabba upp prestandan med fem procent samtidigt som processorn slår av på takten med runt två–tre procent.

Prestandavinsten ser du främst om du använder dig av en mjukvarubaserad iscsi-initierare. Om du använder dig av hba-kort så sköter hårdvaran paketeringen och sliter därmed inte på processorn, men du ökar fortfarande prestandan i lagringsnätet med fem procent genom att aktivera stöd för jumboramar. Funderar du på att investera i ett iscsi-nät ska du ta reda på om din hårdvarutillverkares produkter stöder jumboramar.