المحتويات

المقدمة

معلومات أساسية

استكشاف الأخطاء وإصلاحها

تحديد التطبيق المسؤول عن التسريب

كمبيوتر مخصص فك الترميز

التحقيق في إحصائيات ذاكرة MallocLite

تعطيل MallocLite

المقدمة

يصف هذا وثيقة كيف أن يتحرى تسريبات ذاكرة MallocLite على cisco ios ®برمجية منصة.

كما يحدد المعلومات التي يجب عليك تجميعها قبل فتح حالة مركز المساعدة التقنية (TAC) من Cisco أو إعادة تحميل الجهاز. قم بجمع المخرجات المذكورة في هذا المستند، وإرفاقها في حالة مركز المساعدة الفنية من أجل المساعدة في تسريع حل المشكلة.

معلومات أساسية

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

كل رأس كتلة ذاكرة يأخذ نحو 48 بايت من الذاكرة، والقطعة الأصغر تأخذ حوالي 24 بايت. باستخدام نهج تقليدي في برنامج Cisco IOS Software لكل عملية تخصيص، يمكنك إستهلاك 72 (48 + 24) بايت على الأقل من الذاكرة، حتى إذا كنت بحاجة إلى تخصيص 8 بايت فقط من البيانات الفعلية.

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

إنها مسؤولية التطبيقات التي تستخدم ذاكرة MallocLite لتحريرها بشكل صحيح. MallocLite يقنع مستخدم الذاكرة.

استكشاف الأخطاء وإصلاحها

ملاحظة: يدعم Cisco CLI Analyzer (محلل واجهة سطر الأوامر من Cisco) (للعملاء المسجلين فقط) أوامر show معينة. استخدم Cisco CLI Analyzer (محلل واجهة سطر الأوامر من Cisco) لعرض تحليل لمُخرَج الأمر show.

تحديد التطبيق المسؤول عن التسريب

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

يوضح هذا المثال أن عملية *MallocLite* تحتوي على كمية غير عادية من الذاكرة:

#show processes memory sorted

Processor Pool Total:  1614282720  Used:  1544726580  Free:   69556140

I/O Pool Total:  313524224   Used:  115564032   Free:  197960192

PID TTY  Allocated      Freed    Holding    Getbufs    Retbufs Process

0   0          0          0  1476043512         0          0 *MallocLite*

يتعين عليك تحديد التطبيق المسؤول عن التسريب بشكل دقيق. هناك ثلاث طرق تعريف ممكنة وهي:

- كمبيوتر مخصص فك الترميز.

- التحقيق في إحصائيات ذاكرة MallocLite.

- تعطيل MallocLite.

كمبيوتر مخصص فك الترميز

حتى مع تشغيل MallocLite، يمكنك عادة أن ترى أي وظيفة طلب للذاكرة. قد تظهر المخرجات من الأمر show memory allocate-process قيم كمبيوتر مختلفة على الرغم من أن الاسم الذي تم الإعلام عنه هو MallocLite:

#show memory allocating-process totals

<snip>

Allocator PC Summary for: Processor

Displayed first 2048 Allocator PCs only

PC          Total   Count  Name

0x620BE3C4   42807572     594  MallocLite

0x620ADDD4   13597308     193  MallocLite

0x60738BB0    8909824     122  MallocLite

0x620AE0E0    2060716      31  MallocLite

0x620AE10C    1982780      30  MallocLite

يستطيع مهندس Cisco TAC فك ترميز قيم PC من أعلى القائمة (بأعلى إجمالي). يساعد ذلك في التعرف على التطبيق الذي يحتوي على تسريب للذاكرة.

التحقيق في إحصائيات ذاكرة MallocLite

من بين التحسينات التي تمت إضافتها في الإصدار 15.1T من البرنامج Cisco IOS Software واجهة سطر الأوامر (CLI) جديدة تعرض ملخص الذاكرة MallocLite التي تم تخصيصها بواسطة كل جهاز كمبيوتر. يمكن أن يساعدك أمر show memory lite-chunks على تحديد التطبيقات التي تستخدم كمية كبيرة من كتل MallocLite.

show memory lite-chunks { statistics | totals } { summary { pool | { all | pool } } }

ارجع إلى مرجع الأوامر للحصول على تفاصيل الأمر show memory lite-chunks.

CLI   : show memory lite-chunks totals

DESC  : Summary of all pools, based on alloc pc.

This cli can be used to find the alloc_pc which is using large amount memory

allocated from all mlite pools

CLI   : show memory lite-chunks statistics

DESC  : Displays number of allocated & free mlite chunks

CLI   : show memory lite-chunks summary pool pool

DESC  : Show summary of particular mlite pool

This cli can be used to find the alloc_pc which is using large amount of memory

in individual mlite pool

CLI   : show memory lite-chunks summary pool all

DESC  : Show individual summary of all mlite pools

CLI   : show memory lite-chunks pool pool

DESC  : Show All chunk elements in the specified pool

CLI   : show memory lite-chunks pool all

DESC  : show all chunk elements in all mlite pools

وتتضمن أمثلة المخرجات من هذا الأمر:

#show memory lite-chunks ?

pool        Malloc lite pool

statistics  Malloc lite statistics

summary     Malloc Lite summary

totals      Malloc Lite Allocating totals

#show memory lite-chunks statistics

Pool       Inuse       Free

8-Bytes         140       1904

20-Bytes         173       1313

44-Bytes         171        791

68-Bytes          24        687

96-Bytes          26        519

128-Bytes          20        410

#show memory lite-chunks totals

PC         Total       Count

26067AE0          2112          33

2269E68C          1932          29

2269FACC          1664          29

2269F964          1664          26

2269FA9C          1580          29

26067FB4          1360          34

23CD2A0C          1036           7

#show memory lite-chunks pool ?

128-Bytes  128 bytes pool

20-Bytes   20 bytes pool

44-Bytes   44 bytes pool

68-Bytes   68 bytes pool

8-Bytes    8 bytes pool

96-Bytes   96 bytes pool

all        all pools

#show memory lite-chunks summary pool 8

8 bytes pool

PC         Total       Count

2269FB10           812          29

23612084           700          25

2269F9F8           700          25

2269F9EC           700          25

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

تعطيل MallocLite

مكنت السمة MallocLite افتراضيا. من أجل التحقيق في تسريب MallocLite، يمكنك تعطيل MallocLite:

(config)#no memory lite

ستبقى الذاكرة المسربة تحت MallocLite حتى إعادة التحميل التالية، ومع ذلك، يمكنك بدء مراقبة التسريبات الإضافية باستخدام show process memory ted وإظهار أوامر تخصيص الذاكرة لإجماليات العملية. وسوف تظهر التسريبات الآن ضمن العملية الحقيقية.

إن يركض الأداة منخفض جدا على ذاكرة، أنت ينبغي أنقذت التشكيل وأعدت الأداة in order to أطلقت الذاكرة:

#wr

#reload

قد تستنفد الذاكرة مرة أخرى مع مرور الوقت، لذلك أستخدم أوامر show process memory التي تم فرزها وshow memory assign-process لمراقبة إستخدام الذاكرة من تلك النقطة للأمام.

ملاحظة: إذا قمت بتعطيل MallocLite بشكل فعال باستخدام الأمر no memory lite وإعادة تحميل الجهاز، فإن الإخراج من الأمر show memory lite-chunks سيكون فارغا.

ارجع إلى مرجع الأوامر للحصول على تفاصيل الأمر memory lite.