لماذا يتعطل Tomcat 5.5 (مع Java 1.4، الذي يعمل على نظام التشغيل Windows XP 32 بت) فجأة؟

StackOverflow https://stackoverflow.com/questions/66104

  •  09-06-2019
  •  | 
  •  

سؤال

لقد قمت بتشغيل Tomcat 5.5 مع Java 1.4 لفترة من الوقت باستخدام تطبيق ويب ضخم.يعمل بشكل جيد في معظم الأوقات، ولكن في بعض الأحيان سيتوقف عن العمل، دون إنشاء أي استثناء، ولا توجد طريقة واضحة لتشغيله مرة أخرى بخلاف إعادة تشغيل Tomcat.يُسمح لمثيل Tomcat بجيجابايت من الذاكرة على الكومة، ولكن نادرًا ما يتجاوز 300 ميجابايت.هل واجه أي شخص آخر هذه المشكلة، وهل هناك حل لها؟

للتوضيح:لقد حددت مقدار الذاكرة التي يستخدمها عبر إدارة المهام وعبر Eclipse (لقد حاولت أيضًا تشغيله خارج Eclipse، لكني واجهت نفس المشكلة في النهاية، على الرغم من أن الأمر يستغرق وقتًا أطول قليلاً).باستخدام Eclipse، ألقي نظرة على الذاكرة المخصصة عبر جزء الذاكرة الصغير (الاختياري) والمبلغ المخصص لـ javaw.exe عبر مدير المهام.يمكنني استخدام sysdeo؟البرنامج المساعد Tomcat لـ Eclipse.

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

المحلول

لأي عملية JVM، فرض تفريغ مؤشر الترابط.في نظام التشغيل Windows، يمكن القيام بذلك باستخدام CTRL-break، على ما أعتقد، في نافذة وحدة التحكم.

في *nix، يكون دائمًا تقريبًا "kill -3 jvm-pid".

قد يظهر هذا ما إذا كان لديك سلاسل رسائل تنتظر تجمع اتصال/تجمع مؤشرات الترابط بقاعدة بيانات، وما إلى ذلك.

شيء آخر يجب التحقق منه هو عدد الاتصالات التي لديك حاليًا بـ JVM - إما استخدام الأداة المساعدة NETSTAT أو SysInternals مثل tcpconn/tcpview (ابحث عنها في Google).

حاول أيضًا التشغيل باستخدام العلامة المطوَّلة: gc JVM.بالنسبة لـ Sun's JVM، قم بتشغيل مثل "java -verbose:gc".سيُظهر هذا مجموعات القمامة الخاصة بك.إذا كان يجمع الكثير (المجموعات الكاملة، خاصة) فمن المحتمل أن يكون لديك تسرب للذاكرة.المجموعات الكاملة مكلفة، خاصة على أكوام كبيرة من هذا القبيل.

كيف تحدد أنه تم استخدام 300 ميجابايت فقط؟

نصائح أخرى

يبدو أنك وصلت إلى طريق مسدود.

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

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

حاول زيادة حساسية التسجيل لخادم تطبيق Tomcat.http://tomcat.apache.org/tomcat-5.5-doc/logging.html

يمكنك زيادة الحساسية لـ FINEST أو ALL لمعظمها لبضعة أيام ومعرفة ما إذا كان ذلك يساعدك في التقاط أي شيء.

أوافق على إنشاء مقالب سلاسل رسائل متعددة وعرضها من خلال ما يلي: محلل تفريغ الموضوع

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