Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.

share|improve this question
    
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 '11 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 '11 at 10:02

4 Answers 4

up vote 7 down vote accepted

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.

share|improve this answer
    
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 '11 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 '11 at 10:06
    
The current trend is using threads instead of processes, sorry. –  TomTom Aug 31 '11 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 '11 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). –  Chris J Aug 31 '11 at 15:37

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...

share|improve this answer

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.

share|improve this answer
    
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 '11 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 '12 at 17:45

•Single Intel Xeon 2.26 GHz processors

Because you can get another one later.

Assuming this is really low xpected load for the moment.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.