Belirtiler
Bir LinuxLinux Docker kapsayıcısı içinde bir Microsoft SQL ServerSQL Server 2017 örneği çalıştırdığınızda, yetersiz bellek hata iletisi alabilirsiniz.
Neden
Linux üzerinde SQL ServerLinux üzerinde SQL Server memory.memorylimitmb yapılandırması etkin olmadığında varsayılan olarak toplam fiziksel belleğin %80'i kadar bir yumuşak sınır kullanır; Docker kapsayıcıları için SQL, kendisini docker kapsayıcısına ayrılan %80 bellekle sınırlamak yerine toplam konak belleğinin %80'ini dikkate alıyordu. Bu yanlış bellek sınırı, SQL Server kapsayıcı için mevcut olandan daha fazla bellek tüketmeye çalışmasına olanak tanır ve OOM Killer tarafından sonlandırılmaya aday olabilir.
Notlar Docker görüntüsünü oluşturduğunuzda, Docker belleğini sınırlamak için –m belirtmeniz gerekir. Daha fazla bilgi için aşağıdaki makaleye bakın.
Çözüm
Aşağıdaki SQL Server güncelleştirmesinde bu sorun için bir düzeltme bulunmaktadır:
Cumulative Update 10 for SQL ServerSQL Server 2017
Notlarmemory.memorylimitmb yapılandırması yapılandırılmamışsa, bu Düzeltme SQL Server kendisini kapsayıcıya ayrılan belleğin %80'i gibi bir geçici sınırla sınırlamasına olanak tanır.
SQL Server derlemeleri hakkında
SQL Server için her yeni derleme, bir önceki derlemede yer alan tüm düzeltmeleri ve güvenlik düzeltmelerini içerir. SQL Server sürümünüz için en son derlemeyi yüklemenizi öneririz:
SQL Server 2017 için en son derleme
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Başvurular
Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı standart terminoloji hakkında bilgi edinin.