Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Po zastosowaniu tej aktualizacji należy dodać flagę śledzenia — T8075 jako parametr uruchamiania, aby włączyć tę zmianę.

Symptomy

Po uruchomieniu zapytania w 64-bitowej wersji programu Microsoft SQL Server 2012 jest wyświetlany komunikat o błędzie informujący o braku pamięci, podobny do następującego w dzienniku błędów programu SQL Server:

Nie można przydzielić stron: FAIL_PAGE_ALLOCATION 513

Wykonywanie zapytań trwa długo i napotyka SOS_MEMORY_TOPLEVELBLOCKALLOCATOR czeka. Po zbadaniu poniższych punktów informacyjnych znajdziesz bardzo małą dostępną wirtualną przestrzeń adresową:

  • DBCC MEMORYSTATUS-liczba procesów/systemowych w sekcji — dostępna pamięć wirtualna

  • DMV: sys.dm_os_process_memory-Column virtual_address_space_available_kb

Te wartości rozpoczynają się około 8 terabajtów (TB) w procesie x64 i kontynuują poruszanie się po kilku gigabajtach (GB).  Gdy znajdujesz się na etapie, w którym dostępna wirtualna przestrzeń adresowa jest bardzo niska, zapytania, które próbują wykonać przydział pamięci, mogą także napotkać typ oczekiwania CMEMTHREAD. Następujące punkty danych będą stale wzrastać:

  • DMV: sys.dm_os_process_memory i sys.dm_os_memory_nodes-Column virtual_address_space_reserved_kb

  • DBCC MEMORYSTATUS — sekcja Memory Manager — zarezerwowana maszyna wirtualna

Wartości te zwykle zwiększają się wielokrotności wartości "Max Server Memory" do niemal 8 TB.

Przyczyna

Gdy proces programu SQL Server osiągnął stan, w którym łączna pamięć serwera = pamięć serwera docelowego = Max pamięci serwera, w Menedżerze pamięci programu SQL Server są dostępne zasady pozwalające na tymczasowe wykonanie nowych przydziałów. Powtarzalny wzorzec przydziałów w takim stanie może powodować fragmentację bloków pamięci i zużycia wirtualnej przestrzeni adresowej. Jeśli ten proces powtarza się wielokrotnie, wirtualna przestrzeń adresowa programu SQL Server zostanie wyczerpana i pojawią się objawy wspomnianych wcześniej uwag.

Rozwiązanie

Informacje o aktualizacji zbiorczej

Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.

 

Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zalecamy pobranie i zainstalowanie najnowszych aktualizacji zbiorczych programu SQL Server:

Ta poprawka zapobiega za braku pamięci i ciągłej redukcji dostępnej wirtualnej przestrzeni adresowej, którą można napotkać.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Więcej informacji

  • System Windows 2012 R2 umożliwia powiększenie wirtualnej przestrzeni adresowej o rozmiarze do 128 TB. Z tego powodu nie można zauważyć tego problemu w środowiskach Windows 2012 R2. Aby uzyskać więcej informacji, zobacz następujący temat w centrum deweloperskim Windows:limity pamięci dla systemu Windows i wersji programu Windows Server

  • Jeśli po zastosowaniu tej poprawki widzisz ciągły wzrost przestrzeni adresowej, możesz określić, które zapytania lub operacje żądają dużych fragmentów pamięci za pomocą zdarzenia rozszerzonego page_allocated . Przykładowy skrypt wygląda następująco:

    CREATE EVENT SESSION [memory_tracking] ON SERVERADD EVENT sqlos.page_allocated(    ACTION(package0.callstack,sqlos.cpu_id,sqlos.task_address,sqlos.worker_address,sqlserver.database_id,sqlserver.query_hash,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)    WHERE ([number_pages]>(1)))ADD TARGET package0.event_file(SET filename=N'E:\Data\MSSQL11.MSSQLSERVER\MSSQL\Log\memory_tracking.xel')WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO

    Zazwyczaj są to kopie zapasowe dziennika i operacje konserwacji indeksu, które występują często.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×