Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE 524288

  • Hi All,

    I'm getting the following error:

    "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE 524288"

    I'm not sure how to configure the Startup Parameters for an instance in the Advanced options of SSCM.

    Do I add the paramater to the end of the Startup Parameters?

    And what number do I use for the -g parameter to allocate say 5 Gig of space (Total 8 gig on server)?

    -dC:\Program Files\Microsoft SQL Server\MSSQL10.TEST_STAGING\MSSQL\DATA\master.mdf;

    -eC:\Program Files\Microsoft SQL Server\MSSQL10.TEST_STAGING\MSSQL\Log\ERRORLOG;

    -lC:\Program Files\Microsoft SQL Server\MSSQL10.TEST_STAGING\MSSQL\DATA\mastlog.ldf

    Assumed settings:

    -dC:\Program Files\Microsoft SQL Server\MSSQL10.TEST_STAGING\MSSQL\DATA\master.mdf;

    -eC:\Program Files\Microsoft SQL Server\MSSQL10.TEST_STAGING\MSSQL\Log\ERRORLOG;

    -lC:\Program Files\Microsoft SQL Server\MSSQL10.TEST_STAGING\MSSQL\DATA\mastlog.ldf

    -g 500000

    Regards,

    Paul

  • Oh my, that is a seriously bad idea.

    -g defines the mem-to-leave in MB, the portion of memory that SQL can use OUTSIDE the buffer pool. You're asking for the mem-to-leave to be 500GB on a server with 8GB memory. 5GB would be -g5000. If you do set the mem-to-leave to 5GB, you're limiting the size of the buffer pool (data and procedure cache) to under 3GB (OS needs memory too)

    The default for mem-to-leave (iirc) is 256MB. If you're having virtual allocation problems either try upping it to 512 to start, slowly increase it. Or switch to 64 bit SQL where that's no longer an issue.

    If you're having virtual memory problems, do some investigation as to what's using that memory. Mostly it'll be 3rd party linked server (ODBC/OLEDB) drivers, extended stored procedures and CLR code.

    p.s. Your startup params are almost right (though scary), you need a ; after the log file name, before the -g.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • p.p.s. The value listed in Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE is in bytes. So that's 512 kB that it needs to allocate. Far cry from 500 GB.

    This may be worth a read: http://blogs.msdn.com/b/sqlserverfaq/archive/2010/02/16/how-to-find-who-is-using-eating-up-the-virtual-address-space-on-your-sql-server.aspx

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • Thanks Gail,

    I've abandon this approach and added the instance group users to the Security Settings for “Lock pages in memory” on the server.

    Thank-you for your feedback, it was central to my decission.

    Paul

Viewing 4 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic. Login to reply