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.memorylimitmb
program .
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:
- Aktualizacja zbiorcza 14 dla programu SQL Server 2022
- Aktualizacja zbiorcza 27 dla programu SQL Server 2019
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 1
wartość , 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:
- Najnowsza aktualizacja zbiorcza programu SQL Server 2022
- Najnowsza aktualizacja zbiorcza programu SQL Server 2019
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.