Wczesne poprawki zapewniające dla IO_uring zero-copy send wsparcie dla podsystemu sieciowego jądra Linuksa wygląda niezwykle obiecująco dla większej przepustowości.

Programista Pavel Begunkov opublikował dzisiaj zestaw dwunastu poprawek pracujących nad obsługą wysyłania zerowej kopii dla IO_uring z podsystemem sieciowym. Te początkowe poprawki są oznaczone jako „prośba o komentarze”, ponieważ niektóre elementy są nadal porządkowane za pomocą kodu.

Obsługa wysyłania z zerową kopią IO_uring jest obecnie obsługiwana przez IPv4/UDP, ale są też poprawki TCP. Chociaż nadal prace są na wczesnym etapie i są płynne, wyniki wydajności są dość podekscytowane perspektywami:

Benchmarking udp (65435 bajtów) z fikcyjnym urządzeniem sieciowym (mtu=0xffff): Najlepszy case io_uring=116079 MB/s vs msg_zerocopy=47421 MB/s lub 2,44 razy szybciej.
….
Najgorszy przypadek dla io_uring jest wciąż 1,88 raza szybszy niż msg_zerocopy, aw zestawie poprawek pominięto kilka”łatwych”optymalizacji. W przypadku 4096 bajtów ładunek zc tylko nieznacznie przewyższa wersję bez zc, im większy ładunek, tym większa luka.

Wspaniale jest zobaczyć, jak cała praca jądra dzieje się wokół IO_uring w zakresie przechowywania i pracy w sieci. Zobacz tę serię poprawek, jeśli jesteś zainteresowany wszystkimi szczegółami.

Categories: IT Info