Use this to figure out how big your virtual machine should be.
History Pull / First Time Processing
You should multiply the numbers below by 4 for the first time you run a history scan. Then once all the history is processed you can reduce the size of VM.
Long Term Sizing
These are flexible depending on how frequently you want to check emails in mailboxes. This is our general guidance.
RAM: Minimum 8GB. Calculation: ((# of Mailboxes / 16) X 1GB) = RAM Required
CPU: Minimum 4 cores, Calculation: # of Mailboxes / 32 = CPU Cores Required
If you want your initial history scan to go faster you can increase the number of cores beyond our recommendation. But that may require a more complicated setup.
Cores, not logical processors
Don't count logical processors as part of the core count.
For example, if you have 8 cores and 16 logical processors, you'll never get your performance above 50% when looking at CPU usage based on logical processors. If you're at 50% you're using 100% of your cores.
The important part is that the two logical processors share the same Execution engine, meaning that the units that make up the core are not duplicated. Once, for example, the arithmetic unit is used by one thread, it cannot be used by the other thread. This prevents total parallelism, so does not allow two threads to execute in parallel instructions of the same type - one has to wait for the other to finish.
has_hyperthreading_cores = true
If your server has hyperthreading on the cores then you need to set has_hyperthreading_cores = true in the appsettings.json file or environment variables. Otherwise SigParser will oversubscribe cores which will make performance worse.