سؤال

قمنا بالترقية من JBOSS 4 (و JDK 5) إلى JBOSS 5 (و JDK 6). المشكلة هي أن وقت البدء قد انتقل من 1.5 دقيقة (على JBoss 4) إلى أكثر من 4 دقائق.

18:53:35,444 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] Started in 3m:9s:262ms

يبدو أن المكون الذي يأخذ JBoss أطول وقت للتهيئة هو JMX

18:50:41,926 INFO  [LogNotificationListener] Adding notification listener for logging mbean "jboss.system:service=Logging,type=Log4jService" to server org.jboss.mx.server.MBeanServerImpl@1adc122[ defaultDomain='jboss' ]
18:52:38,797 INFO  [JMXConnectorServerService] JMX Connector server: service:jmx:rmi://lharel2/jndi/rmi://lharel2:1090/jmxconnector

من سجل خادم التصحيح ، أحصل على هذه الخطوط في الوقت الإشكالي:

2009-12-18 18:51:00,886 DEBUG [org.jboss.deployment.MappedReferenceMetaDataResolverDeployer] (main) vfsfile:/C:/QC/Views/QCDev/jboss-5.1.0.GA/server/default/deploy/jmx-console.war/ endpoint mappings:
2009-12-18 18:51:00,886 DEBUG [org.jboss.deployment.MappedReferenceMetaDataResolverDeployer] (main) Processing unit=jmx-console.war, structure: jmx-console.war
2009-12-18 18:52:35,209 DEBUG [org.jboss.deployment.OptAnnotationMetaDataDeployer] (main) Deployment is metadata-complete, skipping annotation processing, ejbJarMetaData=null, jbossWebMetaData=org.jboss.metadata.web.spec.Web23MetaData@1f, jbossClientMetaData=null, metaDataCompleteIsDefault=false

لا يوجد EJB في المشروع.

إعدادات الذاكرة هي:

 -Xms128m -Xmx512m -XX:MaxPermSize=256m

هل لديك أي فكرة عن كيفية تحسين وقت بدء JBoss؟

تحديث: حتى الآن لا حظ ، حاولت اقتراح Shreeni (غيرت المسح الضوئي XMLs). لا يعمل الخادم في وضع التصحيح ، لذا فإن اقتراح Micsim ليس ذا صلة

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

المحلول

لقطة في السماء الزرقاء دون مزيد من المعلومات

  • مهلة الشبكة: 1،5 دقيقة من التأخير عند نشر jmx-console.AR قد تشير إلى مهلة الشبكة (على سبيل المثال 3 × 30 ثانية). حاول بدء JBoss وربطها بعنوان IP محدد باستخدام -b وسيطة سطر الأوامر أو jboss.bind.address خاصية النظام. أيضًا ، حاول التأكد من أن إعدادات مضيفك ودقة DNS على نظامك صحيحة.

  • يستخدم JMX أيضًا RMI وقد ترغب في تعيين ملف اسم مضيف خادم RMI كخاصية نظام. في بعض توزيعات Linux ، تواجه RMI مشاكل في البحث عن اسم المضيف الصحيح وقد يحاول jmx-console.war الاتصال بـ "المضيف المحلي الخاطئ". خاصية النظام هي java.rmi.server.hostname

  • تتبع النظام: إذا لم يساعد ذلك ، فقد ترغب في الاستخدام strace لبدء عملية Java ، حتى تتمكن من رؤية النقطة التي يتم فيها تعليق النظام (إذا كان يتم تعليقه حقًا بسبب مهلة الشبكة أو ما شابه ذلك).

نصائح أخرى

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

أسهل طريقة للقيام بذلك هي تعيين -Djboss.server.log.threshold=DEBUG خاصية النظام عندما تبدأ JBoss

لقد واجهت مشكلة مثل هذه ، لكنني وجدت تحسنًا جيدًا من خلال ضبط حجم الكومة الأولي وحد أقصى إلى نفس القيم ، أعني:

 -Xms512m -Xmx512m

مع هذا ، تحسنت من 4 إلى 2 دقيقة وقت البدء.

يمكن أن تكون شكوكك حول JMX-Console مضللة. قد تكون هناك مكونات أخرى تعمل في الخلفية غير ذات صلة بـ JMX-Console. في تجربتي ، واجهنا مشكلة حيث بدا أن ملف حرب صغير يستغرق 3 دقائق للتحميل! كان بريئا. كان الجاني يرجع جزئيًا إلى ملف الأذن به العديد من الحروب والجرار.

على الرغم من أنني لست خبيراً ، أود أن أقترح ما يلي:

  1. حاول رفع التسجيل لتتبع. من خلال القيام بذلك ، شاهدت أحد رجال النشر (eJbDeployer ، على ما أعتقد) مسح الحروب دون داع في إحدى أذنينا. ثم قمت بتعطيل المسح الضوئي لملفات الحرب هذه.
  2. تشغيل Wireshark أثناء بدء التشغيل. اكتشفت أن بعض ملفات الحرب كانت معلقة أثناء انتظار رد من طلب DTD خارجي. كانت مواقع الويب هذه إما غير موجودة الآن أو لن تخدم ملفات DTD بشكل صحيح إلى البرامج المستندة إلى Java. يمكنني تسريعه إما عن طريق وجود المبرمجين يستخدمون ملفات DTD المحلية أو عكس تلك DTDs محليًا ورباه /إلخ /المضيف محليًا.

يمكنك الرجوع إلى هذا حلقة الوصل لتجنب مسح التعليق التوضيحي غير الضروري والذي يمكن أن يؤدي إلى تسريع بدء تشغيل الخادم الخاص بك

نرى http://community.jboss.org/wiki/jboss5xtuningslimming وخاصة الجزء "ضبط".

أنا أستخدم JBOSS 5.1.0 مع جهاز MacBook Pro (2.26 جيجا هرتز 4 جيجا بايت) بدون تطبيقات تبدأ في 54S

15:00:26,449 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 54s:720ms

لقد قمت بتكوين جديد بناءً على "الافتراضي". يشير DataOsurce JMS إلى قاعدة بيانات Postgres بدلاً من "قاعدة بيانات Hypersonic" (في قاعدة بيانات الذاكرة)

أفترض أنك بدأت في وضع التصحيح. يمكن أن يكون هذا الوضع ما يصل إلى 3 مرات أبطأ من الوضع العادي. ولكن قد يكون هناك أيضًا مشكلة عند التبديل من JDK5 إلى JDK6. لقد وجدت هذا الحل هنا على الشبكة:

لقد حللت ذلك. إنها قضية تصحيح الأخطاء. لقد غيرت إعدادات التصحيح الخاصة بي من:

wrapper.java.additional.26=-Xdebug
wrapper.java.additional.27=-Xnoagent
wrapper.java.additional.28=-Djava.compiler=NONE
wrapper.java.additional.27=-Xrunjdwp:transport=dt_socket,address=7199,server=y,suspend=n

إلى:

wrapper.java.additional.26=-Xdebug
wrapper.java.additional.27=-Xrunjdwp:transport=dt_socket,address=7199,server=y,suspend=n

ويصبح JBoss سريعًا مرة أخرى.

أتمنى أن يساعدك هذا.

هل تحتاج إلى تطبيق JMX Console؟ سيكون الشيء العملي هو إلغاء نشره من الخادم ، لا يزال بإمكانك استخدام JConsole أو JVISUALVM لنفس الشيء بشكل أساسي.

  1. قم بإيقاف تشغيل مسح التعليقات التوضيحية والميزات الأخرى التي لا تحتاجها https://community.jboss.org/wiki/JBoss5xtuningsLimming

  2. عندما تبدأ/إيقاف JBoss من Eclipse ، فإنه لا يقوم بتنظيف مجلدات TMP & Work بشكل صحيح. قم بإعداد تكوين أداة خارجي وقم بتشغيل ملف دفعي لحذف كل شيء في مجلدات TMP & Work قبل كل بدء التشغيل.

تمكنت من تسريع تشغيل ملف التعريف "الافتراضي" من 15/20 دقيقة إلى 5 دقائق.

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