سؤال

في بدء تشغيل Tomcat الخاص بي ، قمت بتعيين -xms ، -xmx إلى 1 جيجابايت. داخل VisualVM عندما أراقب الذاكرة

  1. عندما أقوم بأخذ عينات من الذاكرة ، فإنه لا يظهر استخدامًا دقيقًا للذاكرة ، حتى ، إذا ضغطت على "لقطة" ، ثم فئات Java التي تستخدم الذاكرة التي تُظهر الأنماط والحالات الصحيحة. لماذا هكذا؟

  2. أيضًا ، عندما قمت بتعيين ذاكرة Tomcat على 1 جيجابايت ، تستمر الذاكرة في زيادة ing zip-Zat وترتفع Aroudn 960 ميجابايت. حتى أضغط على "أداء GC" والعودة إلى 200 ميجابايت ..

  3. هل تعتقد أن هناك حاجة لإنشاء جدولة لإجبار الأداء. gc () على JVM ، Everday في منتصف الليل؟

أي تعليقات من وصفي

VisualVM screenshot

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

المحلول

ما أظن أنك تراه هنا هو أن جامع القمامة المتزامن يقوم بتنظيف الجيل الشاب ، لكن الكومة تتدفق باستمرار حتى لا تتمكن من الحصول على جميع المراجع لمجموعة الجيل القديم. عندما تضغط على زر أداء GC ، فأنت تقوم بمجموعة "إيقاف العالم" الذي يحظر جميع الخيوط ، وتجميد الكومة ، والسماح بحدوث مجموعة أكبر بكثير. مخاوفي الرئيسية هنا ستكون - هل تحدث مجموعة كبيرة من أي وقت مضى (بعد ساعات X)؟ هل ترى أخطاء OutofMemory مع كومة أصغر؟

1) هل تم تشغيل زر التحديث التلقائي؟ قد يكون أيضًا أن Profiler يقوم بعمل GC صغير (Eden Pace) قبل أخذ لقطة.

2) هذا طبيعي تماما. يستغرق جمع القمامة الوقت والموارد (دورات المعالج). إذا قمت بتعيين كومةك على حجم كبير ، فسوف تنتظر حتى تصل إلى بعض النسبة المئوية حتى تسبب مجموعة القمامة نفسها. أعتقد أن نسبة المساحة الحرة الافتراضية إلى الكائنات الحية تتراوح بين 40 ٪ و 70 ٪ وأنا أعلم أن Tomcat غيرت على وجه التحديد طريقة جمع القمامة حول الإصدار 5 ، كان لدى Tomcat V4 مشكلات في الأداء لأنها قضت الكثير من الوقت في تشغيل جامع القمامة. قد ترغب في إجراء بعض الأبحاث هنا ومعرفة ما إذا كان لدى Tomcat خيارات جمع القمامة المخصصة.

3) لا. كومة كاملة تقريبا هي بالضبط ما تسعى إليه. قد يكون من المنطقي جعل الكومة أصغر بحيث لا تستغرق مجموعة القمامة الكاملة وقتًا طويلاً. إنها مفاضلة بين الكثير من مجموعات القمامة (مؤقتة) ومجموعات القمامة المطولة (توقف مؤقتة). كل تطبيق مختلف ، لذلك أبدأ عمومًا بالإعدادات الافتراضية والتعديل حسب الحاجة. هناك الكثير من الخيارات لجمع القمامة (وجامعي البديل) إذا كنت مهتمًا.

جافا 5

جافا 6 التعليمات, ورق ابيض

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