RangeStream يقلل استخدام الذاكرة في Kubernetes 1.37

ميزة RangeStream التجريبية في Kubernetes 1.37 تقلل استهلاك الذاكرة أثناء قراءة الكائنات الكبيرة، مما يخفض مخاطر OOM ويحسن أداء خادم API.
RangeStream يقلل استخدام الذاكرة في Kubernetes 1.37 - bimakale.com
07 Eylül 2026 Pazartesi - 10:02 (1 Saat önce) 1 dk okuma

ما هي ميزة RangeStream؟

تعمل ميزة RangeStream، التي دخلت مرحلة البيتا في إصدار Kubernetes 1.37، جنبًا إلى جنب مع etcd v3.7 لتمكين القراءة القائمة على البث لعمليات قراءة البيانات. في الطرق التقليدية، كان يتم الاحتفاظ بجزء البيانات بالكامل في الذاكرة قبل تخزين الكائن الكبير مؤقتًا في ذاكرة خادم API. وكان هذا يتسبب في رفع استهلاك الذاكرة إلى مستويات غير متوقعة، خاصة في البيئات التي تُدرج عددًا كبيرًا من الموارد ذات الأحجام الضخمة.

تأثير النهج القديم على الذاكرة

عندما يتلقى خادم API طلب list، يطلب أولاً المفاتيح المعنية من etcd، ثم يقوم بإنشاء الاستجابة. وحتى لو تم تقسيم البيانات إلى صفحات، فإن الاستجابة بالكامل تُحمل في الذاكرة نظرًا لعدم معرفة الحجم الكامل للكائن مسبقًا. وينشأ ضغط الذاكرة في نقطتين خلال هذه العملية: الأولى هي احتفاظ etcd بالاستجابة، والثانية هي تجميع خادم API للاستجابة وتخزينها مؤقتًا. ويمكن لقوائم ConfigMap أو Custom Resource Definition الكبيرة أن تتسبب في أخطاء نفاذ الذاكرة OOM (Out‑Of‑Memory) في كلا المرحلتين.

نهج الحل في RangeStream

تركز RangeStream على نقل البيانات في شكل تدفق جزءًا فجزء بدلاً من إرسالها دفعة واحدة. يعيد etcd النطاقات المطلوبة (range) في شكل كتل مفردة، ويبدأ خادم API في إرسال هذه الكتل إلى العميل بمجرد استلامها. وبهذه الطريقة، لا يضطر كل من etcd وخادم API إلى الاحتفاظ بالاستجابة كاملة في الذاكرة. وبذلك تظل الحاجة إلى الذاكرة عند مستوى أكثر قابلية للتنبؤ استنادًا إلى عدد الكتل المعالجة في نفس الوقت.

المكاسب الملموسة في استخدام الذاكرة

يوفر نموذج التدفق الذي تقدمه RangeStream فائدتين رئيسيتين:

  • استهلاك ذاكرة قابل للتنبؤ: نظرًا لأن تدفق البيانات يتم على شكل كتل، فإن كمية البيانات المحتفظ بها في الذاكرة في أي لحظة لها حد أقصى ثابت.
  • تقليل العبء على etcd: بدلاً من توليد استجابة ضخمة دفعة واحدة، يتم تقديم الاستجابة على أجزاء صغيرة، مما يقلل أيضًا الضغط على المعالج (CPU) الإدخال/الإخراج (I/O) لـ etcd.

التطبيق والتأثيرات التشغيلية

كون RangeStream في مرحلة البيتا يشير إلى أنها ليست خيارًا افتراضيًا لجميع البيئات بعد. ومع ذلك، يمكن لـ مسؤولي Kubernetes تفعيل هذه الميزة في بيئات الاختبار لمراقبة حدود الذاكرة. خاصة في العناقيد كبيرة الحجم (large‑scale)، قد يلزم إعادة تقييم معلمات خادم API مثل --max-request-bytes. وعند تفعيل RangeStream، يصبح من الممكن الإبقاء على هذه المعلمات عند مستوى أكثر مرونة.

التطوير المستقبلي ومساهمة المجتمع

يخطط مجتمع Kubernetes لنقل RangeStream من مرحلة البيتا إلى ميزة مستقرة. وفي هذه العملية، يُعد التنسيق بين مظوري etcd وفريق خادم API أمرًا حاسمًا. ستسمح الملاحظات بضبط إعدادات مثل حجم التدفق، وعدد الكتل، والمهلة الزمنية بشكل أكثر دقة. وستكون تقلبات الذاكرة وحوادث OOM التي يواجهها المستخدمون مصادر بيانات قيمة لتحسين هذه الإعدادات.

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

المصدر: مدونة Kubernetes

Kaynak: Kubernetes Blog

Alakalı İçerikler


  • Kubernetes
  • RangeStream
  • etcd
  • bellek yönetimi
  • API sunucusu
  • OOM
  • beta özellik



Yorumlar
Sende Yorumunu Ekle
Kullanıcı
0 karakter
Yazarın Diğer Etiketleri Tümünü Göster
Popüler Etiketler Tümünü Göster
Yazarın Diğer İçerikleri