عمق التقنية
عمق التقنية » لينكس — Linux » كيفية مسح ذاكرة التخزين المؤقت و Swap Space في نظام التشغيل لينكس

كيفية مسح ذاكرة التخزين المؤقت و Swap Space في نظام التشغيل لينكس

مثل أي نظام تشغيل آخر، قام GNU / Linux بتطبيق إدارة الذاكرة بكفاءة وحتى أكثر من ذلك، ولكن إذا كانت هناك أي عملية تستهلك ذاكرتك وتريد مسحها، فإن Linux يوفر طريقة لمسح ذاكرة التخزين المؤقت أو مسحها.

كيفية مسح ذاكرة التخزين المؤقت في Linux؟

يحتوي كل نظام Linux على ثلاثة خيارات لمسح ذاكرة التخزين المؤقت دون مقاطعة أي عمليات أو خدمات:

1. امسح PageCache فقط

# sync; echo 1 > /proc/sys/vm/drop_caches

2. امسح dentries و inodes

# sync; echo 2 > /proc/sys/vm/drop_caches

3. امسح PageCache و dentry و inodes

# sync; echo 3 > /proc/sys/vm/drop_caches 

هل من الجيد تحرير Buffer و Cache في Linux والتي يمكن استخدامها بواسطة Linux Kernel؟

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

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

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

سنقوم الآن بإنشاء برنامج نصي shell لمسح ذاكرة التخزين المؤقت تلقائيًا في ذاكرة الوصول العشوائي يوميًا الساعة 2 صباحًا عبر مهمة جدولة cron. قم بإنشاء برنامج shell script clearcache.sh وأضف الأسطر التالية.

إنشاء برنامج نصي shell لمسح ذاكرة التخزين المؤقت تلقائيًا

#!/bin/bash
# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"
echo "echo 3 > /proc/sys/vm/drop_caches"

قم بتعيين إذن التنفيذ على ملف clearcache.sh.

# chmod 755 clearcache.sh

يمكنك الآن استدعاء البرنامج النصي كلما احتجت إلى مسح ذاكرة التخزين المؤقت للذاكرة العشوائية.

الآن قم بتعيين cron لمسح ذاكرة التخزين المؤقت RAM كل يوم في الساعة 2 صباحًا. افتح crontab للتحرير.

# crontab -e

قم بإلحاق السطر أدناه واحفظه واخرج لتشغيله في الساعة 2 صباحًا يوميًا.

0  2  *  *  *  /path/to/clearcache.sh

هل من الجيد مسح ذاكرة التخزين المؤقت ذاكرة الوصول العشوائي تلقائيًا على خادم ؟

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

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

كيفية مسح Swap Space في Linux؟

إذا كنت ترغب في مسح مساحة Swap، فقد ترغب في تشغيل الأمر أدناه.

# swapoff -a && swapon -a

يمكنك أيضًا إضافة الأمر أعلاه إلى برنامج cron النصي أعلاه، بعد فهم جميع المخاطر المرتبطة به.

سنقوم الآن بدمج كلا الأمرين أعلاه في أمر واحد لعمل برنامج نصي مناسب لمسح ذاكرة التخزين المؤقت RAM و Swap Space.

# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'

OR

$ su -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'" root

بعد اختبار كلا الأمرين أعلاه ، سنقوم بتشغيل الأمر ” free -h ” قبل وبعد تشغيل البرنامج النصي وسنتحقق من ذاكرة التخزين المؤقت.

سفيان عابد

خبير متمرس بالحاسب الالي, مصمم تجربة الاستخدام وواجهات الاستخدام ومطور مواقع ومهندس ادارة السيرفرات. اسعى من خلال الكتابة على هذه المدونة الى وضع دروس وشروحات تقنية وحلول مشاكل فنية, لمساعدتكم في الاستفادة من التقنية باقصى مالديك.

اضافة تعليق

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.