0

I've a strange situation: A server, containing 64GB of memory, runs a SQL server process (64 bit) which consumes 32 GB of memory. There is about 17 GB memory available.

MS Dynamics Nav is running on top of SQL

Besides the 64bit SQL process, there is another SQL process and a NAS, both running 32 bits.

Every now and then, an error message is logged in the eventviewer, saying

There is not enough memory to execute this function.

If you work in a single-user installation, you can try reducing the value of the 'cache' program property. You can find information about how to optimize the operating system in the documentation for yo

Now I'm wondering what the problem is, since there is still 17 GB memory available. Is it possible that a 32-bit process cannot allocate memory in the last segment (60 to 64 GB)?

Peter van Kekem
  • 1,387
  • 1
  • 12
  • 30

1 Answers1

3

32 bit processes are limited to about 4 GB of memory usage. The x64 architecture should allow a 32bit process to run in any of the available memory space, but your 32bit process will still be limited by it's maximum addressible space (~4GB).

lehn0058
  • 19,977
  • 15
  • 69
  • 109
  • So the answer to my question "Is it possible that a 32-bit process cannot allocate memory in the last segment (60 to 64 GB)?" is Yes? (just to make sure, since there were conflicting answers in http://stackoverflow.com/a/14468979/2293059) – Peter van Kekem Aug 09 '13 at 11:24
  • No, a 32-bit process does not care about which address space is used. It will use whatever space the system assigns it. The process is just limited to the amount of memory it can use in total, no mater what address space it is allocated from. – lehn0058 Aug 09 '13 at 13:29