Udostępnij za pośrednictwem


POPRAWKA: Pamięć przekracza skonfigurowane limity określone przez memory.memorylimitmb w programie SQL Server

Symptomy

Program SQL Server w systemie Linux może nie być zgodny z granicami pamięci ustawionymi przez opcję konfiguracji memory.memorylimitmb , co jest dowodem na to, że narzędzia do monitorowania, takie jak top i ps wyświetlające użycie pamięci, które przekracza skonfigurowane limity.

Można na przykład zauważyć, że pamięć zgłoszona przez pola Rozmiar pamięci rezydentnej (RES) lub użycie pamięci rezydentnej (RSS) w poniższych poleceniach jest wyższa niż pamięć skonfigurowana przez memory.memorylimitmbprogram .

top -p $(pidof sqlservr | cut -d' ' -f1)

ps -p $(pidof sqlservr | cut -d' ' -f1) -u

Rozwiązanie

Ten problem został rozwiązany w następujących aktualizacjach zbiorczych programu SQL Server:

Uwaga 16.

Po zastosowaniu poprawki w przypadku serwerów ze skonfigurowanym uwierzytelnianiem usługi Active Directory nadal może wystąpić problem lub zauważyć, że limity pamięci są memory.memorylimitmb używane szybko. W tym scenariuszu należy również zaktualizować wersję pakietów Protokołu Kerberos v5 (krb5) w systemie Linux do wersji 1.19.2 lub nowszej, aby rozwiązać problem z wyciekiem defcred w krb5_gss_inquire_cred()systemie . Aby uzyskać więcej informacji, zobacz Naprawianie wycieku defcred w krb5_gss_inquire_cred().

W przypadku dystrybucji Red Hat Enterprise Linux (RHEL) 8, Ubuntu 20.04 lub SUSE Linux Enterprise Server (SLES) 12 może być konieczne skontaktowanie się z dostawcą dystrybucji systemu Linux w celu zażądania zaktualizowanych pakietów dla krb5.

Jeśli nie możesz zaktualizować pakietów, nadal możesz obejść wyciek krb5_gss_inquire_cred() przy użyciu połączeń w puli w parametry połączenia aplikacji.

Monitorowanie użycia pamięci w programie SQL Server w systemie Linux

Po zainstalowaniu aktualizacji zbiorczej 14 programu SQL Server 2022 (CU14) lub PROGRAMU SQL Server 2019 CU27 lub nowszej będzie można monitorować alerty zasobów systemowych przy użyciu system_low_memory_signal_state kolumn i system_high_memory_signal_state w sys.dm_os_sys_memory dynamicznym widoku zarządzania (DMV). Jeśli system_low_memory_signal_state stale pokazuje 1wartość , rozważ zwiększenie alokacji pamięci dla programu SQL Server lub przejrzyj zapytania, które zużywają najwięcej pamięci, a następnie rozwiąż ich wymagania dotyczące pamięci.

Informacje o aktualizacjach zbiorczych dla programu SQL Server

Każda nowa zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i poprawki zabezpieczeń, które znajdowały się w poprzedniej kompilacji. Zalecamy zainstalowanie najnowszej kompilacji dla używanej wersji programu SQL Server:

Stan

Firma Microsoft potwierdziła, że jest to usterka występująca w produktach firmy Microsoft wymienionych w części "Ma zastosowanie do:".

Informacje

Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.

Zastrzeżenie dotyczące innych firm

Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.