انقلاب در سرعت لینوکس ۷.۴؛ خدانگهدار افت پردازنده و رم با بهینهسازی خفن XFS

بیخیال دردسرهای کندی سیستم و هدررفتن منابع سختافزاری بشید! دنیای لینوکس دوباره با یک آپدیت خفن برگشته تا ثابت کنه هیچوقت متوقف نمیشه. در جریان توسعه لینوکس ۷.۴، قراره کلی تغییرات جذاب توی بخش VFS یا همون سیستم فایل مجازی ببینیم که یکی از مهمتریناش، غوغا به پا کردن توی بخش Checksumming فایل سیستم XFS است. اگر تا حالا حس میکردی سیستمعکست موقع خوندن فایلها داره بیجهت زور میزنه و RAM و CPU رو درگیر میکنه، خبر خوب اینه که این مشکل رسماً حل شد!
داستان چیه و چرا این آپدیت اینقدر مهمه؟
ماجرا از این قراره که فایل سیستم XFS قبلاً برای کارهای مربوط به Checksumming و چک کردن صحت دادهها، خیلی بیرحمانه از Bounce Buffer استفاده میکرد. یعنی چی؟ یعنی برای هر بار خوندن مستقیم اطلاعات از روی دستگاه، سیستم مجبور بود یک نسخه کپی از دادهها توی RAM بسازه تا مطمئن بشه دادهها دستکاری نمیشن. نتیجه چی بود؟ مصرف بیرویه پهنای باند DRAM و درگیر کردن الکی CPU برای کارهایی که عملاً ۹۹ درصد مواقع هیچ نیازی بهشون نبود! ضمناً این قضیه باعث میشد I/Oها هم ناهمگون و خرد بشن و کارایی کلی سیستم بیاد پایین.
راه حل جادویی لینوکس ۷.۴ چیست؟
توسعهدهندهها بالاخره این گره کور رو باز کردن! Christian Brauner عزیزهدلمون اومده و توضیح داده که توی کدوندهای جدید IOmap برای لینوکس ۷.۴، یک تکنیک باحال به اسم lazy bounce buffering پیادهسازی شده. یعنی دیگه سیستم کورکورانه از همون اول سراغ ساختن Bounce Buffer نمیره.
الان دیگه عملیات خوندن مستقیماً میره توی User Buffer کاربر و فقط و فقط در صورتی که Checksum به مشکل بخورد و خطا بدهد، سیستم تازه یادش میفتد که یک Bounce Buffer بسازد و دادهها را دوباره بخواند. بخش بررسی یکپارچگی دادهها هم از iomap منتقل شده داخل خود فایلسیستم تا هرکسی بتواند ارورها را به روش خودش مدیریت کند!
این یعنی خداحافظی با مصرف بیرویه CPU و پهنای باند RAM. دیگه سیستم مجبور نیست برای هر فایل کوچیکی، منابع سختافزاری شما رو داغ کنه. این تغییرات اساسی از طریق یک pull request حسابی راه رو برای عرضه نهایی لینوکس ۷.۴ هموار کردن تا همه ما بتونیم روی سرورها و سیستمهامون یک لینوکس سریعتر، سبکتر و بهینهتر داشته باشیم.




