:

Szerző: Bodnár Ádám

2010. augusztus 3. 12:51

Google által fejlesztett újdonságok a Linux kernelben

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.

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.

a címlapról