الأصول التقنية

تعليمات مفتوحة المصدر: ما هو كود الخروج 137 ، وهل يمكنك إصلاحه؟

تعليمات مفتوحة المصدر: ما هو كود الخروج 137 ، وهل يمكنك إصلاحه؟

المصدر المفتوح

يتم تشغيل كود الخروج 137 عند وجود جراب أو حاوية في بيئة Kubernetes الخاصة بك يتجاوز حجم الذاكرة المخصصة لهم. عادةً ما يكون رمز الخروج هذا مصحوبًا أو يُعرف ببساطة باسم OOMKilled. يشير القتل في هذا الوصف إلى نتيجة هذا الخطأ ، الذي يتسبب في إنهاء الكبسولة.

يرمز الاختصار OOM إلى نفاد الذاكرة ، والذي ينتج عن دفع جراب يتجاوز حد الذاكرة الذي تم تعيينه. إذا لم تكن متأكدًا من سبب إنهاء جرابك ، فإن إحدى أسهل طرق اكتشاف ذلك هي تشغيل أمر “kubectl get pods” ، والذي سيقوم بعد ذلك باستدعاء تحديث الحالة على جراب معين. ضمن هذا ، ستجد بعد ذلك OOMKilled ، والتي ستنبهك إلى حقيقة أنه تم تشغيل رمز الخروج 137.

من أين يأتي OOMKilled؟

في حين أن OOMKilled هي استجابة من المحتمل أن تراها في بيئة Kubernetes الخاصة بك ، فهي ليست في الواقع أصيلة لهذا النظام. في الواقع ، إنه ملف السمة المركزية لبرمجة Linux التي تم ترحيلها إلى Kubernetes للمساعدة في تسهيل هذا النظام. داخل Linux Kernel ، يُعرف OOMKilled باسم OOM Killer ، حيث يقدم نفس التحذير والاستجابة كما هو الحال في Kubernetes.

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

ما هي أسباب OOMKilled؟

إذا كان النظام البيئي Kubernetes الخاص بك يعود بـ “تم الخروج برمز 137‘، فمن المحتمل أنك تواجه مشكلة في الذاكرة داخل هذا النظام. في حين أن هذه قد تكون مشكلة محبطة ، فهي ليست نهاية العالم لأن هذا مصدر قلق سهل إلى حد ما يتم معالجته.

عادة ، هناك عدد قليل من الأسباب الأساسية لـ OOMKilled داخل بيئة Kubernetes:

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

نظرًا لأن هذا خطأ مستند إلى الذاكرة ، فإن أي من أسباب رمز الخروج هذا سيكون مرتبطًا بالإدارة السيئة للذاكرة أو استخدامها في نظام Kubernetes البيئي الخاص بك.

كيفية إصلاح كود الخروج 137؟

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

إذا كنت تحاول إصلاح رمز الخروج 137 ، فجرّب الأشياء الثلاثة التالية:

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

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

افكار اخيرة

إذا كنت تواجه رمز الخروج 137 داخل Kubernetes ، فمن المحتمل أن تكون هناك مشكلة في كيفية إدارة بيئة Kubernetes الخاصة بك للمساحة عبر القرون والعقد والحاويات. كخط أساسي ، يقترح Kubernetes أن تمنح كل عقدة في مجموعتك حوالي 300 MIB من الذاكرة ، والتي يجب أن تكون كافية حتى تعمل العقدة بشكل صحيح.

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

المنشور تعليمات مفتوحة المصدر: ما هو كود الخروج 137 ، وهل يمكنك إصلاحه؟ ظهر لأول مرة .

لتكنولوجيا المعلومات ، تكنولوجيا إدارة تكنولوجيا المعلومات ، تكنولوجيا التعليم ، صور التكنولوجيا ، خصائص تكنولوجيا التعليم ، مركز تكنولوجيا المعلومات ، قطاع تكنولوجيا المعلومات والأخبار التقنية اليومية ، يرجى متابعة مدونتنا.

إرسال تعليق

Post a Comment (0)

أحدث أقدم