Objawy
Podczas uruchamiania wystąpienia programu Microsoft SQL Server 2017 w kontenerze platformy Docker systemu Linux może zostać wyświetlony komunikat o błędzie braku pamięci.
Przyczyna
Program SQL Server w systemie Linux domyślnie używa miękkiego limitu 80% całkowitej pamięci fizycznej, gdy konfiguracja Memory.MemoryLimitMB nie jest włączona; W przypadku kontenerów platformy Docker język SQL uwzględniał 80% całkowitej pamięci hosta zamiast ograniczać się do 80% pamięci przydzielonej do kontenera platformy Docker. Ten nieprawidłowy limit pamięci umożliwia programowi SQL Server podjęcie próby użycia większej ilości pamięci niż jest dostępna dla kontenera, i może być kandydatem do rozwiązania przez OOM Killer.
Wskazówka Podczas tworzenia obrazu platformy Docker należy określić –m , aby ograniczyć pamięć platformy Docker. Aby uzyskać więcej informacji, zapoznaj się z następującym artykułem.
Rozwiązanie
Poprawka rozwiązująca ten problem jest zawarta w następującej aktualizacji dla programu SQL Server:
Aktualizacja zbiorcza 10 dla programu SQL Server 2017
Wskazówka Jeśli konfiguracja memory.memorylimitmb nie jest skonfigurowana, ta poprawka umożliwia programowi SQL Server ograniczenie się do miękkiego limitu 80% pamięci przydzielonej do kontenera.
Informacje o kompilacjach programu SQL Server
Każda nowa kompilacja programu SQL Server zawiera wszystkie poprawki zabezpieczeń z poprzedniej kompilacji. Zalecamy zainstalowanie najnowszej kompilacji dla używanej wersji programu SQL Server:
Najnowsza kompilacja dla programu SQL Server 2017
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Źródła informacji
Dowiedz się więcej o standardowej terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.