Vaikka Linux 6.4:n yhdistämisikkuna sulkeutuu tänä viikonloppuna, Jens Axboe lähettää tänään kauden viimeisenä kokonaisena FMODE_NOWAIT-tuen suureksi suorituskyvyn ja tehokkuuden parannukseksi.

Pippujen korjausten FMODE_NOWAIT-tuen aiemman ilmentymän myötä Axboe selitti:

“Yksi asia, joka on aina ollut hieman hitaampaa kuin haluaisin io_uringin kanssa, on putkien tekeminen. Ne eivät tue IOCB_NOWAITia, joten meidän täytyy puntata ne io:lle-wq käsittelyyn. Tämä sarja lisää FMODE_NOWAIT-tuen putkiin.”

Mutta se, missä asiat todella muuttuvat villiksi, on sen tuottaman suorituskyvyn/tehokkuuden laajuus:

“Utelias, miten Suuri ero tällä on, kirjoitin pienen vertailuarvon, joka yksinkertaisesti avaa 128 putkea ja tekee sitten 256 luku-ja kirjoituskierrosta niille. Tämä ajettiin 10 kertaa, jolloin ensimmäinen ajo hylättiin, koska se on aina hieman hitaampi. Ennen korjausta:

Keskiarvo: 262,52 ms
Stdev: 2,12 ms
Minimi: 261,07 ms
Max 267,91 ms

ja korjaustiedoston jälkeen:

Keskiarvo: 24,14 ms
Stdev: 9,61 ms
min: 17,84 ms
>Max: 43,75 ms

tai noin 10-kertainen suorituskyvyn (ja tehokkuuden) parannus.

Ajoin paikat ltp-putki-ja liitostestien läpi, regressioita ei havaittu. Tarkasteltaessa io_uring traces-jäljitystä voimme nähdä, että meillä ei ole enää io_uring_queue_async_work() jälkiä korjaustiedoston jälkeen, missä aiemmin kaikki tehtiin io-wq:n kautta.”

Hän myöhemmin lisätty tähän korjaustiedostosarjaan:

“Yllä oleva testi oli, että putki oli tyhjä, kun luku suoritetaan, jos testiä muutetaan niin, että sillä on tiedot milloin, niin se näyttää vielä paremmalta:

Ennen:

Keskim.: 249,24 ms
Stdev: 0,20 ms
Minimi: 248,96 ms
Maksimi: 249,53 ms

Jälkeen:

Keskim.: 10,86 ms
Stdev: 0,91 ms
Minimi: 10,02 ms
Max: 12,67 ms

tai noin 23-kertainen parannus.”

Linux 6.4:ään yhdistämiseen asetetut korjaustiedostot asettivat FMODE_NOWAIT-tuen putkille, mutta poistavat sen käytöstä, jos liitos/vmsplice putkessa. Tämä vetopyyntö on nyt odottaa putken FMODE_NOWAIT-tukea.

Categories: IT Info