IO_uring Untuk Menderingkan Beberapa Peningkatan Luar Biasa Dengan Linux 6.0

  • Post author:
  • Post category:Linux

IO_uring terus menjadi salah satu inovasi kernel Linux terbesar dalam beberapa tahun terakhir dan dengan pengembangan kernel Linux 6.0 menjadi lebih baik bersama dengan beberapa pembaruan blok yang bagus dan peningkatan terkait penyimpanan lainnya.
Pengembang utama IO_uring dan pemelihara subsistem blok Jens Axboe dari Meta telah mengajukan berbagai permintaan tariknya untuk perubahan Linux 6.0. Dengan pembaruan IO_uring untuk Linux 6.0, ada peningkatan efisiensi pada penanganan tugas-kerja, peningkatan buffer yang disediakan, peningkatan penguncian hash yang dibatalkan, dukungan untuk dukungan multi-shot recv/revgmsg untuk efisiensi yang lebih baik dengan aplikasi yang melakukan banyak penerimaan pada soket instantiated, peningkatan efisiensi untuk penanganan polling, dan banyak pembersihan / peningkatan lainnya.
Jens Axboe di Kernel Recipes 2022.

Tarik tambahan adalah menambahkan dukungan penulisan buffer ke IO_uring. Penulisan buffered IO_uring siap dengan dukungan untuk XFS sementara dukungan sistem file Btrfs sedang berlangsung. Axboe menjelaskan dalam tarikan itu:
io_uring mendukung penulisan buffer pada semua jenis file, tetapi karena jalur penulisan buffer selalu -EAGAIN (atau -EOPNOTSUPP) setiap upaya untuk melakukannya jika IOCB_NOWAIT disetel, penulisan buffer apa pun akan ditangani secara efektif oleh io-wq offload. Ini tidak terlalu efisien, dan kami bahkan memiliki kode khusus di io-wq untuk membuat serial buffered menulis ke inode yang sama untuk menghindari inefisiensi lebih lanjut dengan thread offload.
Ini sangat menyedihkan karena sebagian besar penulisan buffer tidak memblokir, mereka hanya menyalin data ke halaman dan mengotorinya. Dengan pull request ini, kita dapat menangani penulisan buffer dengan lebih efisien. Jika balance_dirty_pages() perlu diblokir, kami akan mundur dari penulisan seperti yang ditunjukkan.
Ini meningkatkan dukungan penulisan buffer sebanyak 2-3x. Tarikan lain memperkenalkan dukungan pengiriman nol-salinan untuk IO_uring. Pengiriman zero-copy IO_uring adalah kemenangan besar untuk kasus penggunaan jaringan. Pengiriman nol-salinan dengan IO_uring ini berfungsi untuk IPv4 dan IPv6, baik TCP maupun UDP.
Di luar IO_uring, perubahan blok telah dikirimkan termasuk berbagai pembersihan, driver blok ruang pengguna baru menggunakan IO_uring, dan banyak lagi.
Terakhir adalah perubahan driver blok dengan kode NVMe yang sekarang melihat dukungan untuk otentikasi in-band, peningkatan perebutan kunci RAID5 dalam kode MD, dan berbagai peningkatan/perbaikan/pembersihan lainnya.
Sementara itu Jens Axboe menggoda server AMD EPYC baru dengan 128 core dan 24 drive Optane (Dell PowerEdge R7525) yang dia mainkan:
122M IOPS dalam 2U, dengan > 80% dari sistem idle. Mudah.#io_uring#linux pic.twitter.com/Ij9VzUrEhY

— Jens Axboe (@axboe) 1 Agustus 2022Dengan kernel Linux saat ini, dia saat ini menarik 122 juta IOPS dengan server 2U sementara lebih dari 80% sistem menganggur. Akan menyenangkan untuk melihat pengoptimalan kinerja I/O lebih lanjut yang dapat ia jelajahi dengan perangkat keras itu.

Itulah berita seputar IO_uring Untuk Menderingkan Beberapa Peningkatan Luar Biasa Dengan Linux 6.0, semoga bermanfaat. Disadur dari Phoronix.com.