ot task_struct(6-01-2011)

Na 4-ti ianuari, 2011g, izleze Linuks iadro 2.6.37

Novostite sa:

1. Ext4 - po-dobra SMP skaliruemost i po-burz mkfs

  • Po-dobra SMP mashtabiruemost: V tazi versiia Ext4 izpolzva "bio" sloia direktno, vmesto mezhdinniia buferen sloi, koito imashe dosta problemi s proizvoditelnostta i skaliruemostta pri SMP sistemi. "Bio" sloiat (sukrateno ot Block I/O) e chast ot iadroto, koiato izprashta zaiavki kum IO/O dispechura i beshe edna ot purvite vumozhnosti, vkarani v iadro 2.5.1.
  • Po-burz mkfs: Edin ot nai-bavnite momenti pri suzdavaneto na nova failova sistema Ext4 e initsializiraneto na inode tablitsite. mkfs mozhe da izbegne tazi stupka i da ostavi inode tablitsite neinitsializirani. Kogato novata failova sistema e montirana za purvi put, iadroto puska nishka (ext4lazyinit), koiato initsializira tezi tablitsi.

2. Premahnat e BKL (Big Kernel Lock)
BKL e gigantsko zaklyuchvane na iadroto, koeto se poiaviava vuv versiia 2.0, kogato Alun Koks vkarva poddruzhkata na SMP. No tova e bilo samo edna stupka za postigane na SMP skaliruemost - samo edin protses e mozhel da izpulniava kod ot iadroto v daden moment v Linuks 2.0. V dalechna perspektiva e triabvalo BKL da se zameni s po-malki zaklyuchvaniia na chasti ot iadroto, s tsel mnozhestvo protsesi da mogat izpulniavat otdelnite chasti paralelno. V tazi versiia veche e vuzmozhno da se kompilira iadro bez poddurzhka na BKL. Triabva da se otbelezhi, che tova niama da se otrazi na burzodeistvieto, tui kato vsichki kritichni putishta(codepaths) sa nezavisimi ot BKL ot dosta vreme. BKL vse oshte se izpolzvashe v dosta nekritichni mesta kato ioctl-i, draivuri, niakoi failovi sistemi i drugi. Tochno tezi mesta sa izchisteni v tazi versiia i sa zameneni s muteksi, koito ne podobriavat paralelizma.

3. Ceph-bazirano mrezhovo blokovo ustroistvo
Ceph e razpredelena mrezhova failova sistema, koiato se poiavi v iadro 2.6.34. V dizaina na Ceph ima "object storage devices" i "metadata servers", koito suhraniavat metadanni za obektite. Ceph izpolzva tezi 2 neshta, za da realizira svoiata failova sistema, no tezi obekti mogat sushto da se izpolzvat za implementirane na mrezhovo blokovo ustroistvo (ili dori Amazon S3, suvmestimo suhranenie na obekti).
V tazi versiia na iadroto se poiaviava blokovoto ustroistvo Rados(RDB). RBD vi pozvoliava da suzdadete blokovo ustroistvo, koeto e razpredeleno po obektite, suhraniavani v Ceph. V kontrast s alternativi kato iSCSI ili AoE, RBD izobrazheniiata sa razpredeleni i dublirani iz Ceph kluster. Tova predostavia nadezhnost (ako edin vuzel otkazhe, sistemata produlzhava da raboti ), skaliruemost i pretsizna nastroika na dostupa do suhraniavanite obekti.

4. Vuzmozhnost za ogranichavane na I/O trafika
Tova pravi vuzmozhno da se opredeli gorna granitsa za chetene / zapis na grupa ot protsesi, koeto mozhe da bude polezno v mnogo sluchai. Primer:

Montirane na cgroup blkio kontrolera 
# mount -t cgroup -o blkio none /cgroup/blkio

Zadavane na limit za dadeno usroisto na root grupata. FormatUT e sledniiat ":  "
# echo "8:16  1048576" > /cgroup/blkio/blkio.read_bps_device

Tova shte slozhi limit ot 1MB/sekunda pri chetene ot protses ot root grupata na ustroistvo s major/minor nomer 8:16.

Ogranicheniiata mogat da budat zadadeni v IO operatsii v sekunda (blkio.throttle.read_iops_device). Sushto taka ima i ekvivalenti pri pisane - blkio.throttle.write_bps_device i blkio.throttle.write_iops_device. Tazi funktsionalnost ne zamestva IO weight kontrolera, koito se poiavi v 2.6.33.

5. "Jump label": izklyuchenite tochki za sledene ne se otraziavt na proizvoditelnostta
Tochkite za sledene mogat da budat opisani kato spetsialni printf() izvikvaniia, koito se izpolzvat v iadroto za da pokazvat informatsiia. Tazi informatsiia vposledstvie se izpolzva ot instrumenti kato perf, LTT ili systemtrap, za da analizirat povedenieto na sistemata. Ima dva vida takiva tochki - dinamichni i statichni. Dinamichnite tochki promeniat koda na iadroto po vreme na izpulnenie, kato vmukvat protsesorni instruktsii, kudeto e neobhodimo za to na dannite. Te sa izvestni oshte i kato kprobes i natovarvaneto ot tiahnoto izpolzvane be optimizirano v Linuks 2.6.34.
Statichnite tochki, ot druga strana, sa suzdadeni ot razrabotchitsite na iadroto pri pisaneto mu. Te sa razpolozheni na strategicheski mesta v koda. Za primer, Ext4 ima 50 stratichni tochki. Tezi tochki se kompilirat s ostanalata chast ot koda na iadroto i po podrazbirane sa izklyucheni (funktsiiata ne se izvikva), dokato niakoi ne gi aktivira. No vinagi ima edin if, koito opredelia dali tochkite sa vklyucheni. Tova namaliava malko proizvoditelnostta na sistema , no vse pak e po-dobre da se optimizira, a tochno tova pravi "jump label". Na miastoto na testvaneto na uslovieto se slaga mashinnata instruktsiia "no operation", taka che izklyuchenite statichni tochki veche ne zabaviat sistemata. (Suvet: Mozhete da izpolzvate komandata "sudo perf list", za da vidite pulniia spisuk na statichnite tochki vuv vashata sistema).

6. Podobreniia v upravlenieto na zahranvaneto.

  • Kompresiraneto na obraza za hibernatsiia veche se pravi sus LZO.
  • Zabaveno avtomatino spirane na ustroistvata. Tazi funktsionalnost podobriava upravlenieto na zahranvaneto po vreme na rabota na sistemata, koeto beshe dobaveno v 2.6.32. Niakoi draivuri ne iskat ustroistvoto, koeto upravliavat, da spre vednaga, shtom ne se izpolzva po vreme na rabota na sistemata. Te iskat ustroistvoto da ostane neaktivno za niakakvo minimalno vreme i chak sled tova da zaspi.

7. Poddruzhka na PPP prez IPv4 (PPTP)
S tazi promiana drastichno sa uskoreni PPTP VPN vruzkite i e namaleno izpolzvaneto na protsesorno vreme v sravnenie sus sushtestvuvashtite do sega implementatsii na protokola v potrebitelskoto prostranstvo(poptop/pptpclient).

V novata versiia sushto ima mnozhestvo podobreniia po Btrfs i Perf probe. Sushto taka veche e nalichno i Fanotify API.



Iztochnik: kernelnewbies.org


<< Kurs "Vuvedenie v Qt" | CHestita Nova Godina >>