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.
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.