سؤال

على مدار السنوات القليلة الماضية ، رأينا هذه الرسالة بشكل عشوائي في سجلات الإخراج عند تشغيل المهام المجدولة في Coldfusion:

عودة عميقة جدا. فاضلة المكدس.

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

حتى أنه يحتوي على تطبيق فارغ. cfm/cfc لحظر أي رمز آخر يتم استدعاؤه.

المرة الوحيدة الأخرى التي نرى ذلك هي عندما نعيد تشغيل CF ونحن نحاول عرض صفحة قبل بدء الخدمة بالكامل.

نادراً ما يحدث الخطأ ، ولكن لدينا الآن بعض المهام المجدولة الحرجة التي تسبب مشاكل إذا لم يتم تشغيلها. (ومن ثم أنا نشر هنا طلبًا للمساعدة)

استخدام الذاكرة جيد. المهمة التي استمرت قبل أن تبلغ أكثر من 80 ٪ من الذاكرة الحرة. لا تظهر مراقبة الذاكرة خلال الليل أي طفرات خارجية. يحتوي الماكينة على 4 عربات من الذاكرة ولا يوجد شيء آخر يعمل عليها ولكن نظام التشغيل و CF. حاولنا مؤخرًا إعادة تثبيت CF لحل المشكلة ، لكنه لم يساعد. يحدث ذلك على العديد من خوادمنا الأخرى أيضًا.

هذا خادم داخلي ، لذلك يجب أن يكون الاستخدام في الساعة 3 صباحًا غير موجود. لا توجد مهام أخرى مجدولة يتم تشغيلها في ذلك الوقت.

لقد رأينا هذا على صناديق CF7 و CF8 و CF9 (مصححة بالكامل).

المربع الحالي المعني بالأسئلة:

  • إصدار CF: 9،0،1،274733
  • الطبعة: Enterprise
  • OS: خادم Windows 2003
  • إصدار جافا: 1.6.0_17
  • MIN JVM HEAP: 1024
  • Max JVM Heap: 1024
  • MIN PEM SIZE: 64M
  • أقصى حجم بيرم: 384m
  • ذاكرة الخادم: 4 جيجابايت
  • آلة رباعية النواة التي نادراً ما ترى أكثر من 5 ٪ من استخدام وحدة المعالجة المركزية

إعدادات JVM:

-server -dsun.io.usecanoncaches = false -xx: permsize = 64m -xx: maxpermsize = 384m -xx:+useparallegc -xx:+agressionheap -dcoldfusion.rootdir = {application.home}} /../ -dcoldfusion.libpath = {application.home} /../ lib -doracle.jdbc.v8compatible = true

إليكم الكود المعقد المذهل الذي فشل في العمل الليلة الماضية ، لكنه كان يعمل لسنوات ، ومن المرجح أن يعمل غدًا:

<cfquery datasource="common_app">
    update  import_counters
    set current_count = 0
</cfquery>

<cfmail subject="Counters reset" to="my@email.com" from="my@email.com"></cfmail>

إذا فاتني أي شيء أخبرني. شكرًا لك!

هل كانت مفيدة؟

المحلول

لقد واجهنا هذه المشكلة لفترة من الوقت بعد ترقية الخادم الخاص بنا إلى Coldfusion 9. يبدو أن الإصلاح في هذه التقنية من Adobe على Jrun 4: http://kb2.adobe.com/cps/950/950218dc.html

ربما تحتاج إلى إجراء بعض التعديلات على الأذونات كما هو مذكور في التقنية.

نصائح أخرى

هل حاولت تقليل حجم كومةك من 1024 لقول 800 شيء. أنت تقول أن هناك أكثر من 80 ٪ من الذاكرة متاحة ، لذا إذا أمكن ، فإنني سأبحث في الحد من الحد الأقصى.

هل هو نظام التشغيل 32 أو 64 بت؟ عند تعيين مساحة الكومة ، عليك أن تأخذ في الاعتبار كل النفقات العامة لـ JVM (المكدس ، المكتبات ، وما إلى ذلك) حتى لا تتخطى حد نظام التشغيل للعملية.

ما يمكن أن تجربه هو ضبط الحد الأدنى لحجم كومة JVM على نفس حجم كومة JVM الحد الأقصى (MB) مع مسؤول CF الخاص بك.

قم أيضًا بتحديث JVM إلى أحدث (21) أو 20 على الأقل.

في الماضي ، قمت دائمًا بترقية JVM كلما بدأ شيء غشق يحدث لأنه عادة ما يحل المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top