How to fix Error 3879 on Windows Server 2025 / Windows 11

Troubleshooting Guide: SQL Server Error 3879 — Tiered Memory for Buffer Pool Started with Memory-Optimized Metadata

Why This Error Happens

This informational error occurs when SQL Server 2025 initializes the buffer pool using tiered memory (PMEM/Storage Class Memory combined with DRAM) while memory-optimized metadata is also enabled for system tables. The conflict typically arises because the tiered memory feature and memory-optimized tempdb metadata were both configured without validating hardware compatibility or NUMA node alignment. In most cases, this is triggered by a misconfigured -pmem startup parameter or outdated storage drivers that don’t correctly report persistent memory capacity to the Database Engine.

Step-by-Step Resolution Guide

Step 1: Verify Persistent Memory Hardware and Driver Configuration

  • Open PowerShell as Administrator and run Get-PmemDisk to confirm the persistent memory devices are recognized by Windows Server 2025.
  • Check Device Manager for outdated or missing NVDIMM/PMEM drivers and update them via Windows Update or OEM vendor packages.
  • Confirm BIOS/UEFI settings have App Direct Mode enabled for persistent memory rather than Memory Mode.

Step 2: Review SQL Server Startup Parameters

  • Open SQL Server Configuration Manager and navigate to SQL Server Services > right-click your instance > Properties > Startup Parameters.
  • Check for the presence of -pmem and ensure the path points to a valid, mounted persistent memory volume (e.g., -pmem=R:\PMemStore).
  • Remove or correct any invalid tiered memory path and restart the SQL Server service.

Step 3: Disable Conflicting Memory-Optimized Metadata Temporarily

  • Run the following T-SQL to check current configuration:
SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'MEMORYCLERK_TIERED_MEMORY';
  • If tiered memory is incompatible with current metadata settings, disable memory-optimized tempdb metadata:
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED TEMPDB_METADATA = OFF;
  • Restart the SQL Server service for changes to take effect.

Step 4: Rebuild Tiered Memory Buffer Pool Extension

  • Navigate to C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA\.
  • Delete or rename any orphaned .bpe (Buffer Pool Extension) files that may reference stale tiered memory paths.
  • Reconfigure the buffer pool extension using:
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION ON (FILENAME = 'R:\PMemStore\BPE.bpe', SIZE = 50GB);

Step 5: Apply Latest Cumulative Update

  • Download and install the latest SQL Server 2025 Cumulative Update (CU) from the Microsoft Update Catalog.
  • Run the installer with elevated privileges and select Repair if prompted for an existing instance.
  • Reboot Windows Server 2025 to finalize kernel-level memory driver changes.

Alternative or Verification Steps

  • After restarting the SQL Server service, check the SQL Server Error Log (ERRORLOG in the MSSQL\LOG directory) to confirm Error 3879 no longer appears during startup.
  • If the issue persists, run DBCC CHECKDB and sys.dm_os_sys_info to verify memory allocation is stable, or consider disabling tiered memory entirely via -pmem removal as a fallback until hardware compatibility is fully validated.