0

We run multiple copies of our application at the same time on a multi core server with 2 NUMA nodes. We already set the affinity of the app to cores on either NUMA zero or one to increase memory access performance. However it occurred to me that different pages of dll's and even the exe are probably being loaded into different NUMAs, depending on the most local NUMA of the process that accessed a page first.

Is this happening? Is there anyway to configure windows to load a page from a dll or exe more than once if there are more than one NUMA? I'm guessing hell no.

hmmm. Would putting a copy of our exe in two directories work? Would be enough for windows to think the dll was different. If not I could rename each dll _0 or _1. Maybe there is something in the PE header I have to change to make each dll seem different.

We use windows server 2008 R2 and are upgrading to 2012 soon.

johnnycrash
  • 5,184
  • 5
  • 34
  • 58
  • I believe that if you have multiple copies of the same DLL, loaded in different processes, Windows will load each copy independently. Someone else might know for certain. – Harry Johnston Feb 11 '15 at 20:37
  • I wouldn't worry that much about the placement of the executable and shared data code of your executable and the DLLs it uses. Unless your application is a huge linear code, the CPU instruction cache will buffer the often executed code paths. Besides, remote memory access on e.g. modern x86 NUMA systems is **not that much** slower. It is much more important to keep often-used memory local. – Hristo Iliev Feb 14 '15 at 08:24

0 Answers0