Fornitura di patch iniziali per IO_uring il supporto per l’invio a copia zero per il sottosistema di rete del kernel Linux sembra estremamente promettente per un maggiore throughput.

Lo sviluppatore Pavel Begunkov ha pubblicato oggi il set di dodici patch lavorando su questo supporto per l’invio a copia zero per IO_uring con il sottosistema di rete. Queste patch iniziali sono contrassegnate come”richiesta di commenti”poiché alcuni elementi sono ancora in fase di ordinamento con il codice.

Questo supporto di invio zero-copy di IO_uring è attualmente per la gestione di IPv4/UDP ma ci sono anche patch TCP in lavorazione. Sebbene il lavoro sia ancora in fase iniziale e in evoluzione, i risultati delle prestazioni ci hanno piuttosto entusiasmato per le prospettive:

Benchmarking udp (65435 byte) con un dispositivo fittizio di rete (mtu=0xffff): il migliore case io_uring=116079 MB/s vs msg_zerocopy=47421 MB/s o 2,44 volte più veloce.
….
Il caso peggiore per io_uring è ancora 1,88 volte più veloce di msg_zerocopy, e ci sono un paio di ottimizzazioni”facili”tralasciate dal patchset. Per 4096 byte il payload zc supera solo leggermente la versione non-zc, maggiore è il payload maggiore è il divario.

È fantastico vedere tutto il kernel che funziona attorno a IO_uring per l’archiviazione e il networking. Vedere questa serie di patch se interessati a tutti i dettagli.

Categories: IT Info