OS: Linux CentOS 64-Bit CPU: Intel Core i7 - 4 cores RAM: 16 GB Storage: 2 x 2 TB hard drives Bandwidth: 20 TB per month With Uplink port speed of 100Mbs How much traffic can I handle at once, unique visitors a day, etc.
There's too many variables here to guess that, especially if you'll be having many different clients on the server, doing different things. It all depends on what your hosting, how well written the scripts code is, how many MySQL queries per view, disk IO, bandwidth available, plus any other additional overhead etc.
So out of the gate how do you know what size server you should get? For instance what if I do a email blast to 100,000 and have no clue how many will click through etc.
You wouldn't need something very crazy for that, chances are you'll have a low amount of click throughs and they definitely won't all come in at once. If your not sure how big of a server you need, your best option would be to start low and increase if needed, in this case I'd suggest a VPS because they are easy to upgrade if needed. It's good to have resources ready for when you need them, but if its a dedicated server you may be paying more than you need to for what you actually need to use as a service, and you can save yourself some start-up costs.
Would it be wise to get two servers? I hear that you can allocate the load, i.e searches to one server, etc. Does this help?
Yes, but you would either need to use Hadoop or write your code to be run on various servers, plus you'd want a private network with a faster connection between the servers in the cluster. Plus you would probably want a dedicated load balancer.