Use this to figure out how big your virtual machine should be for the On Premise Engine.
General Performance
The average mailbox has 18K emails per year that are not internal
Each CPU core can process 4K emails per hour
2 GB of RAM per core
History Scanning
Targeting 4 days of processing for history.
1 Year of History (18,000 emails/mailbox)
1 to 10 mailboxes: 2 cores
11 to 20 mailboxes: 2 cores
21 to 50 mailboxes: 3 cores
51 to 200 mailboxes: 10 cores
201 to 500 mailboxes: 24 cores
501 to 1,000 mailboxes: 47 cores
1,001 to 2,000 mailboxes: would need ~94 cores for 4 days, which exceeds the 48 core ceiling. Capped at 48 cores, expect roughly 8 days instead of 4.
2 Years of History (36,000 emails/mailbox)
1 to 10 mailboxes: 2 cores
11 to 20 mailboxes: 2 cores
21 to 50 mailboxes: 5 cores
51 to 200 mailboxes: 19 cores
201 to 500 mailboxes: 47 cores
501 to 1,000 mailboxes: would need ~94 cores for 4 days, which exceeds the 48 core ceiling. Capped at 48 cores, expect roughly 8 days instead of 4.
1,001 to 2,000 mailboxes: would need ~188 cores for 4 days, which exceeds the 48 core ceiling. Capped at 48 cores, expect roughly 16 days instead of 4.
Ongoing Processing
Once history scanning is done you can downscale to this configuration.
1 to 10 mailboxes: 2 cores
11 to 20 mailboxes: 2 cores
21 to 50 mailboxes: 2 cores
51 to 200 mailboxes: 2 cores
201 to 500 mailboxes: 2 cores
501 to 1,000 mailboxes: 4 cores
1,001 to 2,000 mailboxes: 8 cores
This has enough headroom so that if it gets up to 7 days behind for some reason it can catch up in 24 hours.
🚀 Use Azure Server for best Performance
Since a lot of our customers are using Azure we suggest using an Azure VM. We've seen customers have trouble getting the On Premise Engine running fast enough in their own data centersdue to slow proxies, old CPUs or over provisioned servers. We highly suggest using an Azure cloud server for best performance.
We recommend a server like Standard_F2as_v6 or a bigger version like Standard_F16as_v6.
Do not use the B family of CPUs because they are burstable and the email processing get throttled quickly.
RAM Requirements
You should allocate at least 2 GB of RAM per CPU.
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 then only 8 are "real" cores. The other 8 are hyperthreading cores. 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.
If you have any questions, send us an email at support@sigparser.com. You can also book a demo session HERE.