كيفية مسح الكاش (Cache) في نظام Linux

تقليص
X
 
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة
  • AboAbdulla

    ابوعبدالله

    • 23 - 12 - 2004
    • 5530
    • السعودية
    • الطيران
    • طيار
    • Saudi Airlin
    • Dakota
    • السلامة الجوية



    • (( قُلْ يَا عِبَادِيَ الَّذِينَ أَسْرَفُوا عَلَى أَنفُسِهِمْ لَا تَقْنَطُوا مِن رَّحْمَةِ اللَّهِ
      إِنَّ اللَّهَ يَغْفِرُ الذُّنُوبَ جَمِيعًا إِنَّهُ هُوَ الْغَفُورُ الرَّحِيمُ ))

      اللهم إني استودعتك قلبي فلا يبقى فيه إلا أنت
      واستودعتك لا إله الا الله فذكرنيها في كل وقت

    #1

    [درس] كيفية مسح الكاش (Cache) في نظام Linux


    🧹 كيفية مسح الكاش (Cache) في نظام Linux
    في هذا الدليل، سنستعرض كيفية مسح أنواع مختلفة من الكاش في لينكس، بما في ذلك:
    • ذاكرة النظام (PageCache)
    • مساحة التبديل (Swap)
    • المخازن المؤقتة (Buffer)

    📌 تعليمات سريعة:
    🧼 لمسح PageCache و dentries و inodes دفعة واحدة:
    كود:
    sync  echo 3  /proc/sys/vm/drop_caches
    🧼 لمسح مساحة Swap:
    كود:
    swapoff -a  swapon -a
    🧾 شرح مفصل:
    ✅ ما هي PageCache؟
    هي ذاكرة تُستخدم لتخزين البيانات التي يتم الوصول إليها كثيرًا من الملفات داخل RAM، مما يُسرّع أداء إدخال/إخراج الملفات.
    ✅ ما هي Dentries؟
    هي سجلات لتخزين أسماء الملفات والمجلدات بشكل مؤقت، مما يُسرّع عملية البحث عن الملفات.
    ✅ ما هي Inodes؟
    هي بنية بيانات تحتوي على معلومات حول الملفات والمجلدات (مثل الحجم، التاريخ، الأذونات)، دون أن تحتوي على الاسم أو المحتوى.
    💡 أوامر مسح الكاش في Linux (تحتاج صلاحيات root):
    الوظيفة
    الأمر
    لمسح PageCache فقط
    كود:
    echo 1  /proc/sys/vm/drop_caches
    لمسح dentries و inodes فقط
    كود:
    echo 2  /proc/sys/vm/drop_caches
    لمسح PageCache + dentries + inodes
    كود:
    echo 3  /proc/sys/vm/drop_caches
    📌 ملاحظة: استخدم
    كود:
    sync
    قبلها لتفريغ البيانات المعلقة في القرص:

    كود:
    sync  echo 3 /proc/sys/vm/drop_caches
    🧊 تفريغ مساحة Swap:
    عندما تمتلئ ذاكرة الوصول العشوائي (RAM)، يبدأ النظام باستخدام Swap. لتفريغها:
    🔻 إيقاف Swap:
    كود:
    swapoff -a
    يُعيد المحتويات الموجودة في Swap إلى RAM.
    🔺 إعادة تشغيل Swap:
    كود:
    swapon -a
    يُفعّل كل ملفات Swap أو الأقسام المذكورة في
    كود:
    /etc/fstab
    💽 Buffer Cache
    في لينكس، Buffer Cache هو مصطلح يُشير أحيانًا إلى PageCache، وهو يُخزن البيانات المستخدمة بكثرة من القرص لتسريع الأداء. لمسحه، استخدم نفس أوامر مسح PageCache الموضحة أعلاه.
    ⚠️ احتياطات مهمة:
    • 🛡️ نسخ احتياطي: تأكد من أخذ نسخة احتياطية من بياناتك المهمة قبل تنفيذ أي عمليات حساسة.
    • 📉 أداء النظام: مسح الكاش قد يؤدي إلى بطء مؤقت، حيث يُعيد النظام تحميل البيانات من جديد.
    • 🧠 افهم ما تقوم به: نظام لينكس يدير الكاش بذكاء، ولا يُنصح بمسحه إلا إذا دعت الحاجة (مثل امتلاء الذاكرة).
    • 📊 راقب الأداء: تحقق من الأداء قبل وبعد المسح باستخدام أدوات مثل
      كود:
      top
      أو
      كود:
      free -h
  • AboAbdulla

    ابوعبدالله

    • 23 - 12 - 2004
    • 5530
    • السعودية
    • الطيران
    • طيار
    • Saudi Airlin
    • Dakota
    • السلامة الجوية



    • (( قُلْ يَا عِبَادِيَ الَّذِينَ أَسْرَفُوا عَلَى أَنفُسِهِمْ لَا تَقْنَطُوا مِن رَّحْمَةِ اللَّهِ
      إِنَّ اللَّهَ يَغْفِرُ الذُّنُوبَ جَمِيعًا إِنَّهُ هُوَ الْغَفُورُ الرَّحِيمُ ))

      اللهم إني استودعتك قلبي فلا يبقى فيه إلا أنت
      واستودعتك لا إله الا الله فذكرنيها في كل وقت

    #2

    كيفية مسح ذاكرة التخزين المؤقت (RAM Cache) في نظام لينكس؟

    يتيح لك نظام لينكس ثلاث طرق لمسح الكاش دون التأثير على العمليات أو الخدمات قيد التشغيل.

    1. مسح PageCache فقط
    لمسح PageCache فقط، يمكنك استخدام الأمر التالي، والذي سيؤدي إلى تحرير الموارد من الذاكرة:
    كود:
    sudo sync; echo 1  /proc/sys/vm/drop_caches
    2. مسح Dentries و Inodes فقط
    لمسح dentries و inodes فقط، استخدم الأمر التالي، حيث يقوم بمزامنة نظام الملفات ثم تحرير كاش الأدلة وبيانات inode:

    كود:
    sudo sync; echo 2 /proc/sys/vm/drop_caches
    3. مسح PageCache و Dentries و Inodes معًا
    لمسح الأنواع الثلاثة معًا (pagecache و dentries و inodes)، استخدم الأمر التالي:
    كود:
    sudo sync; echo 3   /proc/sys/vm/drop_caches
    شرح مكونات الأمر أعلاه:

    كود:
    sudo
    لتنفيذ الأمر بصلاحيات المدير (root): .
    كود:
    sync
    لمزامنة الملفات المفتوحة وكتابة ما تبقى في الذاكرة إلى القرص:
    لفصل الأوامر في نفس السطر:
    كود:
    echo 3 ;  /proc/sys/vm/drop_caches
    يكتب القيمة في الملف :
    كود:
     drop_caches
    لمسح الكاش المطلوب.

    ملاحظات حول ملف :
    drop_caches
    • القيمة 1: لمسح PageCache فقط.
    • القيمة 2: لمسح Dentries و Inodes فقط.
    • القيمة 3: لمسح الأنواع الثلاثة معًا.

    حسب توثيق نواة لينكس، الكتابة إلى drop_caches لا تؤثر على أي عملية أو خدمة قيد التشغيل.

    تنبيه:
    إذا كنت تعمل على بيئة إنتاجية أو خوادم الشركات، فإن استخدام echo 1 هو الخيار الأكثر أمانًا لأنه يمسح PageCache فقط. ولا يُنصح باستخدام
    كود:
     echo 3
    إلا إذا كنت على دراية كاملة بتأثيره، لأنه قد يؤدي إلى تراجع في أداء النظام في البيئات الحساسة.

    كيفية مسح مساحة Swap في لينكس؟
    لمسح مساحة Swap، استخدم الأمر التالي لتعطيل جميع أقسام Swap:
    كود:
    sudo swapoff -a
    ثم أعد تفعيل Swap:
    كود:
    sudo swapon -a
    هل يُنصح بمسح Buffer و Cache و Swap في لينكس؟
    بشكل عام، لا يُنصح بمسح الـ Cache و Buffer يدويًا، لأن نواة لينكس مصممة لإدارة هذه الموارد بكفاءة. المسح اليدوي قد يؤثر سلبًا على الأداء.
    لكن في حالات نادرة، مثل وجود ضغط ذاكرة شديد ولا يمكنك تحرير الذاكرة بطرق أخرى، يمكن القيام بذلك بحذر شديد.
    بنفس الطريقة، لا يُنصح بمسح Swap إلا إذا كان هناك ضرورة واضحة لذلك.

    أتمتة تحسين الذاكرة
    يمكنك استخدام cron job لتحديد جدول زمني لمسح الكاش تلقائيًا.
    افتح ملف المهام المجدولة:
    كود:
    crontab -e
    ثم أضف الأسطر التالية لمسح الكاش والـ swap يوميًا عند منتصف الليل:
    كود:
    0 0 * * * sudo sync; echo 1 /proc/sys/vm/drop_caches
    0 0 * * * sudo sync; echo 2 /proc/sys/vm/drop_caches
    0 0 * * * sudo sync; echo 3 /proc/sys/vm/drop_caches
    0 0 * * * sudo swapoff -a  sudo swapon -a
    هل يُنصح بمسح كاش الذاكرة (RAM Cache) على خادم لينكس إنتاجي؟
    لا، لا يُنصح بذلك إطلاقًا.
    تخيل أنك أعددت سكربت لحذف كاش الذاكرة يوميًا الساعة 2 صباحًا. وفي أحد الأيام، حدث ضغط كبير على الخادم بسبب عدد كبير من الزوار، وفي نفس اللحظة تم تنفيذ السكربت.

    النتيجة؟

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

    الخلاصة
    إدارة الذاكرة الفعالة أمر أساسي لسلاسة عمل نظام لينكس.
    يمكن لمسح الكاش والـ buffer والـ swap في ظروف معينة أن يُحسّن الأداء، لكن يجب معرفة متى وكيف يتم ذلك دون التأثير على النظام.
    إذا أعجبك المقال، شاركنا رأيك وتعليقاتك. أخبرنا كيف تتعامل مع مسح الكاش في بيئة الإنتاج أو الخوادم.

    تعليق

    مواضيع ذات صلة

    تقليص

    يعمل...