Re # 2: use Siege or any appropriate tool for web testing - Apache ab, perfmon and shell scripts, no matter what, pull them out of the server and report them (Siege acts a bit more like real users, I really recommend it). You can get some real indicators of what your server can handle before it drowns in real life: requests per second, concurrent users, response time, bandwidth usage, etc.
Of course, this will not help when you are only at the design stage. In this case, install several OSS web applications with similar concepts and hammer them first. This will only be a rough estimate, since there are so many variables, but still better than pulling numbers from the air.
source share