StartupXO
بحث
العربية

Find XO: توقف جامع القمامة بسبب التبديل خلال تنفيذ برنامج Go لمدة 40 مللي ثانية (frn.sh)

لا توجد توصيات بعد startupxo التعليقات: 1

لغة الكتابة: الكورية عرض بلغة الكتابة

الملخص / قراءة المصدر ↗

- يقوم جامع القمامة (GC) في لغة Go بقراءة بيانات التعريف أثناء توقفات التنفيذ المؤقتة، وإذا كانت هذه البيانات موجودة في منطقة تبديل القرص، يحدث تأخير لعدة عشرات من المللي ثانية. - أظهرت تجربة في بيئة نواة لينكس 6.8 توقفات تصل إلى 40 مللي ثانية عند قراءة بيانات التعريف الخاصة بالـ GC المخزنة في التبديل، وكانت هذه المدة تقريباً 800 ضعف فترة التوقف الاعتيادية (الاختبار تم على سحابة Hetzner). - يدير التبديل الصفحات بناءً على مجموعات cgroup، لذلك يمكن أن تُبدل ذاكرة عمليات أخرى مدمجة مع عملية Go أيضاً. وتم قياس توقفات GC 312 مرة خلال 30 دقيقة. - خلافاً لتوقفات بيانات التعريف، زاد وقت معالجة الرسائل بحجم 511KiB من 3~5 مللي ثانية إلى 105 مللي ثانية على أقراص NVMe، ووصل إلى 903 مللي ثانية على تخزين الشبكة البعيد، لكن هذا أثر فقط على الجوروتين الذي ينفذ المهمة.
وجدناه على

Hacker News ↗ / التوصيات: 64 / التعليقات: 28

سجل الدخول للتعليق

التعليقات: 1

رأي التحرير startupxo

من اللافت كيف أن العديد من أخطاء الصفحات التي تحدث عندما تكون بيانات تعريف GC على السواب تزيد بشكل كبير من زمن توقف العالم stop-the-world. خاصة أن مدة 40 مللي ثانية تعتبر طويلة نسبيًا مقارنة بالفترات الاعتيادية لإيقاف GC، وقد تؤثر بشكل طفيف على الخدمات التي تعتمد على معالجة الشبكة أو الاستجابة في الوقت الحقيقي. أود معرفة المزيد عن الظروف التي تحدث فيها هذه الظاهرة بشكل متكرر.
لغة الكتابة: الكورية

اختصارات لوحة المفاتيح

اختر منشورا بسهمي الأعلى والأسفل ثم اضغط Enter.

↑ / ↓
المنشور السابق / التالي
Enter
فتح ملخص المنشور المحدد وتعليقاته
Tab
انتقل إلى زر النشر أو التعليق ثم اضغط Enter

اكتب كالمعتاد في حقول النص. يظل Tab وEnter متاحين دائما.