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