Thursday, 31 March 2016

Setup Acumatica and MS Sql Database on the Same Server

Hi All,

When you plan to how to better install small edition of Acumatica (edition for 2 cores), you may notice that most of all modern servers usually have 4-8 and more cores. And what to do if Acumatica just uses 2 cores from 8?
Acumatica uses 2 cores from 8

In this case you may want to install Database Management Server on the same machine. It is good option, as you can utilize other "unused" cores.
Usually Acumatica recommends to have 2 separate servers for application and database and this is totally better and more stable configuration. So every-time when you can setup 2 separate servers do it.

But Acumatica totally supports configuration with single server, in this case you just need to make sure that you have correct configuration:

  1. Limit memory for SQL server for not more than 50% of total server memory. Sql server can use unlimited memory on server, but sometimes it may affect Acumatica application.
    SQL Server Memory Usage
  2. Explicitly set cores that should be used for SQL Server. This will help to dedicate some cores to Acumatica.
    SQL Server CPU Restriction
  3. Explicitly set cores that should be used by IIS worker process. This option should be specified on application pool advanced options. Please note, that when you configure it, all applications within the same application pool will use the same cores. It is good idea to put all test sites to separate application pool and specify different cores. 
    If you set the value to 1 (which corresponds to 00000000000000001 in binary), the worker processes in an application pool run on only the first processor. If you set the value to 2 (which corresponds to 0000000000000010 in binary), the worker processes run on only the second processor. If you set the value to 3 (which corresponds to 0000000000000011 in binary) the worker processes run on both the first and second processors. So if i want to use just 4 and 5 cores (note that they are counting from 0) I need to specify 0x30 = 48 to affinity mask.
  4. Do not forget to back up your server after configuration, to simplify disaster recovery.
There is one good blog article on MSDN that can help you to calculate affinity mask.

Have a nice Installation!


Francisco Carabez said...

IMHO "Proccessor Affinity Enable" must be set to "True"

Sergey Marenich said...

Hi Francisco,
Thank you very much! I have updated the image.