KB4347055 - إصلاح: خطأ نفاد الذاكرة عند تشغيل SQL Server 2017 في حاوية Linux Docker

ينطبق على
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core

الأعراض

عند تشغيل مثيل Microsoft SQL Server 2017 داخل حاوية Linux Docker، قد تتلقى رسالة خطأ نفاد الذاكرة.

السبب

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

ملاحظه عند إنشاء صورة Docker، يجب عليك تحديد –m للحد من ذاكرة Docker. راجع المقالة التالية لمزيد من المعلومات.

إنشاء Docker

الدقة

يتم تضمين إصلاح لهذه المشكلة في التحديث التالي SQL Server:

التحديث التراكمي 10 SQL Server 2017

ملاحظه إذا لم يتم تكوين memory.memorylimitmb، فسيسمح هذا الإصلاح SQL Server بتقييد نفسه إلى حد بسيط يبلغ 80٪ من الذاكرة المخصصة للحاوية.

حول SQL Server الإصدارات

يحتوي كل إصدار جديد SQL Server على جميع الإصلاحات العاجلة وإصلاحات الأمان التي كانت موجودة في الإصدار السابق. نوصي بتثبيت أحدث إصدار لإصدار SQL Server:

أحدث إصدار SQL Server 2017

الحالة

لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".

المراجع

تعرف على المصطلحات القياسية التي تستخدمها Microsoft لوصف تحديثات البرامج.