KB4347055 - REMEDIERE: Eroare memorie insuficientă atunci când rulați SQL Server 2017 într-un container Linux Docker

Se aplică la
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core

Simptome

Atunci când rulați o instanță Microsoft SQL Server 2017 într-un container Linux Docker, este posibil să primiți un mesaj de eroare memorie insuficientă.

Cauză

SQL Server pe Linux utilizează în mod implicit o limită soft de 80% din memoria fizică totală atunci când nu este activată configurația memory.memorylimitmb; Pentru containerele Docker, SQL obișnuia să ia în considerare 80% din memoria totală a gazdei în loc să se limiteze la 80% din memoria alocată containerului Docker. Această limită de memorie incorectă permite SQL Server să încerce să consume memorie mai mare decât cea disponibilă pentru container și ar putea fi un candidat pentru rezilierea de către OOM Killer.

Notă Când creați imaginea Docker, trebuie să specificați –m pentru a limita memoria Docker. Consultați articolul următor pentru mai multe informații.

Creați un element de andocare

Rezolvare

O remediere pentru această problemă este inclusă în următoarea actualizare pentru SQL Server:

Actualizarea cumulativă 10 pentru SQL Server 2017

Notă Dacă nu este configurată configurația memory.memorylimitmb, această remediere permite SQL Server să se limiteze la o limită soft de 80% din memoria alocată containerului.

Despre compilările SQL Server

Fiecare versiune nouă pentru SQL Server conține toate remedierile rapide și remedierile de securitate din compilarea anterioară. Vă recomandăm să instalați cea mai recentă compilare pentru versiunea dvs. de SQL Server:

Cea mai recentă versiune pentru SQL Server 2017

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.

Referințe

Aflați despre terminologia standard pe care o utilizează Microsoft pentru a descrie actualizările de software.