المقدمة
يصف هذا المستند إجراء أستكشاف أخطاء إستخدام الذاكرة المتبادلة العالية وإصلاحها باستخدام ميزة التحكم في الوصول إلى نهج Cisco (CPS).
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
ملاحظة: توصي Cisco بأن يكون لديك حق الوصول إلى جذر الامتياز إلى واجهة سطر الأوامر (CLI) ل CPS.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
- CPS 20.2
- نظام الحوسبة الموحدة (UCS)-B
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
معلومات أساسية
يتم إستخدام مساحة التبادل في Linux عندما يكون مقدار الذاكرة الفعلية (ذاكرة الوصول العشوائي (RAM)) ممتلئا. إذا كان النظام بحاجة إلى مزيد من موارد الذاكرة وكانت ذاكرة الوصول العشوائي (RAM) ممتلئة، فسيتم نقل الصفحات غير النشطة في الذاكرة إلى مساحة التبديل. وفي حين يمكن أن تساعد المساحة المتبادلة الأجهزة التي تحتوي على مقدار صغير من ذاكرة الوصول العشوائي RAM، إلا أنه يجب ألا تعتبر بديلا عن المزيد من ذاكرة الوصول العشوائي RAM. توجد مساحة التبديل على محركات الأقراص الثابتة، التي تتميز بوقت وصول أقل من الذاكرة الفعلية. يمكن أن تكون مساحة التبديل عبارة عن قسم مبادل مخصص (مستحسن) أو ملف مبدل أو مجموعة من أقسام المبادلة والملفات المتبادلة.
وفي السنوات الماضية، زادت المساحة الموصى بها للتبادل بشكل خطي مع وجود قدر من ذاكرة الوصول العشوائي في النظام. لكن الانظمة العصرية غالبا ما تشمل مئات غيغابايت من ذاكرة رام. ونتيجة لذلك، تعتبر مساحة التبادل الموصى بها وظيفة لحمل عمل ذاكرة النظام، وليس ذاكرة النظام.
تبديل الذاكرة هي طريقة لاستصلاح الذاكرة حيث يتم تبديل محتويات الذاكرة غير المستخدمة حاليا إلى قرص لتوفير الذاكرة لتطبيقات أو عمليات أخرى. يتم نسخ الحالة أو "الصفحة" الدقيقة للذاكرة إلى القرص لتجعل البيانات متصلة وسهلة الاستعادة لاحقا.
ومثلما هو الحال مع الذاكرة الظاهرية، فإن مساحة التبديل هي ذاكرة ثانوية. ويتم إستخدامه بواسطة نظام التشغيل (OS) في حالة عدم توفر ذاكرة فعلية لتنفيذ العمليات بشكل إضافي. إذا واجه نظام التشغيل مشكلة عند إحتياجه إلى الذاكرة، وكانت ذاكرة الوصول العشوائي (RAM) ممتلئة، فإنه ينقل الصفحات غير النشطة من ذاكرة الوصول العشوائي (RAM) لتبديل الذاكرة.
للتحقق من توفر مساحة التبادل الحر في جهازك، يمكنك إستخدام الأمر "حر".
[root@dc1-qns01 ~]# free -m
total used free shared buff/cache available
Mem: 15876 4918 7750 792 3207 9987
Swap: 4095 0 4095
[root@dc1-qns01 ~]#
المشكلة
تكون النسبة المئوية الأعلى لاستخدام التبديل طبيعية عندما تقوم الوحدات المزودة بالاستخدام المكثف للقرص. يجب أن يكون الاستخدام المرتفع لتبديل الكابلات علامة على أن النظام يعاني من ضغط الذاكرة.
يتم إنشاء هذا التنبيه عندما تكون ذاكرة التبادل المتوفرة على الجهاز الظاهري (VM) أقل من قيمة الحد الذي تم تكوينه.
كما تتم ملاحظة إستخدام ذاكرة قابلة للتبديل بشكل كبير على الجهاز الظاهري VM ل PCRFCLIENT01 في نطاق حدث مرونة النظام. فشل التشخيصات بعد تشغيل Diagnostic.sh نتيجة مشكلة في الذاكرة المتبادلة المنخفضة في VM الخاص ب pcrfclient.
Checking swap space for all VMs...
Checking swap memory usage on pcrfclient01...[FAIL]
Swap usage is 1835 MB. This will likely lead to a slowdown in your system!
Please ensure your memory is provisioned properly.
If systems memory usage is no longer high, you can reset swap with: swap2ram.sh
الشرط: فشل التشخيصات بعد تشغيل Diagnostic.sh بسبب مشكلة في ذاكرة التبادل المنخفضة في VM الخاص ب pcrfclient.
إجراء حل مشاكل إستخدام الذاكرة المتبادلة العالية مع CPS
الاقتراب 1.
يتم ملاحظة حل لاستخدام الذاكرة المتبادلة العالية على VM pcrfclient01 في وقت حدوث مرونة.
1. سجل الدخول إلى الجهاز الظاهري VM الخاص ب pcrfclient وفحص ذاكرة القرص باستخدام du -sh * الأمر.
2. راجع الدليل للتحقق من/var/lib/carbon/whisper/cisco/quantum إستخدام الذاكرة. في حالة ملاحظة زيادة في إستخدام الذاكرة، فإن المشكلة ترجع إلى ملفات الإحصائيات.
3. لاسترداد الذاكرة، احذف ملفات الإحصائيات (.wsp) أو قم بزيادة ذاكرة قرص VM.
4. لاسترداد الذاكرة، احذف الإحصائيات يدويا من المجلد، /var/lib/carbon/whisper/cisco/quantum أو احذف الإحصائيات باستخدام الخطوات التالية:
- قم بتشغيل
df –h الأمر ولاحظ مساحات القرص لأسفل.
- قم بتشغيل هذه الأوامر:
#du -h --max-depth=0 /var/lib/carbon/whisper/cisco/quantum/qps
#monit stop grafana-server
#monit stop carbon-cache
#vi /etc/carbon/storage-schemas.conf
- قم بتحديث فترة الاستبقاء (من 90 يوما إلى 30 يوما) الموجودة في نهاية الملف. يؤدي هذا إلى فترة استبقاء أكثر عدوانية.
الأقدم - عمليات الحجز: 10:1d،60s:90d
تحديث إلى - عمليات الحجز: 10:10:1d،60s:30d
- بعد تحديث فترة الاستبقاء، قم بتشغيل هذه الأوامر:
#monit start carbon-cache
#monit start grafana-server
ملاحظة: بدلا من ذلك، يمكنك إستخدام systmctl start/stop/restart الأمر بدلا من monit start/stop/restart الأمر.
- قم بإنشاء ملف باسم resize.sh وأضف ما يلي.
#monit stop carbon-cache
#cd /var/lib/carbon/whisper/cisco/quantum/qps
#find ./ -type f -name '*.wsp' -exec whisper-resize --nobackup {} $1 \;
#chown -R carbon:carbon *
#monit start carbon-cache
#monit restart grafana-server
- قم بإضافة الأذونات الضرورية باستخدام
chmod 777 resize.sh الأمر.
- التشغيل
./resize.sh "updated_retention_value"
نموذج أمر: #./resize.sh "10s:1d 60s:30d"
- بمجرد اكتمال البرنامج النصي، قم بتشغيل هذه الأوامر لتأكيد تقليل مقدار البيانات بالمقارنة مع النتيجة السابقة والحالية.
#run df –h: disk space should reduce or less than previous result
#du -h --max-depth=0 /var/lib/carbon/whisper/cisco/quantum/qps
- تأكد من أن Grafana يعرض آخر 30 يوم إحصائيات وليس أكثر من 30 يوم. (فترة الاستبقاء المحدثة هي 30 يوما).
الاقتراب 2.
توصية عامة لحل مشكلة إستخدام الذاكرة المتبادلة الكبيرة.
لمسح ذاكرة التبادل على النظام الخاص بك، تحتاج ببساطة إلى إجراء دورة حول المبادلة. وهذا يعمل على نقل جميع البيانات من الذاكرة المتبادلة إلى ذاكرة الوصول العشوائي (RAM) مرة أخرى. وهذا يعني أيضا أنك بحاجة إلى التأكد من وجود ذاكرة الوصول العشوائي (RAM) لديك لدعم هذه العملية. هناك طريقة سهلة للقيام بذلك وهي التشغيلfree -m لمعرفة ما يتم إستخدامه في المبادلة وفي ذاكرة الوصول العشوائي (RAM). بمجرد إيقاف تشغيله، يمكنك الانتظار لفترة زمنية عشوائية (30 ثانية أو نحو ذلك) لمنح العملية الوقت الكافي لإكمالها، ثم قم بتشغيل التبديل مرة أخرى. يعمل هذا على مسح ذاكرة التخزين المؤقت لتبديل الذاكرة وإعادة تمكينها. فيما يلي جميع الأوامر التي تحتاج إليها.
1. التحقق من إستخدام مساحة التبادل: # free -m
2. تعطيل المبادلة: # swapoff -a
انتظار حوالي 30 ثانية. تشغيل free -m لمعرفة مقدار تقليل التبادل المستخدم/المتاح مع مرور الوقت.
3. تمكين التبادل:# swapon -a