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

I have a piece of multi-threaded software which runs at different speeds under the latest ubuntu server, redhat enterprise and CentOS - all installed on the exact same server for comparison.

Ubuntu server was slowest, followed by CentOS and then redhat enterprise. The difference was 10-20%.

The difference between centOS and redhat might be exaplined by a newer gcc version, but at least in the last two operating systems the same version of gcc was used.

What I could see in the ubuntu run is that although the program used, say, 13 cores, the total CPU reported by "top" was about 1220%, while on redhat (and centOS) it was 1300%

Does anybody have an explanation? I prefer to work with Ubuntu (it's free), but I cannot afford the slow-down. I tried other multithreaded benchmarks which seemed to also indicate that ubuntu is somewhat slower - on the same downloaded executable, not compiled locally.

share|improve this question
    
Just want to point out that CentOS is free as well. Have you looked into different system parameters across the different distros? sysctl -a for a list... compare and contrast. –  djk Mar 11 '12 at 11:19
1  
Why am I being down-voted? Please explain –  eyal Mar 11 '12 at 13:50
    
I don't know why this has bee downvoted/closed, it is clearly a technical question asking for a technical answer! Looks like way too keen mods just reading the title to me. –  SimonJGreen Mar 12 '12 at 11:04
    
Thanks whoever reopened this. –  SimonJGreen Mar 12 '12 at 11:10
    
+1, seems like a perfectly good question, can't understand why it was down-voted. Possibly because the title made it look like a recommendation question, which is off topic according to the FAQ, although reading the question it is clear that this isn't a recommendation question. –  Bryan Mar 12 '12 at 11:17

1 Answer 1

This isn't a conclusive answer, just some thoughts that are too long for a comment.

  1. Have a try with atop rather than top. It provides a much better view of what's going on. I find the output of top to be very inconsistant these days as well. I have no explanation as to why, but I've seen the same behaviour you have with multiple cores.

  2. Are these installs within VMWare by chance? I ran some benchmarks using various tools on 5 different VMs running 5 different distros: Ubuntu, CentOS, RHEL, SUSE and Debian. I got WILDLY differing results that didn't seem to correlate with anything I could find. The advise I received when I escalated this to Red Hat was that some distributions kernels are better optimised for VMWare than others. This was several years ago though so things may have changed.

  3. Are you able to better describe the internal benchmark you're running in your app? This question could easily end up sitting between serverfault and stackoverflow...

share|improve this answer
    
no, clean install, i would not trust a virtual machine –  eyal Mar 12 '12 at 11:42
    
The internal benchmark is a piece of optimization software i wrote, I can't say much about it, but it's just plain OMP-based multi-threading, nothing sophisticated in the multi-threaded implementation. I also tried intel's linkpack benchmark, which also seems to indicate a faster speed for redhat. –  eyal Mar 12 '12 at 12:10
    
At your suggestion I looked at sysctl. There are differences, for example in kernel.sched_domain variables, but I do not understand what these differences mean. Could different distros be differently tweaked to improve performance, and if so, could I copy the tweak to the other distro? –  eyal Mar 12 '12 at 12:12

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.