لینوکس ۷.۴ با پشتیبانی از DMA-BUF و IO_uring، سرعت سرورها را منفجر میکند!

خبر خیلی خفن برای دنیای لینوکس و کسانی که با سرور و کارهای سنگین سر و کار دارند! نسخه جدید لینوکس (همین لینوکس ۷.۴ خودمان) بالاخره ویژگی فوقالعادهای را به Kernel اضافه کرده که باعث میشود دادهها بین سختافزارها جابهجا شوند بدون اینکه CPU بیچاره درگیر کپی کردن الکی اطلاعات شود. این یعنی سرعت بیشتر و کارایی بالاتر برای سیستمهای قدرتمند.
اگر علاقهمندید بدانید این تکنولوژی چطور کار میکند و چرا اینقدر سر و صدا به پا کرده، در ادامه مقاله با ما همراه باشید تا جزئیات فنیاش را با زبانی ساده بررسی کنیم.
چرا این تغییر در لینوکس ۷.۴ یک انقلاب است؟
تا پیش از این، وقتی میخواستید دادهای را بین کارت گرافیک، کارت شبکه یا حافظههای پرسرعت جابهجا کنید، پای CPU وسط میآمد و باید اطلاعات را کپی میکرد که خودش کلی زمان و منابع سیستم را میگرفت. اما حالا با ترکیب قابلیت DMA-BUF و فریمورک قدرتمند IO_uring در لینوکس ۷.۴، این مشکل به شکل عجیبی حل شده است.
فریمورک DMA-BUF به Driver های مختلف اجازه میدهد حافظه سختافزاری خود را مستقیماً و بدون دخالت و کپیکاری توسط CPU با همدیگر به اشتراک بگذارند. این تکنولوژی قبلاً هم در کارهای گرافیکی و رسانهای طرفدار داشت، اما حالا پایش به بخش I/O یا همان ورودی و خروجی لینوکس هم باز شده است.
جزئیات فنی از زبان توسعهدهنده اصلی
پاول بگونکوف (Pavel Begunkov) که هدایت این پروژه بزرگ را بر عهده داشته، درباره نحوه کارکرد این ویژگی در Kernel توضیح میدهد:
“این یک قابلیت انتخابی (opt-in) برای فایلهاست و باید یک عملیات فایل جدید را پیادهسازی کند. فعلاً در این مرحله، فقط تجهیزات بلاک دیسک NVMe پشتیبانی میشوند. کاربر میتواند از طریق بخش “registered buffers” در io_uring از آن استفاده کند…”
همانطور که در بنچمارکهای اولیه دیده شده، اعداد و ارقام ثبت شده به لطف این ویژگی فوقالعاده چشمگیر هستند و نوید روزهای خیلی سریعی را برای سرورهای مبتنی بر NVMe میدهند.


