แพตช์แรกที่มีให้ สำหรับ IO_uring การสนับสนุนการส่งแบบ zero-copy สำหรับระบบย่อยเครือข่ายของเคอร์เนล Linux นั้นมีแนวโน้มอย่างมากสำหรับปริมาณงานที่เพิ่มขึ้น
นักพัฒนา Pavel Begunkov ได้โพสต์ชุดของแพตช์สิบสองชุดในวันนี้ โดยทำงานบน Zero-copy send รองรับ IO_uring กับระบบย่อยของเครือข่าย แพทช์เริ่มต้นเหล่านี้ถูกทำเครื่องหมายเป็น”คำขอความคิดเห็น”เนื่องจากบางรายการยังคงถูกจัดเรียงด้วยรหัส
การสนับสนุนการส่งการคัดลอกเป็นศูนย์ IO_uring นี้ขณะนี้สำหรับการจัดการ IPv4/UDP แต่มีแพตช์ TCP ในการทำงานด้วยเช่นกัน ในขณะที่ยังอยู่ในช่วงเริ่มต้นและอยู่ในสภาวะที่ไม่ต่อเนื่อง ผลลัพธ์ด้านประสิทธิภาพทำให้เราค่อนข้างตื่นเต้นกับผู้ที่มีแนวโน้มจะเป็นลูกค้า:
Benchmarking udp (65435 bytes) กับอุปกรณ์เน็ตดัม (mtu=0xffff): ดีที่สุด case io_uring=116079 MB/s vs msg_zerocopy=47421 MB/s หรือเร็วกว่า 2.44 เท่า
….
กรณีที่เลวร้ายที่สุดสำหรับ io_uring ยังคงเร็วกว่า msg_zerocopy 1.88 เท่า และมีการเพิ่มประสิทธิภาพที่”ง่าย”อยู่สองสามอย่างที่เหลือจากชุดโปรแกรมแก้ไข สำหรับ 4096 ไบต์ payload zc นั้นมีประสิทธิภาพดีกว่าเวอร์ชันที่ไม่ใช่ zc เพียงเล็กน้อย ยิ่ง payload ที่ใหญ่ขึ้นจะมีช่องว่างที่กว้างขึ้น
ดีมากที่ได้เห็นการทำงานของเคอร์เนลทั้งหมดเกิดขึ้นรอบๆ IO_uring สำหรับการจัดเก็บและเครือข่าย ดูชุดโปรแกรมแก้ไขนี้ หากสนใจรายละเอียดทั้งหมด