Untuk menghindari menunggu pipa melalui opsi IOCB_NOWAIT untuk lebih meningkatkan kinerja IO_uring, Jens Axboe telah mengimplementasikan fungsi tersebut dan dalam pengujian sederhana melihat peningkatan kinerja 10x hingga 23x.
"Satu hal yang selalu sedikit lebih lambat daripada yang saya inginkan dengan io_uring adalah berurusan dengan pipa. Mereka tidak mendukung IOCB_NOWAIT, dan karenanya kami perlu memasukkannya ke io-wq untuk penanganan. Seri ini menambahkan dukungan untuk FMODE_NOWAIT ke pipa," memulai salah satu seri tambalan terbaru Axboe. Tapi yang lebih menarik adalah bagaimana pesan itu diakhiri:
Ingin tahu seberapa besar perbedaannya, saya menulis patokan kecil yang hanya membuka 128 pipa dan kemudian melakukan 256 putaran membaca dan menulis kepada mereka. Ini dijalankan 10 kali, membuang proses pertama karena selalu sedikit lebih lambat. Sebelum tambalan:
Rata-rata: 262,52 mdtk
Stdev: 2,12 mdtk
Min: 261,07 mdtk
Maks 267,91 mdtk
dan setelah tambalan:
Rata-rata: 24,14 mdtk
Stdev: 9,61 mdtk
Min: 17,84 mdtk
Maks: 43,75 mdtk
atau sekitar 10x peningkatan kinerja (dan efisiensi).
Saya menjalankan tambalan melalui uji pipa ltp dan penyambungan, tidak ada regresi yang diamati. Meskipun peningkatan 10x cukup menarik, Axboe kemudian menindaklanjuti dengan peningkatan 23x!
Tes di atas adalah untuk pipa yang kosong saat pembacaan dikeluarkan, jika tes diubah menjadi data kapan, maka akan terlihat lebih baik:
Sebelum:
Rata-rata: 249,24 mdtk
Stdev: 0,20 mdtk
Min: 248,96 mdtk
Maks: 249,53 mdtk
Setelah:
Rata-rata: 10,86 mdtk
Stdev: 0,91 mdtk
Min: 10,02 mdtk
Maks: 12,67 mdtk
atau sekitar peningkatan 23x. Mudah-mudahan dukungan FMODE_NOWAIT untuk pipa ini akan siap dirilis dengan kernel Linux 6.4 musim panas ini.
Itulah berita seputar IOCB_NOWAIT Untuk Pipa Linux Menghasilkan Peningkatan Kinerja 10~23x, semoga bermanfaat. Disadur dari Phoronix.com.Artikel Diperbarui pada: March 08, 2023
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani