SQL SERVER – Unable to Allocate Enough Memory to Start ‘SQL OS Boot’. Reduce Non-essential Memory Load or Increase System Memory

SQL
No Comments

One of my clients, contacted me to fix one of the errors which they received while starting SQL Service. In this blog, I would share my learning about error “Unable to allocate enough memory to start ‘SQL OS Boot’. Reduce non-essential memory load or increase system memory” and how to fix it.

SQL SERVER - Unable to Allocate Enough Memory to Start 'SQL OS Boot'. Reduce Non-essential Memory Load or Increase System Memory SQLOSBoot-800x184

My customer was following the article as had a monster server of close to 2 TB RAM. Tuning options for SQL Server when running in high-performance workloads

They thought that “Large Pages” allocation would help them in a performance boost. Hence, they added trace flag 834 in SQL Server Startup Parameters and tried to restart SQL Service. Unfortunately, SQL Service failed to start, and they contacted me for quick assistance as their business was down.

I asked them to have a look at SQL Server ERRORLOG SQL SERVER – Where is ERRORLOG? Various Ways to Find ERRORLOG Location

Few last lines in the ERRORLOG file were as below:

Using large pages in the memory manager.
Page exclusion bitmap is enabled.
Large page allocation failed during memory manager initialization
Failed to initialize the memory manager
Failed to allocate pages: FAIL_PAGE_ALLOCATION 2
Error: 17138, Severity: 16, State: 1.
Unable to allocate enough memory to start the ‘SQL OS Boot’. Reduce non-essential memory load or increase system memory.

In the event log, it is logged as below.

SQL SERVER - Unable to Allocate Enough Memory to Start 'SQL OS Boot'. Reduce Non-essential Memory Load or Increase System Memory lp-error-01

Log Name:      Application
Source:        MSSQLSERVER
Event ID:      17138
Task Category: Server
Level:         Error
Keywords:      Classic
User:          N/A
Description:
Unable to allocate enough memory to start ‘SQL OS Boot’. Reduce non-essential memory load or increase system memory.

WORKAROUND/SOLUTION

I did some more online study about “large pages” and found that when SQL uses large pages, it would try to grab the complete size of max server memory during startup itself. If it can grab some reasonable amount of memory and can’t allocate further, it would continue to run with a value lower than max server memory. If it can’t grab even the minimum amount of memory, it would raise an error “Unable to allocate enough memory to start ‘SQL OS Boot’”. This can be caused due to memory fragmentation due to the server running for a long time and there are other applications running on it.

To fix the problem, first, make sure max memory is not more than the RAM. It would be a good idea to restart the operating system so that complete unfragmented memory is available for SQL Server to consume.

Reference: Pinal Dave (https://blog.sqlauthority.com)

In-Memory OLTP, SQL Error Messages, SQL Performance, SQL Server, Starting SQL
Previous Post
SQL SERVER – Always On Error: This Database is Encrypted by Database Master Key, You Need to Provide Valid Password When Adding it to the Availability Group
Next Post
SQL SERVER – Error 15580 – Cannot Drop Master Key Because Dialog “GUID” is Encrypted by It

Related Posts

Leave a Reply