dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Home/Hata Teşhis Kütüphanesi/sqlserver-845-buffer-latch-timeout-out-of-memory
SQL Server
SQL Server 2017 - 2022Bellek & Latch
12 dk okuma
Msg 845, Level 17: Time-out occurred while waiting for buffer latch type 2 for page (1:12345) / 701 Out of memory

SQL Server Buffer Latch Zaman Aşımı: Yavaş Disk, İşletim Sistemi Bellek Baskısı ve TempDB Çekişmesi

Yavaş depolama G/Ç veya max server memory'nin işletim sistemine RAM bırakmaması nedeniyle buffer latch zaman aşımı; Lock Pages in Memory ve tempdb çoklu dosya mimarisi.

İnceleyen:Kıdemli Veritabanı Mimarı & SRE (dataiotech Labs)
Test Edilen Sürümler: SQL Server 2017 / 2019 / 2022

Operasyonel Doğrulama & Güvenilirlik Standardı

Son Teknik İnceleme: 2 Kasım 2026
Test Edilen SürümlerSQL Server 2019 CU27, 2022 CU14
Gerekli Yetkisysadmin
Risk Seviyesi
CriticalBuffer latch timeout donanım depolama yetmezliğine veya sanal makine bellek çekişmesine işaret eder
Beklenen ÇıktıPAGEIOLATCH_SH ve PAGELATCH_EX bekleme sürelerinin normal sınırlara inmesi
Geri Dönüş (Rollback) Planı:max server memory düşürme ve tempdb çoklu dosya yapılandırması
Microsoft Docs: Resolve PAGELATCH Contention
İlk 60 Saniye Teşhis Protokolü:

Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.

▸Belirti

Sorgular donar ve hata loglarında buffer latch zaman aşımı uyarısı basılır:

plaintext
Msg 845, Level 17, State 1, Line 1 Time-out occurred while waiting for buffer latch type 2 for page (1:12345). Msg 701, Level 17, State 1, Line 1 There is insufficient system memory in resource pool 'internal' to run this query.

▸Sahada Ne Görürsün?

Disk gecikmesi (disk latency) 100ms'nin üzerine fırlar. PAGEIOLATCH_SH veya TempDB tahsis sayfalarında (PAGELATCH_UP GAM/SGAM) devasa bekleme süreleri oluşur.


▸Kök Neden Matrisi

OlasılıkKök NedenAçıklama
%50Aşırı Yavaş Disk Alt YapısıVeritabanı sayfası diskten bellek havuzuna yüklenirken depolama yanıt vermemiş, latch bekleme süresi dolmuştur.
%30`max server memory` RAM BırakmamışSQL Server tüm RAM'i rehin almış, Windows paging yapmaya başlamış ve sanal makine bellek balonu (ballooning) patlamıştır.
%20TempDB Allocation ÇekişmesiTek dosyalı TempDB üzerinde GAM/PFS sayfalarında çekişme oluşmuştur.

▸ACİL RUNBOOK (0-5dk)

sql
-- 1. Fiziksel bellek durumunu ve işletim sistemine kalan RAM'i gör SELECT (physical_memory_kb / 1024 / 1024) AS Physical_GB, (available_physical_memory_kb / 1024 / 1024) AS Available_GB FROM sys.dm_os_sys_memory; -- 2. Acil müdahale: SQL Server bellek tavanını düşürerek OS'i rahatlat EXEC sp_configure 'show advanced options', 1; RECONFIGURE; -- 64GB sunucuda 50GB'a çek: EXEC sp_configure 'max server memory', 51200; RECONFIGURE; -- 3. En yüksek latch beklemelerini incele SELECT wait_type, waiting_tasks_count, wait_time_ms FROM sys.dm_os_wait_stats WHERE wait_type LIKE '%LATCH%' ORDER BY wait_time_ms DESC;

▸KALICI BLUEPRINT

  1. 1Lock Pages in Memory (LPIM): SQL Server servis hesabına Windows üzerinde LPIM yetkisi verilerek bellek sayfalarının diske taşınması (paging) engellenmelidir.
  2. 2TempDB Çoklu Dosya Standardı: TempDB veri dosyası sayısı CPU çekirdek sayısına eşitlenmeli (maksimum 8 dosya) ve hepsi eşit boyutta açılmalıdır.
  3. 3Ayrı Diskler: TempDB ve Data dosyaları mutlaka ayrı fiziksel NVMe sürücülerde tutulmalıdır.

▸Doğrulama

sql
SELECT wait_type, waiting_tasks_count, wait_time_ms / 1000 AS wait_time_seconds FROM sys.dm_os_wait_stats WHERE wait_type IN ('PAGEIOLATCH_SH', 'PAGELATCH_UP');

Diğer Veritabanı Hata Teşhisleri

Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.

Tüm Hatalar (82)