جهش خفن سرعت در VirtIO-FS با صفهای Synchronous؛ لینوکس سریعتر از همیشه!

بیتعارف بگوییم؛ اگر کارتان با مجازیسازی و ماشینهای مجازی گره خورده، خبر تازهای که درباره VirtIO-FS منتشر شده دقیقاً همان چیزی است که منتظرش بودید. تیمی از توسعهدهندگان روی پیادهسازی صفهای Synchronous برای این فایلسیستم مشترک کار کردهاند و نتایج اولیه واقعاً شگفتانگیز است. اگر تا امروز برای انتقال داده بین Host و Guest با تاخیرهای آزاردهنده دستوپنجه نرم میکردید، این آپدیت جدید قرار است معادله را به نفع سرعت تغییر دهد.
داستان از چه قرار است؟
سرجیو لوپز (Sergio López) روی قابلیت جدیدی کار میکند که به VirtIO-FS اجازه میدهد به جای رفتارهای همیشگی asynchronous، از صفهای synchronous استفاده کند. تکنولوژی VirtIO معمولاً روی کارهای asynchronous تمرکز دارد، اما حقیقت این است که در عملیات I/O خیلی وقتها ناچارید صبر کنید تا کار تمام شود و بعد ادامه دهید. با این روش جدید، Host thread که فرآیند vCPU را اجرا میکند، میتواند درخواست را قبل از بازگشت به Guest کامل کند و همین یعنی حذف کلی سربار اضافی.
عملکردی که دهانتان را باز نگه میدارد!
برای اینکه عیار این قابلیت جدید مشخص شود، زمان لازم برای Build کردن libkrunfw بهعنوان بنچمارک تست شده است. نتیجه؟ زمان انجام کار از ۷ دقیقه و ۴۳ ساعت به طرز جادویی به ۵ دقیقه و ۳۴ ثانیه سقوط کرده است! علاوه بر این، عملکرد I/O تصادفی هم بهشدت بهتر شده، تاخیر در پاک کردن فایلها کاهش یافته و کلی بهبود دیگر رخ داده است.
جزئیات فنی و قدمهای بعدی
این تغییرات جذاب فعلاً در قالب یک Pull Request تجربی برای libkrun ارائه شده تا پشتیبانی از VIRTIO_FS_F_SYNC را به صورت اختیاری اضافه کند. برای جزئیات فنی بیشتر میتوانید به این پست وبلاگ یا گیتهاب libkrun سر بزنید. با این حسابهکار، آینده دنیای لینوکس و مجازیسازی روشنتر از همیشه به نظر میرسد.


