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

How Clear Cache Linux



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

كيف تعمل ذاكرة التخزين المؤقت لنظام ملفات Linux

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







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



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



استخدام الأمر المجاني لعرض استخدام ذاكرة التخزين المؤقت

يمكننا استخدام الأمر المجاني من سطر الأوامر لتحليل ذاكرة النظام ومقدار الذاكرة المخصصة للتخزين المؤقت. انظر الأمر أدناه:





#مجانا م

ما نراه من مجانا الأمر أعلاه هو أن هناك 7.5 غيغابايت من ذاكرة الوصول العشوائي على هذا النظام. من هذا يتم استخدام 209 ميغا بايت فقط و 6.5 ميغا بايت مجانية. يتم استخدام 667 ميغا بايت في ذاكرة التخزين المؤقت. لنحاول الآن زيادة هذا الرقم عن طريق تشغيل أمر لإنشاء ملف بحجم 1 غيغابايت وقراءة الملف. سينشئ الأمر أدناه ما يقرب من 100 ميجابايت من البيانات العشوائية ثم يقوم بإلحاق 10 نسخ من الملف معًا في نسخة واحدة ملف كبير .



# dd if = / dev / random of = / root / data_file count = 1400000
# لـ i في `seq 1 10` ؛ هل صدى $ i؛ cat data_file >> large_file؛ انتهى

الآن سوف نتأكد من قراءة ملف Gig هذا ثم التحقق من الأمر المجاني مرة أخرى:

# cat large_file> / dev / null
# مجاني -m

يمكننا أن نرى أن استخدام ذاكرة التخزين المؤقت قد ارتفع من 667 إلى 1735 ميغا بايت بزيادة 1 جيجا بايت تقريبًا في استخدام ذاكرة التخزين المؤقت.

الأمر Proc Sys VM Drop Caches

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

# echo 1> / proc / sys / vm / drop_caches
# مجاني -m

يمكننا أن نرى أعلاه أن غالبية تخصيص ذاكرة التخزين المؤقت تم تحريرها باستخدام هذا الأمر.

التحقق التجريبي من أن إسقاط ذاكرة التخزين المؤقت يعمل

هل يمكننا التحقق من أداء استخدام ذاكرة التخزين المؤقت لقراءة الملف؟ دعنا نقرأ الملف ونكتبه مرة أخرى إلى / dev / null لاختبار المدة التي تستغرقها قراءة الملف من القرص. سنقوم به مع الوقت مع زمن أمر. نقوم بهذا الأمر فورًا بعد مسح ذاكرة التخزين المؤقت بالأوامر أعلاه.

استغرق الأمر 8.4 ثانية لقراءة الملف. دعنا نقرأها مرة أخرى الآن بعد أن كان الملف يجب أن يكون في ذاكرة التخزين المؤقت لنظام الملفات ونرى الوقت الذي يستغرقه الآن.

فقاعة! استغرق الأمر 0.2 ثانية فقط مقارنة بـ 8.4 ثانية لقراءته عندما لا يتم تخزين الملف مؤقتًا. للتحقق ، دعونا نكرر هذا مرة أخرى عن طريق مسح ذاكرة التخزين المؤقت أولاً ثم قراءة الملف مرتين.

عملت بشكل مثالي كما هو متوقع. 8.5 ثانية للقراءة غير المخزنة مؤقتًا و 0.2 ثانية للقراءة المخبأة.

استنتاج

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