I was wondering if anyone can offer some guidance on the nature of the load that is generated on a Exchange 2013 server.
The background of my question is that I'm currently considering options concerning the CPU of my servers. I have servers available to me with lower frequency but many cores, which are usually used for parallel processing workloads (Intel Xeon 1.7GHz, 20 core, 40 threads due to hyperthreading). Should I look for a more high spec CPU or will this do?
The server will host about 150 mailboxes in a corporate environment.
Exchange servers are generally RAM or disk-I/O bound... which should make sense, if you think about what an email server actually does - primarily, it transfers messages from one place to another, and stores them if the server is their ultimate destination. That workload isn't very computationally intensive.
The virtualized, all-roles-in-one Exchange server I administer, which serves over 1,000 users and has over 2,000 mailboxes, runs just fine on a single core from a 3.07 GHz Xeon X5675. Average CPU load during business hours is around 50% (~1.5 GHz), with occasional spikes to ~90% (~2.7Ghz) and the average CPU off-hours load is around 850 Mhz.
In line with that, minimum requirements for Exchange simply list a 64 bit compatible, non-Itanium processor. And, fortunately, modern versions of Exchange come with a pre-deployment analyzer tool you can, and should, run on your server to make sure it meets the minimum and recommended requirements, but I expect that you'd be just fine running your Exchange server on that 1.7 Ghz Xeon. In fact, I'd expect that a 20 core CPU would be heavy overkill for an Exchange server, even if it only rates at 1.7 Ghz per core.
(P.S.: Why dedicate a whole server to such a small Exchange environment? Hyper-V is free - why not virtualize it?)
Your specifications are fine... but definitely overkill for the user/workload you're anticipating.
Please see: Exchange 2013 as VM vs Exchange Physical Server
Here's a 3-day snapshot of a very busy 200-user Exchange installation running virtualized on 4 x 2.0GHz E5-2620 CPUs and 20GB of RAM.
The workload is RAM-bound. All of the CPU cores you're planning to throw at the solution will likely be idle.