سؤال

أخطط للقيام بتفريغ كومة باستخدام أداة JMAP JDK1.5 على مثيل مدونة الإنتاج (10).

في الواقع ، هناك 3 أذن (ربما أكثر ، لا تعرف حقًا أنني لا أحصل على وصول) تم نشرها على مثيل مدونة الويب هذا.

أخبرني أحدهم "WebLogic يخلق JVM لكل أذن" هل يمكن لأحد أن يؤكد ذلك؟

مع JMAP ، أحتاج إلى JVM PID كمعلمة للقيام بتفريغ الكومة ... بما أن لدي 3 أذن أعتقد أن لدي 3 PID لذلك أتساءل كيف أعرف أي PID يتوافق مع أي ear jvm؟

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

المحلول

NOPE - يعمل كل خادم مدونة (أو أي عملية Java) في JVM الخاصة به مع PID الخاص به. لذلك ستظهر كل أذنيك في نفس الكومة.

إذا كان لديك العديد من مثيلات خادم WebLogic تعمل على نفس الجهاز ، فسيحتوي كل منها على PID منفصل وعملية منفصلة

نصائح أخرى

كما يقول josek ، سيكون لديك JVM واحد لكل خادم WebLogic ، لذلك إذا كانت جميع أذنيك تحت نفس خادم Weblogic ، فلديك PID واحد فقط لتفريغه. ولكن قد لا يزال لديك خوادم متعددة - ربما خادم مسؤول وخادم مُدار ، وربما مثيلات أخرى غير ذات صلة - لذلك إذا كنت تفعل شيئًا مثل ps -ef | grep java (أفترض أن هذا على Unix؟) يمكنك رؤية الكثير من PIDs ، حتى لو كان بإمكانك تصفيةه إلى Weblogic الخاص بـ JDK_HOME.

طريقة واحدة لتحديد أي PID ينتمي إلى خادم معين هو الذهاب إلى <domains>/servers/<your server>/tmp الدليل ، وفي الجري هناك fuser -f <your server>.lok. سيؤدي ذلك إلى إدراج PIDs لجميع العمليات المتعلقة بهذا الخادم ، أحدها سيكون عملية JVM Java. (قد يكون الآخرون لـ JDBC وما إلى ذلك) طريقة واحدة للعثور على عملية Java فقط (وأنا متأكد من أن شخصًا ما سيشير إلى طريقة أخرى ، أفضل!) هي شيء مثل:

cd <domains>/servers/<your server>/tmp
ps -p "`fuser -f <your server>.lok 2>/dev/null`" | grep java 

إذا كانت كل أذن في خادمها الخاص ، أعتقد أنه سيتعين عليك النظر في config.xml لمعرفة ما الذي تحتاجه.

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