كيف يمكنك حل مشكلة "عدد كبير جدًا من الملفات المفتوحة" في هدسون؟

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

سؤال

نحن نستخدم هدسون كنظام تكامل مستمر لتنفيذ عمليات إنشاء تلقائية (ليلًا واستنادًا إلى استطلاعات CVS) للعديد من مشاريعنا.

تقوم بعض المشاريع باستقصاء CVS كل 15 دقيقة، والبعض الآخر يستطلع كل 5 دقائق، والبعض الآخر يستطلع كل ساعة.

سنحصل كل بضعة أسابيع على إصدار يفشل بالنتيجة التالية:

FATAL: java.io.IOException: Too many open files
java.io.IOException: java.io.IOException: Too many open files
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)

يعمل الإصدار التالي دائمًا (مع 0 تغييرات) لذلك قمنا دائمًا بتصنيفه إلى وظيفتي بناء يتم تشغيلهما في نفس الوقت ويحدث أن يكون هناك عدد كبير جدًا من الملفات مفتوحة أثناء العملية.

في نهاية هذا الأسبوع، واجهنا فشلًا في البناء ليلة الجمعة (الإنشاء الليلي التلقائي) مع الرسالة، كما فشل كل إنشاء ليلي آخر.بطريقة ما دفع هذا هدسون إلى بناء كل مشروع يفشل بشكل مستمر حتى يتم حل المشكلة.أدى ذلك إلى إنشاء كل 30 دقيقة أو نحو ذلك لكل مشروع حتى وقت ما من ليلة السبت عندما اختفت المشكلة بطريقة سحرية.

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

المحلول

هذا هو هدسون العدد 715 (http://issues.hudson-ci.org/browse/HUDSON-715).التوصية الحالية هي تعيين "الحد الأقصى لعدد مؤشرات ترابط الاستقصاء المتزامنة" للحفاظ على نشاط الاستقصاء منخفضًا.

نصائح أخرى

يرى https://wiki.jenkins-ci.org/display/JENKINS/I%27m+getting+too+many+open+files+error لما نحتاجه منك لإصلاح هذا النوع من المشاكل.

هل تريد تغيير حدود النظام للحد الأقصى لواصفات الملفات المفتوحة لكل عملية؟كما في ulimit -n لعملية جافا؟

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

إحدى المشكلات الأكثر شيوعًا التي تسبب "عدد كبير جدًا من الملفات المفتوحة" هي تمكين مكون Active Directory الإضافي وتكوينه في Jenkins.هناك مشكلات معروفة في هذا المكون الإضافي والتي تتسبب في ظهور عدد هائل من سلاسل الرسائل وخطأ "عدد كبير جدًا من الملفات المفتوحة" في السجلات أيضًا.بعد تعطيله والتحول إلى مصادقة LDAP، لم أواجه تعليق Jenkins بعد الآن.

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