الأعراض
عند تشغيل مثيل Microsoft SQL Server 2017 داخل حاوية Linux Docker، قد تتلقى رسالة خطأ نفاد الذاكرة.
السبب
يستخدم SQL Server على Linux بشكل افتراضي حدا مبدئيا يبلغ 80٪ من إجمالي الذاكرة الفعلية عند عدم تمكين تكوين memory.memorylimitmb؛ بالنسبة لحاويات Docker، تستخدم SQL للنظر في 80٪ من إجمالي ذاكرة المضيف بدلا من قصر نفسها على 80٪ من الذاكرة المخصصة لحاوية docker. يسمح حد الذاكرة غير الصحيح هذا SQL Server بمحاولة استهلاك ذاكرة أكثر من تلك المتوفرة للحاوية ويمكن أن يكون مرشحا للإنهاء بواسطة OOM Killer.
ملاحظه عند إنشاء صورة Docker، يجب عليك تحديد –m للحد من ذاكرة Docker. راجع المقالة التالية لمزيد من المعلومات.
الدقة
يتم تضمين إصلاح لهذه المشكلة في التحديث التالي SQL Server:
التحديث التراكمي 10 SQL Server 2017
ملاحظه إذا لم يتم تكوين memory.memorylimitmb، فسيسمح هذا الإصلاح SQL Server بتقييد نفسه إلى حد بسيط يبلغ 80٪ من الذاكرة المخصصة للحاوية.
حول SQL Server الإصدارات
يحتوي كل إصدار جديد SQL Server على جميع الإصلاحات العاجلة وإصلاحات الأمان التي كانت موجودة في الإصدار السابق. نوصي بتثبيت أحدث إصدار لإصدار SQL Server:
الحالة
لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".
المراجع
تعرف على المصطلحات القياسية التي تستخدمها Microsoft لوصف تحديثات البرامج.