سؤال لماذا يتم استخدام المبادلة على الرغم من أن لدي الكثير من ذاكرة الوصول العشوائي الحرة؟


اعتقدت أن جوهر المبادلة كله كان بمثابة شبكة أمان مؤقتة للتخزين عندما كانت ذاكرة الوصول العشوائي ممتلئة لكن قسم التبادل الخاص بي يتم استخدامه بشكل مستمر بالرغم من أن لدي أحيانًا ذاكرة وصول عشوائي سعتها 3 غيغابايت. هل هذا طبيعي؟


183
2018-06-29 22:16


الأصل


يرجى مشاركة محتوى أو مخرجات الأوامر / الملفات التالية لمساعدتنا بشكل أفضل في حل مشكلتك (تعليمات في هذه الإجابة): free -m، top -b 1 - ish
سيتم تحديث السؤال مع pastebins من تلك الأوامر غدا. انها 12:00 في الوقت الحالي :( - Mysterio
يجب أن أقوم بتحرير العنوان لإضافة "... لكنني أشعر بالنعاس الشديد لرعاية الآن ، لذا يجب عليك أخذ قيلولة أيضًا": P - ish


الأجوبة:


يمكنك محاولة تغيير قيمة "swappiness" الخاصة بك:

من Ubuntu's Swap FAQ:

ما هو السبح وكيف أقوم بتغييره؟

تتحكم المعلمة swappiness ميل النواة لنقل العمليات خارج الذاكرة الفعلية وعلى قرص المبادلة. نظرًا لأن الأقراص أبطأ بكثير من ذاكرة الوصول العشوائي ، يمكن أن يؤدي ذلك إلى أوقات استجابة أبطأ للنظام والتطبيقات إذا تم نقل العمليات بشكل كبير جدًا من الذاكرة.

  1. يمكن أن تكون قيمة swapiness بين 0 و 100

  2. swappiness = 0 يخبر النواة لتجنب تبادل العمليات من الذاكرة الفعلية لأطول فترة ممكنة

  3. swappiness = 100 يخبر النواة بتبادل العمليات بفاعلية من الذاكرة الفعلية ونقلها إلى ذاكرة التخزين المؤقت

الإعداد الافتراضي في Ubuntu هو swappiness = 60. من المحتمل أن يؤدي تقليل القيمة الافتراضية لل swappiness إلى تحسين الأداء الكلي لتثبيت سطح مكتب أوبونتو النموذجي. يوصى باستخدام قيمة swappiness = 10 ، ولكن لا تتردد في التجربة. ملاحظة: تتضمن عمليات تثبيت خادم Ubuntu متطلبات أداء مختلفة لأنظمة سطح المكتب ، ومن المرجح أن تكون القيمة الافتراضية لـ 60 مناسبة.

للتحقق من قيمة swappiness

cat /proc/sys/vm/swappiness

لتغيير قيمة swappiness يمكن إجراء تغيير مؤقت (مفقود عند إعادة التشغيل) بقيمة swappiness من 10

sudo sysctl vm.swappiness=10

لإحداث تغيير دائم، قم بتحرير ملف التكوين باستخدام محرر المفضلة لديك:

gksudo gedit /etc/sysctl.conf

البحث عن vm.swappiness وتغيير قيمته على النحو المرغوب فيه. إذا كان vm.swappiness غير موجود ، فقم بإضافته إلى نهاية الملف كما يلي:

vm.swappiness=10

احفظ الملف وأعد التشغيل.

كما يمكنك التحقق من: https://askubuntu.com/a/103916/54187


161
2018-06-29 23:10



مضاربات الخمول: يمكن أن يكون هذا مفيدًا للأداء - يمكن نسخ الصفحات التي لم يتم الوصول إليها من حين لآخر إلى مساحة المقايضة ، مما يسمح لنظام التشغيل بطردها بسرعة إذا احتاجت إلى ذاكرة ، ولكن محتويات الصفحة تبقى في الذاكرة . - Simon Richter
SimonRichter نعم هذه هي الفكرة. من المحتمل أن تكون Swappiness of 60 عدوانية للغاية على الأنظمة الحديثة ، لأن ذلك يعني أنك بدأت في المبادلة عندما لا يزال لديك العديد من العربات ذات الذاكرة الحرة. - Brendan Long
يركض sudo sysctl --load=/etc/sysctl.conf بعد تحرير الملف لتطبيق التغييرات - deFreitas


هناك بعض الجوانب المختلفة لسؤالك.

أولا ، ما هو تعريفك "مجاني". في الواقع ليست بسيطة كما يبدو في لينكس (أو أي نظام تشغيل حديث).

كيف يستخدم Linux ذاكرة الوصول العشوائي (مبسطة للغاية)

يمكن لكل تطبيق استخدام بعض الذاكرة الخاصة بك. يستخدم لينكس كل الذاكرة غير مشغولة خلاف ذلك (باستثناء آخر بضع ميغابايت) "كذاكرة تخزين مؤقت". وهذا يشمل ذاكرة التخزين المؤقت للصفحة ، وتخزين inode ، وما إلى ذلك. وهذا أمر جيد - فهو يساعد على تسريع الأمور. يمكن إسقاط كل من الكتابة إلى القرص والقراءة من القرص بشكل كبير عن طريق ذاكرة التخزين المؤقت.

من الناحية المثالية ، لديك ذاكرة كافية لجميع التطبيقات الخاصة بك ، ولا يزال لديك عدة مئات ميغابايت من اليسار لذاكرة التخزين المؤقت. في هذه الحالة ، طالما أن التطبيقات الخاصة بك لا تزيد من استخدام الذاكرة الخاصة به ولا يكافح النظام للحصول على مساحة كافية لذاكرة التخزين المؤقت ، فليس هناك حاجة إلى أي تبادل.

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

هذه ليست حالة تخص لينكس - كل أنظمة التشغيل الحديثة تعمل بهذه الطريقة. قد تقوم أنظمة التشغيل المختلفة فقط بالإبلاغ عن ذاكرة الوصول العشوائي الحرة بشكل مختلف: فالبعض منها يتضمن ذاكرة التخزين المؤقت كجزء من ما يعتبرونه "مجانيًا" والبعض الآخر قد لا.

عندما تتحدث عن ذاكرة الوصول العشوائي الحرة ، فهي أكثر فائدة تتضمن ذاكرة التخزين المؤقت ، لأنها عمليا مجانية - وهي متوفرة في حالة طلب أي تطبيق لها. على لينكس ، free تقارير الأمر بطريقتين - السطر الأول يتضمن ذاكرة التخزين المؤقت في عمود RAM المستخدم ، ويتضمن السطر الثاني ذاكرة التخزين المؤقت (والمخازن المؤقتة) في العمود الحر.

كيف يستخدم لينكس المبادلة (حتى أكثر بساطة)

وبمجرد الانتهاء من استخدام ذاكرة كافية لعدم وجود ما يكفي من التخزين المؤقت السلس ، قد يقرر Linux إعادة تخصيص بعض ذاكرة التطبيق غير المستخدمة من ذاكرة الوصول العشوائي للتبديل.

لا يفعل هذا وفقا لحد معين. لا يشبه الوصول إلى نسبة معينة من التخصيص ، ثم يبدأ Linux في التبديل. لديها خوارزمية "غامض" بدلا. يستغرق الأمر الكثير من الأشياء في الاعتبار ، والتي يمكن وصفها بشكل أفضل من خلال "مقدار الضغط الموجود لتخصيص الذاكرة". إذا كان هناك الكثير من "الضغط" لتخصيص ذاكرة جديدة ، فستزيد من فرص تبادلها لتوفير مساحة أكبر. إذا كان هناك "ضغط" أقل ، فسيقلل من هذه الفرص.

يحتوي النظام الخاص بك على إعداد "swappiness" الذي يساعدك على تعديل كيفية حساب "الضغط" هذا. عادةً لا يُنصح بتغيير ذلك على الإطلاق ، ولا أنصحك بتغييره. التبادل هو أمر جيد للغاية عموما - على الرغم من أن هناك بعض الحالات الحافة حيث يضر الأداء ، إذا نظرت إلى أداء النظام العام انها فائدة صافية لمجموعة واسعة من المهام. إذا قمت بتقليل السذاجة ، فأنت تسمح بتقلص حجم الذاكرة المؤقتة أكثر بقليل من ما هو متوقع ، حتى عندما يكون ذلك مفيدًا حقًا. ما إذا كان هذا مقايضة جيدة بما يكفي لأي مشكلة تواجهك في المبادلة أمر متروك لك. يجب أن تعرف فقط ما تفعله ، هذا كل شيء.

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

عند اختيار ما سيتم تبديله إلى القرص ، يحاول النظام التقاط ذاكرة لا يتم استخدامها بالفعل - القراءة أو الكتابة منها. لديها خوارزمية بسيطة جدا لحساب هذا أن يختار جيدا معظم الوقت.

إذا كان لديك نظام يحتوي على كمية هائلة من ذاكرة الوصول العشوائي (في وقت الكتابة ، فإن 8 جيجا بايت هي كمية ضخمة لتوزيعة لينكس نموذجية) ، فإنك نادرا ما تصل إلى أي موقف تحتاج فيه إلى المبادلة على الإطلاق. يمكنك حتى محاولة تبديل المبادلة. لا أوصي بذلك ، ولكن فقط لأنك لا تعرف أبدًا متى قد ينقذ المزيد من ذاكرة الوصول العشوائي (RAM) من بعض التطبيقات التي تتحطم. ولكن إذا كنت تعرف أنك لن تحتاج إليها ، أنت يستطيع افعلها.

ولكن كيف يمكن تبديل سرعة نظامي؟ لا مبادلة الاشياء البطيئة؟

إن عملية نقل البيانات من ذاكرة الوصول العشوائي إلى المبادلة هي عملية بطيئة ، ولكن يتم أخذها فقط عندما تكون النواة على يقين تام بأن الفائدة العامة سوف تفوق ذلك. على سبيل المثال ، إذا كانت ذاكرة التطبيق الخاصة بك قد ارتفعت إلى الحد الذي لم يتبقى فيه أي ذاكرة تخزين مؤقت ، وكان I / O غير فعال للغاية بسبب ذلك ، يمكنك في الواقع الحصول على مزيد من السرعة خارج النظام الخاص بك عن طريق تحرير بعض الذاكرة ، حتى بعد المصاريف الأولية لتبادل البيانات لتحريرها.

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

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

بمجرد تبادل البيانات ، متى يخرج مرة أخرى؟

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


83
2017-07-04 03:50



+1 للحصول على شرح مفصل. أنا أيضا أحب أن تبقي 2GiB مبادلة على أجهزة الكمبيوتر الخاصة بي. إذا ساء شيء ما - تسرب الذاكرة ، وما إلى ذلك ، يمكنك أن ترى تبادل المبادلة والبحث عن المشكلة قبل نفاد الذاكرة. إنها شبكة أمان بالإضافة إلى أداة أداء. - Joe
على نتبووك بلدي ، الذي لديه 2GB فقط من ذاكرة الوصول العشوائي ، أبقي 4GB من المبادلة. هذا لأنني أستخدم نتبووك أكثر بكثير مما هو مخصص له ، وكثيرا ما تتطلب برامجي أكثر من 2 غيغابايت من الذاكرة. بما أن Linux يتصرف بشكل سيء للغاية في حالات خارج الذاكرة ، أفضل أن يكون لدي شبكة أمان كبيرة. ولدي الكثير من مساحة القرص. - Scott Severance
إذا كانت برامجك تتطلب في كثير من الأحيان أكثر من 2 غيغابايت من الذاكرة ، فسأفكر في استخدام المزيد من ذاكرة الوصول العشوائي (وهي رخيصة جدًا!) لأن استنفاد ذاكرة الوصول العشوائي سيؤذي الأداء. لصالح القراء الآخرين: تأكد من أنك لا تنظر فقط إلى ذاكرة التخزين المؤقت التي هي مفترض إلى خنزير المتاحة RAM - انظر المراجع الأخرى ل free -m. - thomasrutter
neon_overload: يجب أن ألاحظ أنه وفقًا لـ HP ، فإن الحد الأقصى لذاكرة الوصول العشوائي من netbook هو 1 غيغابايت. لديّ الآن 2 غيغابايت هناك ، وتشير مصادر الإنترنت إلى أن 2 غيغابايت هي الحد الأقصى الفعلي. وبالتالي فإن الحاجة إلى هذه الأنواع من الحلول. - Scott Severance
@ thomasrutter: كيف تتغير إجابتك للخوادم الكبيرة ، واحد من الألغام لديه 1 تيرا بايت (نعم تيرابايت كامل واحد) من ذاكرة الوصول العشوائي وما زالت تستخدم المبادلة ؛ ما إعداد swappiness وقسم المبادلة حجم ما ستوصي؟ - chrisinmtown


ضبط قيمة swappiness لا يعمل في كل حالة. إذا كان يعمل للكم، عظيم. إذا لم يكن الأمر كذلك ، فقد قمت بكتابة برنامج نصي لإلغاء الخروج بشكل دوري من خلال إيقاف تشغيله وإعادة تشغيله مرة أخرى.

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

#!/bin/bash

# Make sure that all text is parsed in the same language
export LC_MESSAGES=en_US.UTF-8
export LC_COLLATE=en_US.UTF-8
export LANG=en_US.utf8
export LANGUAGE=en_US:en
export LC_CTYPE=en_US.UTF-8

# Calculate how much memory and swap is free
free_data="$(free)"
mem_data="$(echo "$free_data" | grep 'Mem:')"
free_mem="$(echo "$mem_data" | awk '{print $4}')"
buffers="$(echo "$mem_data" | awk '{print $6}')"
cache="$(echo "$mem_data" | awk '{print $7}')"
total_free=$((free_mem + buffers + cache))
used_swap="$(echo "$free_data" | grep 'Swap:' | awk '{print $3}')"

echo -e "Free memory:\t$total_free kB ($((total_free / 1024)) MB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MB)"

# Do the work
if [[ $used_swap -eq 0 ]]; then
    echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $total_free ]]; then
    echo "Freeing swap..."
    swapoff -a
    swapon -a
else
    echo "Not enough free memory. Exiting."
    exit 1
fi

يجب تشغيل هذا البرنامج النصي كجذر (على سبيل المثال ، مع sudo). لن يترك هذا البرنامج النصي جهازك لا يستجيب ؛ إذا كان لديك ذاكرة وصول عشوائي غير كافية ، فسترفض تبديل التبديل. لقد استخدمت هذا البرنامج النصي دون مشاكل لمدة خمس سنوات حتى الآن.


21
2017-07-04 02:38



+1 للنص البرمجي. قد ترغب في تحديثه قليلاً عن طريق تغيير MB إلى MiB في المخرجات. كتبت نصًا مشابهًا بدون جميع اختبارات السلامة (الجيدة) التي قمت بتضمينها. في دفتر الملاحظات القديم الذي استخدم فيه المقايضة بكثافة ، كان الأمر يستغرق بعض الوقت للتشغيل - دقيقة أو اثنتين ، ولكن لم يؤذي أي شيء. مرة واحدة في لحظة أنها ستفشل لأنه لم يكن هناك ذاكرة حرة كافية لتشغيله ، ولكن هذا لم يسبب أي مشاكل إضافية. اضطررت إلى إعادة تمهيد لمسح الأشياء عندما حدث ذلك. كان عليه أن يفعل مع ما يشبه تسرب الذاكرة في انتقال (منذ ثابتة ، على ما أعتقد) وليس لديها سوى 2 غيغابايت من ذاكرة الوصول العشوائي. - Joe
إذا تم نقل شيء ما لتبديله وتبقى في المبادلة ، فهذا شيء جيد عادة - فهذا يعني أن البيانات لا يتم استخدامها فعليًا ، وقد تم تحرير بعض ذاكرة الوصول العشوائي الخاصة بك لأشياء أخرى ، مما أدى إلى زيادة محتملة في السرعة. ما الذي دفعك إلى الاعتقاد بأن هذه البيانات لا يجب أن تكون مبادلة ويجب أن تستهلك ذاكرة RAM أكثر قيمة؟ عادة ما تكون النواة جيدة في معرفة ما هو غير مستخدَم ، والتي يمكن أن تبقى في تبادل آمن لتحرير ذاكرة الوصول العشوائي. - thomasrutter
neon: ضع في اعتبارك أن الأجهزة الخاصة بي لديها 2 غيغابايت و 3 غيغابايت من ذاكرة الوصول العشوائي ، على التوالي ، وهو قليل جدا في هذه الأيام. الدليل في الأداء. على سبيل المثال ، قد يكون إظهار القوائم أو برامج التبديل بطيئًا بسبب التبادل ، كما يمكن أن يؤدي إلى تكوين تأثيرات visoal. يتم علاج هذا البطء عن طريق تبديل المبادلة ، مما يدل على أن خوارزميات تحسين النواة على الأقل في بعض الحالات تكون دون المستوى الأمثل. لا أستطيع المجادلة بخبرة متكررة. - Scott Severance
تفو !! هذا عزز فقط إلى 0٪ من المقايضة .... لم يكن لدي الكثير من الوقت للنظر في هذا السؤال الكامل وإجابته لكنني فضلت قراءته عندما أحصل على بعض وقت الفراغ. - AzkerM
لماذا لا يمكنك فقط تعيين swappiness إلى قيمة منخفضة؟ يبدو أن هذا هو الشيء نفسه الذي يفعله البرنامج النصي الخاص بك ، ولكن بطريقة أكثر تحكمًا. - jhfrontz


ويبقى تبادل بشكل عام غير مستخدمة في أنظمة "الأيام". في تجربتي ، يتم تحويل العمليات التي تعمل لفترة طويلة دون عمليات مكثفة إلى مبادلة بواسطة linux.
يجعل بعض البرامج المصابة تشغيل بطيئة.
إذا كان لديك الكثير من ذاكرة الوصول العشوائي الحرة ، فيمكنك تبديل التبديل عن طريق تشغيل الأمر:
swapoff -av (انك سوف تحتاج sudo حقوق لذلك.)
إذا لم تعجبك المقايضة ، فيمكنك تشغيلها باستخدام أمر متناسق:
swapon -av (مرة أخرى sudo مطلوب).


4
2018-06-29 22:24



تحويل المبادلة بالكامل هو مبالغة منذ swapiness = 0 يفعل نفس الشيء ، ولكن أكثر أمنا (إذا كنت فعل في نهاية المطاف مع الكثير من الاشياء في الذاكرة ، وسوف رمي شيء في مقايضة). - Brendan Long
BrendanLong نقطة عادلة .. شكرا لتدريس لي. :) - drake01


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

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

إلى جانب الأشياء العادية في الذاكرة ، تستخدم tempfs مساحة المبادلة ، وسوف تبادلي مثل بقية الذاكرة. إذا قمت بتشغيل شيء يتطلب الكثير من قرص مؤقت ، فقد يجبر الصفحات على تبديلها. بمجرد إنشاء ملفات مؤقتة لم يعد من الممكن استخدامها بعد بضع دقائق وهي مرشحة جيدة ليتم نقلها إلى جهاز المبادلة.

في قرصة يمكنك استخدام ملف كجهاز مبادلة. هذا مفيد إذا كنت بحاجة إلى مساحة مبادلة إضافية بشكل مؤقت.


3
2018-06-30 04:02





أنا تحريرها نص سكوت سيفيرانس لمطابقة الإصدارات الأحدث مجانًا والتي تتضمن بالفعل إجمالي مساحة ذاكرة متوفرة.

#!/bin/bash

free_mem="$(free | grep 'Mem:' | awk '{print $7}')"
used_swap="$(free | grep 'Swap:' | awk '{print $3}')"

echo -e "Free memory:\t$free_mem kB ($((free_mem / 1024)) MiB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MiB)"
if [[ $used_swap -eq 0 ]]; then
    echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $free_mem ]]; then
    echo "Freeing swap..."
    sudo swapoff -a
    sudo swapon -a
else
    echo "Not enough free memory. Exiting."
    exit 1
fi

2
2017-10-03 13:37