كيفية إنشاء وتمكين ملفات المبادلة على سطر أوامر Linux – CloudSavvy IT
عندما تكون ذاكرة العملية غير كافية ، يستخدم Linux ملف المبادلة. ستسمح العملية باستخدام قطعة من القرص بدلاً من الانهيار ، مما سيقلل السرعة بشكل كبير ، ولكن يمكن أن يمنع الأعطال العرضية لنفاد الذاكرة التي يمكن أن تلحق الضرر بتوافر الخدمة.
ما هو ملف المبادلة؟
لنبدأ بسؤال بلاغي: ماذا يحدث عندما تنفد ذاكرة جهاز الكمبيوتر الخاص بك؟
في Linux ، ما لم يتم تعطيل OOM killer أو تكوينه بطريقة أخرى ، فإن عملية مراقبة خاصة (مراقبة OOM / عملية القاتل) ستراقب النظام لعدم وجود ذاكرة كافية.
عندما يحدث هذا ، ستنهي العملية إحدى العمليات التي تعمل على النظام لتحرير الذاكرة. يمكن أن يؤدي هذا إلى نتائج مؤلمة ، مثل تلف البيانات أو عدم توفر الخدمات. يشير الاختصار OOM إلى “نفاد الذاكرة”
يتمثل أحد الحلول في شراء ذاكرة إضافية أو تقليل عدد البرامج أو الخدمات التي تعمل في نفس الوقت على الكمبيوتر أو الخادم. ولكن ماذا لو تمكنا من استخدام بعض مساحة القرص (الرخيصة عادةً) كـ “ذاكرة إضافية”؟
هذه بالضبط وظيفة ودور ملف المبادلة: ملف خاص تم إنشاؤه على جهاز تخزين ، والذي يصبح بعد ذلك جزءًا من الذاكرة الرئيسية. إنها ليست مباشرة ، وهناك تكاليف معالجة عامة ، ولكنها غير مباشرة ولها تأثير كبير على سرعة المعالجة.
مزايا وعيوب Swapfile
بالمقارنة مع الأقراص الأبطأ ، تكون الذاكرة الرئيسية عادةً فائقة السرعة. حتى محركات الأقراص ذات الحالة الصلبة (محركات الأقراص ذات الحالة الصلبة) تكون دائمًا أبطأ من رقائق التخزين الرئيسية عالية السرعة. بالنسبة لمحركات الأقراص الثابتة (محركات الأقراص الثابتة الميكانيكية والدوارة والتقليدية) ، يظل فارق السرعة أكبر.
لذلك ، في معظم الإعدادات ، يعد استخدام قرص أبطأ (SDD ، وخاصة HDD) كمصدر للذاكرة ميزة واضحة. يُطلق على زمن انتقال البيانات ذهابًا وإيابًا بين الذاكرة الرئيسية والقرص (أي استخدام القرص كذاكرة) اسم “المبادلة” (تبديل الذاكرة بمساحة القرص)
ومع ذلك ، من الجيد دائمًا أن يكون لديك ملف تبادل معقول من طرفين على نظامك. السبب بسيط ؛ لنفترض أننا نحتاج فقط إلى 1 غيغابايت من الذاكرة الإضافية في بضع دقائق للتأكد من أن نظامنا لا يستدعي OOM killer وينهي عمليات معينة. في هذه الحالة ، سيكون swapfile أفضل ، لأنه حتى إذا نفدت العملية من ذاكرة الوصول العشوائي المتاحة ، فلن تتعطل ، ولكنها ستكون أبطأ حتى تكمل المهمة.
ومع ذلك ، إذا بدأ النظام في التبادل كثيرًا ، فمن شبه المؤكد أنه سيصبح أبطأ (اقرأ: أبطأ كثيرًا). سيكون هذا واضحا جدا.
بشكل عام ، هناك توازن دقيق ودقيق ، وهو أمر تعسفي إلى حد ما ويعتمد على العديد من الأشياء المختلفة في حالة معينة. عدد العمليات التي تعمل على النظام وحجم عمل ذاكرتها ، وإجمالي الذاكرة المستخدمة ، والذاكرة المتوفرة في ملف المبادلة ، وتكوين ملف المبادلة المحدد للنظام ، إلخ.
ملاحظات على ملفات الصرف
في العديد من إعدادات Linux في العالم اليوم ، يتم تخصيص قسم مبادلة على قرص في النظام. هذه منطقة خاصة يتم حجزها عادةً أثناء تثبيت نظام التشغيل Linux (ولكنها ليست حصرية ؛ يمكن إضافتها لاحقًا). وظيفته الهدف هي نفس وظيفة ملف التبادل. للتحقق مما إذا كان نوع من التبادل ممكّنًا حاليًا على نظامك ، ما عليك سوى تنفيذ الأمر التالي في الجهاز:
sudo apt -y set up htop
htop
وابحث عن الناتج التالي:
يرجى ملاحظة أن هناك 62.7 جيجا من الذاكرة الرئيسية و 11. جيجا من مساحة التبديل على هذا النظام. يمكنك أيضًا ملاحظة أنه يتم استخدام كمية صغيرة فقط (23.5 مليونًا) حاليًا. إذا كنت تشك في أن النظام يتم تبديله ، فتحقق من مظهر هذين العدادات.
إذا كانت ممتلئة تقريبًا ، فمن المحتمل أن يتبادل نظامك الكثير ، وسيتم تقليل سرعة التشغيل بشكل كبير. والسبب هو أنه يوجد الآن قدر كبير من التحميل المرتبط بالإدخال / الإخراج (أي المرتبط بالقرص) ، حيث يتم تبديل الذاكرة الرئيسية باستمرار بالذاكرة المستندة إلى القرص.
بناءً على الخبرة ، يميل بعض الأشخاص إلى استخدام نسبة معينة من ذاكرة النظام كحجم مخصص لملف المبادلة. أنا شخصياً أسلك طريقًا آخر وهو التفكير في مقدار الذاكرة الإضافية التي قد تكون مطلوبة. إذا كانت السعة كبيرة ، على سبيل المثال ، فقد ينتهي الأمر بخادم بسعة 8 جيجابايت باستخدام 14 جيجابايت لحالة استخدام معينة ، فمن المنطقي زيادة ذاكرة الخادم من 8 جيجابايت إلى 16 جيجابايت.
ومع ذلك ، إذا كان النظام يحتوي على 8 غيغابايت ، وعادة ما يتم استخدام 6-7 غيغابايت ، وإذا بدأت العديد من البرامج في وقت واحد وحدثت طفرات عرضية ، فقد أفكر في زيادة مساحة المبادلة البالغة 8 غيغابايت ، أو أكثر قليلاً. عادةً ما تكون مساحة القرص رخيصة ، لذا طالما أن لديك مساحة كافية ، فلن تسبب بعض التعديلات على مساحة القرص ضررًا.
كيفية تمكين ملف المبادلة
هل أنت جاهز لإضافة ملف المبادلة؟ يمكن القيام بذلك في أي وقت. ستعمل هذه الطريقة على الأنظمة القائمة على Debian (Ubuntu و Mint وما إلى ذلك) و RedHat (RedHat و Centos وما إلى ذلك).
في هذا المثال ، سننشئ ملف مبادلة بحجم 1 جيجا بايت أو 1000 ميجا بايت أو 1024000 قطعة (محسوبة بالميغابايت × 1024).
أطلقنا عليه اسم swapfile123 (الموجود في الدليل الجذر (/)) وقمنا بتسميته لتجنب الكتابة فوق أي ملفات قد تكون لديك بالفعل. إذا كنت متأكدًا من عدم وجود ملف مسمى / swapfile ، يمكنك استخدام الملف حسب الحاجة ، يرجى توخي الحذر لتغيير اسم الملف في جميع المواقع بشكل صحيح.
تأكد من كتابة أي أوامر خاصة dd
أمر ، يرجى العمل بعناية لتجنب الكتابة فوق أي بيانات على النظام.نحن نستخدم sudo su
عن طريق الدخول إلى وضع المستخدم الفائق (su) sudo
.تقريبا نفس تنفيذ كل أمر باستخدام sudo
، على الرغم من أنه من الأسهل كتابة كل بادئة أمر sudo دون استخدام هذه الطريقة.
sudo su
if [ -r /swapfile123 ] then echo "Halt make sure you! /swapfile123 already exists!" fi
dd if=/dev/zero of=/swapfile123 bs=1024 count=1024000
chmod 0600 /swapfile123
mkswap /swapfile123
swapon /swapfile123
يجب أن ترى إخراجًا مشابهًا لما يلي:
إذا كان الأمر كذلك ، تهانينا! لقد قمت للتو بتمكين أول ملف مبادلة ديناميكيًا (ديناميكيًا) في سطر أوامر Linux!
أولا ، نستخدم dd
أدوات لإنشاء مساحة التبادل الخاصة بنا ، /dev/zero
الجهاز (الجهاز الظاهري الذي يخرج صفرًا فقط عند استدعائه ، بواسطة dd
أو أي أداة أخرى). بعد ذلك ، قمنا بإعداد بعض امتيازات الأمان المناسبة.
بعد ذلك ، نشير إلى نظام التشغيل الذي سيستخدمه الملف mkswap
أمر. أخيرًا ، فتحنا مساحة التبديل ديناميكيًا على سطر الأوامر دون إعادة تشغيل النظام.
يمكننا أيضًا التحقق بسهولة مما إذا كانت مساحة التبادل الخاصة بنا قد أصبحت أكبر باستخدام الأمر التالي free -m
:
رائع ، يمكنك أن ترى كيف نمت من 12215 مليونًا إلى 11215 مليونًا (من المتوقع أن يكون 1000 مليون) بعد إلغاء تنشيط ملف المبادلة الذي تم إنشاؤه حديثًا.يمكنك أيضا أن ترى كيف نستخدم swapoff
قم بإيقاف التشغيل ديناميكيًا في سطر الأوامر.
من الجيد معرفة أنه إذا رأينا أن النظام يعاني من مشكلات في الذاكرة وأن سرعة الإدخال سريعة بما يكفي ، فيمكننا تزويده بذاكرة إضافية على الفور. في الواقع ، من الأفضل القيام بذلك مسبقًا قبل ظهور المشكلات.
لدينا الآن مشكلة صغيرة واحدة فقط لحلها. إذا أردنا إعادة التشغيل في هذا الوقت ، وسيظل ملف المبادلة على القرص ، فلن يستخدمه النظام. حتى الآن ، لم يتم إجراء أي تغييرات على الإعدادات ، مما يضمن إعادة تحميل مساحة التبديل عند إعادة تشغيل النظام.
قم بتمكين التبادل الجديد عند بدء التشغيل
لتمكين مساحة التبديل الجديدة في وقت التمهيد ، ما عليك سوى إضافة السطر التالي (مثل هذا السطر) إلى / and so on / fstab:
/swapfile123 swap swap defaults
يمكنك القيام بذلك وأنت لا تزال sudo su
نمط (مثل المسافة بين السطور #
) ، من خلال تشغيل محرر nano من / etcetera / fstab:
nano /etcetera/fstab
cat /and so forth/fstab
ثم أضف السطر أعلاه إلى نهاية الملف واحفظه (CTRL + X> Y> enter). لا تقم بتعديل أو حذف أي سطور أخرى ، لأن ذلك قد يمنع النظام من البدء بشكل صحيح. أيضًا ، قبل إجراء إعادة التشغيل ، تأكد من إعادة التحقق من محتويات ملف / and so forth / fstab. cat /and many others/fstab
الأعلي.
يمكنك الآن إعادة تشغيل النظام والتأكد من أن مساحة التبادل الإضافية لا تزال متاحة باستخدام free of charge -m
مرة اخرى.
احذف مساحة المبادلة الجديدة
إذا كنت ترغب في حذف مساحة مبادلة جديدة ، أو ربما إنشاء مساحة مبادلة أكبر ، يمكنك القيام بذلك أولاً بتحرير ملف / etcetera / fstab مرة أخرى ، ثم حذف السطر الذي يقوم بتحميل ملف المبادلة بالكامل. لا تقم بتعديل أو حذف أي خطوط أخرى ، فقد يؤدي ذلك إلى فشل النظام في بدء التشغيل بشكل صحيح! بعد ذلك ، يمكنك تنفيذ:
sudo swapoff /swapfile123
rm /swapfile123
كله تمام! ليست هناك حاجة أيضًا إلى إعادة التشغيل لأن هذا التغيير يتم بشكل ديناميكي. في إعادة التشغيل التالية ، نظرًا لأننا حذفنا سطر المطابقة من ملف / and many others / fstab ، لم يعد ملف المبادلة نشطًا.
استمتع بتبديل الملفات!