Microsoft provides detailed guidelines on this Technet page and this one.
The basic guidelines for server role ratios are as follows. They're based on the number of mailbox server cores.
- Hub Transport Server — 7:1 (no antivirus on Hub) or 5:1 (antivirus on hub). 1GB of memory for each core.
- Client Access Server (CAS) — 4:3 (note this is much higher than with previous Exchange installations). 2GB of memory for each core.
- Domain Controller — 1:4 (32-bit Domain Controller (DC)) or 1:8 (64-bit DC, and the DC has enough memory to cache the entire NTDS.DIT file).
- Edge Transport Server — Based on peak connections and messages per second and average message size. 1GB of memory for each core.
Thanks to John Savill for the info.