اعادة ضبط SWAP في Ubuntu لزيادة السرعة

ماهوا SWAP؟ السواب عبارة عن بارتشن في الهارديسك لا تستطيع الوصول له مثل باقي البارتشنات وتصفح ملفاته، يستخدم كـ Virtual Memory لتخزين Memory Inactive Page وهي المعلومات الموجودة في الرام ولكن غير مستخدمة حالياً أي في حالة سكون، يقوم النظام بتحويلها للسواب بشكل مؤقت للحفاظ دائماً على مساحة جيدة متوفرة في الرام للبروسيس الجديدة.

سواب ليس مكان تخزين دائم اي بمجرد انهاء البروسيس المتعلق بالملفات الموجودة بالسواب سوف يتم حذفها من السواب فوراً أو حتى اذا قمت باعادة تشغيل او ايقاف الجهاز سوف يتم تفريغ كل محتوى سواب.

يستخدم سواب ايضاً في حالات اخرى مثل خاصية Hibernate حيث يتم نقل جميع المعلومات الموجودة في الرام إلى السواب وخزنها هناك ثم اغلاق النظام وعند اعادة تشغيل النظام يتم سحب البيانات من السواب  للرام وبالتالي يعود النظام للعمل من حيث اغلق.

بما ان SWAP هو في الاصل بارتشن على الهارديسك هذا يعني انه ليس بسرعة الرام الحقيقي نهائياً، والسرعة هنا سوف تعتمد بالاصل على نوع الهارديسك المستخدم حيث ان بارتشن سواب على قرص SATA2 غير عن SSD او حتى SAS، وفكرة SWAP اساساً قديمة جداً وكان الهدف منها عدم حدوث مشكلة out of memory بسبب ان وقتها كان افضل جهاز يحمل تقريباً 2 جيجا رام، بالتالي كان مبدأ امتلاء الرام وارد جداً عكس هذه الايام الكثير من الاجهزة تبدا ب4 جيجا رام وهو حجم كافي بنسبة جيدة للاستخدام العادي واليومي بدون حدوث مشاكل.

لماذا علي اعادة ضبط SWAP ؟ كما قلت سابقاً ان SWAP هو بارتشن على القرص الصلب يعني ليس بسرعة الرام الحقيقي، المشكلة هنا هي بطئ ادخال واستخراج المعلومات منه مما يسبب بطئ عام بالجهاز لديك خصوصاً اذا كنت تستخدم التوزيعات الجديدة (التي اصبحت بطيئة حداً كـ GUI مقارنة بالسابقات)، غير هذا استخدام سواب سوف يؤثر على IO، اما المشكلة الرئيسية هي ان معظم التوزيعات تأتي باعدادات إفتراضية غير مناسبة تماماً وبسبب هذه الاعدادات يتم الاعتماد على SWAP كثيراً بشكل مزعج يؤثر على اداء جهازك، وهذا هو ما سوف نقوم بإصلاحة في هذا الموضوع.

كيف يتم ضبط SWAP ؟ الحل بسيط، ما سوف نقوم به هو وضع السواب للاستخدام عند نفاذ الرام الحقيقي فقط وبالتالي نتجنب استخدام النظام للسواب حين وجود مساحة كافية في الرام، الطريقة سوف تكون بفتح الملف التالي باستخدام صلاحيات root

nano /etc/sysctl.conf

ثم نقوم باضافة السطور التالية في اخر الملف

# Limit SWAP usage
vm.swappiness=10

ثم احفظ الملف، وقم بعمل ريستارت للجهاز. علماً ان الافتراضي هو 60 وهو رقم كبير نوعا ما، على اي حال بعد هذا التعديل سوف يتم استخدام السواب عند الحاجه الفعلية فقط. علماً ان الطريقة هذه تعمل مع توزيعات لينكس الأخرى.

لكن ماذا يعني لنا vm.swappiness=10 ؟ الاوبشن هذا يتيح لنا التحكم في متى يتم البدء باستخدام السواب وهذا بناء على كم هي مساحة الرام المتبقية للاستخدام وبمجرد الوصول لهذا الرقم يتم البدء باستخدام السواب وتحويل اي Inactive Page للسواب.

المعادلة بسيطة الاوبشن هذا يتيح لنا التحكم من 0% إلى 100% وعندما وضعنا له 10 فهنا حددنا عملية البدء باستخدام السواب عند وصول المساحة المتبقية من الرام 10% او اقل، ولا يستخدم السواب ابداً طالما يوجد لدينا رام متاح اكثر من 10%, مثلاً جهازي يقرأ 5790 MB من الرام كإجمالي اذا 10% سوف تكون 579 MB ولن يتم استخدام السواب لدي إلا في حالة اصبح الرام المتوفر فقط 579 MB أو اقل.

البعض يقوم بتعطيل SWAP بالكامل وهذا غير جيد حيث سوف نفقد مع هذا الإجراء خاصية Hibernate، ولن نحتاج لتعطيل سواب بالكامل طالماً لدينا الإمكانية بالتحكم في الية استخدام SWAP.

📮 المتابعة عبر البريد الالكتروني

عند الاشتراك سيصلك جديد منشوراتي ومقالاتي على ايميلك. لا يتم نشر اي اعلانات ابدًا، فقط المقالات التي انشرها هنا في مدونتي هذه.

‎التعليقات‫:‬ 4 On اعادة ضبط SWAP في Ubuntu لزيادة السرعة

اترك رداً على علي الوشليإلغاء الرد