Mellékleteink: Unix / Linux | Gamekapocs
Keres
a HWSW bemutatja > BigScreen 2012: Konferencia a televíziózás technológiájának jövőjéről, Cinema City Allee, február 29.

Google által fejlesztett újdonságok a Linux kernelben

Bodnár Ádám, 2010. augusztus 03. 12:51

A hét végén megérkezett a 2.6.35 verziószámú Linux kernel, amely a Google-tól származó technológiákat tartalmaz a hálózati forgalom gyorsítására, illetve képes a memória töredezettségmentesítésére is.

hirdetés

Az egyre gyorsabb és gyorsabb, akár több 10 gigabites hálózati interfészek megjelenésével gyakran a CPU a szűk keresztmetszete a forgalom feldolgozásának. Ezen a helyzeten próbál javítani a Google által kidolgozott Receive Packet Steering (RPS) és Receive Flow Steering (RFS), amelyek a többmagos, illetve több processzort tartalmazó rendszereken akár kétszeresére is gyorsíthatják a csomagfeldolgozás sebességét. A korábbi lineáris feldolgozás helyett a többmagos vagy többprocesszoros rendszereken lehetővé válik a (IP, TCP, stb.) csomagok párhuzamos feldolgozása.

Az RFS a rendelkezésre álló információk alapján megpróbálja kitalálni, egy adott csomagot melyik CPU-n érdemes feldolgozni, az RPS pedig szétosztja a beérkező csomagokat a CPU-k között. Az RPS-t akár kézzel is be lehet konfigurálni, hogy ossza el a csomagokat a CPU-k között, de egy algoritmus segítségével maga is képes megtippelni, hova küldje a csomagot, mégpedig az rcvmsg() rendszerhívást figyelve. Az RFS és RPS lényegében ugyanazokat a szolgáltatásokat nyújtja mint egy "multi-queue" hálózati vezérlő, de mivel szoftverben implementált, ezért bármilyen hálózati kártyával és bármilyen hardveren működik, olvasható a Linux kernel newbies oldalán.

Az oldal egy teszteredményt is idéz, amely szerintegy nyolcmagos Intel Xeon processzort és gigabites Intel e1000e hálózati kártyát használva a hálózati tranzakciók száma másodpercenkénti 104 ezerről 303 ezerre emelkedett, miközben a processzorterhelés 30 százalékról 61 százalékra nőtt.

A 2.6.35-ös kernel további újdonságai közé tartozik a foglalt memórialapok csoportosítása. A memory compaction lényege, hogy a foglalt (de mozgatható) memórialapokat egyetlen egybefüggő területté szervezi, ami később lehetővé teszi nagy, összefüggő memóriaterületek egyszerű, gyors lefoglalását. A modern processzorok 4 kilobájtnál jóval nagyobb lapmérettel is képesek dolgozni, ilyenkor a címfordítási puffer kevésbé terhelt, ami teljesítménynövekedést jelent. Ehhez azonban szükség van arra, hogy a memóriában rendelkezésre álljanak összefüggő területek a nagy lapokhoz. Az eljárás egyébként nagyon hasonlít a merevlemezek töredezettségmentesítésére.

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.
Egy kis türelmet kérünk, töltjük a kommenteket...

Új komment írásához be kell jelentkezned!

A Fórumos azonosítódat is használhatod.

Ha még nem vagy tagunk, regisztrálj! Csak 2 perc az egész.

Tipp #1: több formázási lehetőséged van, ha a Fórumban szólsz hozzá a témához!
Tipp #2: készítettünk egy gyűjtőoldalt, ahol az összes friss kommentet megtekintheted.