3

I'm looking forward to buy a Dell PowerEdge Tower server, that would cater to a low or moderate expected load, at least for the time being. I have a question about it's processor -- whether it is better to have

  • Two Intel Xeon 2.26 GHz processors
  • Single Intel Xeon 2.26 GHz processors
  • Two Intel Xeon 2.0 GHz processors

Option #1 would perhaps be the best, but I'm considering alternatives because of budget constraints. Any insight from the experts will be highly valuable for me!

About the application

I guess my question remains open-ended unless I tell about the web application to be hosted. The web app is a simple one, that lets you execute code remotely. For example, you write a C program, and click on the 'Submit' button. The code then goes to server, gets compiled and executed, and the output (or any error message) is then displayed back to the user in his web browser. So, it has moderately equal amount of both I/O and CPU bound tasks. And yes, a child process is forked every time to run a code.

2
  • Is your workload multi core aware? If its not adding two (I presume quad core) processors is not going to help as much as the raw clock speed would.
    – ITHedgeHog
    Aug 31, 2011 at 9:40
  • @ITHedgeHog "Workload"? Do you mean the way I've written my application? I don't think it deals in anyway with the machine architecture, apart from any defaults the Apache web server might have.
    – Barun
    Aug 31, 2011 at 10:02

4 Answers 4

8

It depends on your load. If your app is single-threaded, CPU-bound one, the GHz trumps almost anything. If you have a multiple multi-threaded apps (e.g. a web server), then core count is more important than single-threaded performance, and if you are I/O bound, then CPU doesn't really matter much.

5
  • It also helps if you are using processes instead of threads which as a matter of fact is the current trend in scaling esp. web services.
    – pfo
    Aug 31, 2011 at 9:45
  • @Paweł Brodacki Thanks for your suggestions! I'm updating my question regarding the kind of application it is going to host. Could you please give some further insight in details? That would be really helpful considering I've very little knowledge about these. :)
    – Barun
    Aug 31, 2011 at 10:06
  • The current trend is using threads instead of processes, sorry.
    – TomTom
    Aug 31, 2011 at 10:37
  • 1
    Allowing upload of C code for compiling / running is a MASSIVE security risk, even with each request being handled in a seperate process - trying to run it in threads is just plain dumb. It is all about the load - but more specifically the amount of concurrency. Bearing in mind hyper-threading (nothing to do with threaded processes TomTom)) the more CPU threads you've got, the more responsive/faster the system will be as a whole.
    – symcbean
    Aug 31, 2011 at 12:20
  • +1 symcbean ... how long will it be before someone tries a fork bomb (either through curiosity or maliciously) and DoS's the server? (not that this is the only risk, but assuming a sandbox executing the process, then it's the most likely that doesn't require elevated privs or gaol-breaking).
    – Callie J
    Aug 31, 2011 at 15:37
7

•Single Intel Xeon 2.26 GHz processors

Because you can get another one later.

Assuming this is really low xpected load for the moment.

1

For code compilation, it is largely CPU bound. So, you will benefit from a higher GHz.

However, for the example you gave, you will benefit more from two 2.0GHz processors if you are able to split your compilation jobs e.g. via make -j command.

The biggest I/O constraint will be the network transfer of the code as your code compilation can be done entirely in memory, without touching the disk.

Of course, all this assumes that you're not trying to compile simple hello world code, but more complex batch compilation work.

2
  • Oh, thanks! I never knew about that option of make. Btw, mine is not a hello world program -- but how "code compilation can be done entirely in memory, without touching the disk"?
    – Barun
    Aug 31, 2011 at 14:11
  • Depends. C++ Compilation is notoriously IO bound and a SSD is more important - happens when you open lots of small files ;)
    – TomTom
    Sep 16, 2012 at 17:45
1

If there are multiple people submitting programs simultaneously, this might well benefit from more cores, less Ghz.

The other thing to consider is the age of the CPU, all Xeons are not created equal, so if one of your choices includes older xeons...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .