المحتويات

المقدمة

المشكلة

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

الحل

المقدمة

يصف هذا وثيقة الإصدار على جلسة عمل إلى تحذير دولة بسبب عدد كبير من تدفقات HTTP. يتم الإبلاغ عن هذه المشكلة على موجهات الخدمة المجمعة (ASR) 5x00 من Cisco.

المشكلة

حالة Sesmgr هي WARN واستخدام كبير للذاكرة.

******** show task resources *******

Thursday July 24 17:44:58 IST 2014

task   cputime        memory     files      sessions

cpu facility      inst used allc   used  alloc used allc  used  allc S status

----------------------- --------- ------------- --------- ------------- ------

4/0 sessmgr          3  26% 100%  1.86G  1.86G   34  500  1766 28160 I   warn

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

[sessmgr 10018 error] [4/0/6812 <sessmgr:3> sessmgr_func.c:44683] [software internal system syslog] Sessmgr-3 full (35200 effective number of calls, 1777 calllines in use, 51146 free flows, 31221 free aaa_sessions, 1777 used-mem-credits, 1777 used-sess-credits, 1948360 mem-usage, 1945600 mem-limit, 0 ecs-queue-usage, 70400 ecs-queue-limit, 16850 ecs-num-flows, 400000 ecs-max-flows, 2334720 ecs-mem-limit[ecs-flow/mem-values:valid], 0x86 limit-flags) - call rejected

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

التقط عرض إخراج تفاصيل الدعم وفحص مخرج الأمر لاستكشاف الأخطاء وإصلاحها بشكل إضافي.

ترتبط مشكلة الذاكرة بكمية التدفقات التي يعالجها الاختبار. يمكن ملاحظة الارتباط بين الجزء الذي يستهلك ذاكرة كبيرة والكمية الكبيرة من التدفقات.

******** debug acsmgr show memory usage *******

Thursday July 24 17:50:06 IST 2014

------------------------------------------------------------------------------

!                !               Caches Count              !

Instance Memory !      Flows     !   Callline    Data-Session  TCP OOO     !

! Current    Max ! Total   Free  Total   Free  Total   Free!

--------------------------------------------------------------------------------

1 865.68M  43365  64360     5500   1178  56140  12775   1102   1064

2 852.05M  43879  64767     5500   1178  60150  16271   1102   1067

3 1902.68M  17252 276519    4400   2631  44110  26858    551    541

بالنسبة للجلسات المتأثرة (وبالنسبة لواحد غير متأثر)، قم بجمع مخرجات الأوامر هذه، حيث يمثل x مثيل Sesmgr.

show messenger proclet facility sessmgr instance <x> heap

show messenger proclet facility sessmgr instance <x> system heap

task core facility sessmgr instance <x>

show active-charging flows instance <x>

show profile facility sessmgr active depth 8 head 201

show task resources faciltity sessmgr instance <x> max

تحقق مما إذا كانت القواعد غير المحسنة ومجموعة القواعد تستهلك قدرا كبيرا من الذاكرة.

debug acsmgr show rule-optimization-information

debug acsmgr show grp-of-rdef-optimization-information

يرجع أكبر إستهلاك للذاكرة إلى هذه الوظائف القائمة على مخرجات الأمر.

acs_http_pkt_inspection()

acsmgr_alloc_buffer()

snx_add_dbufs()

sn_aaa_alloc_session_block()

sgx_imsa_bind_user()

يمكنك أيضا التحقق من الحد الأقصى لعدد تدفقات HTTP المتزامنة التي يتم الوصول إليها بواسطة بنود المكالمات

******** debug acsmgr show flow-stats max-simultaneous-flows http *******

Thursday July 24 17:50:04 IST 2014

Histogram of Max No of Simultaneous HTTP Flows attained by Calllines

No Of Flows             No Of Calllines

1 to 10                 964712518

11 to 20                384105002

21 to 40                232987189

41 to 100               148938918

101 to 200              115919586

201 to 500              86729303

501 to 1000             69975385

1001 to 2000            59635906

2001 to 5000            50743511

5001 to 10000           44566999

> 10000                 1044671491

******** debug acsmgr show flow-stats cumulative http *******

Thursday July 24 17:50:03 IST 2014

Histogram of Total Cumulative HTTP Flows by Calllines

No Of Flows             No Of Calllines

1 to 10                 964712485

11 to 20                384104980

21 to 40                232987175

41 to 100               148938911

101 to 200              115919583

201 to 500              86729297

501 to 1000             69975377

1001 to 2000            59635907

2001 to 5000            50743509

5001 to 10000           44567004

> 10000                 1044671452

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

الحل

لديك واجهة سطر الأوامر (CLI) لتحديد عدد التدفقات لكل مشترك

flow limit-across-applications

توصي Cisco بتكوين حد التدفق عبر التطبيقات إلى 5000 كما هو موصى به تحت جميع قواعد القواعد المتأثرة حيث يمكن رؤية عدد كبير من حركة مرور HTTP.

هذا هو الإجراء لتكوين الأمر

In local context under Global configuration.

# active-charging service ECS

(config-acs)# rulebase GOLIVE

(config-rule-base)# flow limit-across-applications 5000

مزيد من المعلومات حول هذا الأمر.

إنبجاسا التطبيقات المحدودة عبر

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

المنتج:

مصدر المحتوى الإضافي

امتياز:

مسؤول الأمان، المسؤول

الوضع:

Exec > ACS Configuration> Rulebase Configuration

active-charging service service_name > rulebase rulebase_name

Entering the above command sequence results in the following prompt:

[local]host_name(config-rule-base)#

بناء جملة

flow limit-across-applications { limit | non-tcp limit | tcp limit }no flow limit-across-applications [ non-tcp | tcp ] no

إذا تم تكوينها مسبقا، فاحذف تكوين حد التدفق عبر التطبيقات من قاعدة البيانات الحالية.

إنبجاسا حد أقصى عبر التطبيقات

تحديد الحد الأقصى لعدد التدفقات عبر كافة التطبيقات لقاعدة البيانات.

يجب أن يكون الحد عددا صحيحا من 1 إلى 400000000.

الافتراضي: لا حدود

حد غير بروتوكول TCP

يحدد الحد الأقصى لتدفقات نوع غير TCP.

يجب أن يكون الحد عددا صحيحا من 1 إلى 400000000.

الافتراضي: لا حدود

حد TCP

يحدد الحد الأقصى لتدفقات TCP.

يجب أن يكون الحد عددا صحيحا من 1 إلى 400000000.

الافتراضي: لا حدود

الاستخدام:

أستخدم هذا الأمر للحد من العدد الإجمالي للتدفقات المسموح بها لقاعدة بيانات بغض النظر عن نوع التدفق، أو الحد من التدفقات استنادا إلى البروتوكول—بدون TCP (دون اتصال) أو TCP (موجه نحو الاتصال).

إذا حاول المشترك تجاوز هذه الحدود، فإن النظام يتجاهل حزم التدفق الجديد. تحتوي معالجة الحد هذه للأمر على الجوانب التالية ل UDP و TCP و ICMP وبعض التدفقات المستثناة:

- UDP/ICMP: ينتظر النظام مهلة التدفق قبل تحديث العداد وإزالته من عدد التدفقات.

- بروتوكول TCP: بعد انتهاء تدفق TCP، ينتظر النظام لفترة قصيرة من الوقت لاستيعاب إعادة نقل أي حزمة مفقودة من طرف واحد. تم إنهاء تدفقات TCP، ولكن لا تزال في فترة الانتظار للمهلة معفاة لمعالجة الحد هذا.

- التدفقات المعفاة: يعفي النظام جميع التدفقات الأخرى المحددة باستخدام الأمر limit to flow-type في وضع تكوين إجراء تحميل ACS الذي تم تعيينه على no.

مثال:

يحدد هذا الأمر الحد الأقصى لعدد تدفقات 200000 لقاعدة البيانات:

flow limit-across-applications 200000