Jump to content

Which Is better Operton or Xeon


gemcneill

Recommended Posts

I have been running all my servers on opertons, but I am starting to wonder about intel. Is anyone running both types and share their insights. I run mostly Source based games, but a few cod4 servers here and there. Also I have heard people are using phenoms for servers. How are those servers compared to what you had before. Please share what you know :)

 

 

George

Link to comment
Share on other sites

Phenom:

 

nothing: 115 cycles

locked add: 143 cycles

cpuid: 221 cycles

 

Opteron 275:

 

nothing: 8 cycles

locked add: 6 cycles

cpuid: 61 cycles

 

Intel Woodcrest:

 

nothing: 60 cycles

locked add: 72 cycles

cpuid: 264 cycles

 

Intel Core2Duo:

 

nothing: 63 cycles

locked add: 72 cycles

cpuid: 288 cycles

 

Opteron 275 is a winner.

 


#include <stdio.h>
#include <time.h>
#include <sys/time.h>

#define rdtsc(low) \
  __asm__ __volatile__("rdtsc" : "=a" (low) : : "edx")

#define TIME(x,y) \
       min = 100000;                                           \
       for (i = 0; i < 1000; i++) {                            \
               unsigned long start,end;                        \
               rdtsc(start);                                   \
               x;                                              \
               rdtsc(end);                                     \
               end -= start;                                   \
               if (end < min)                                  \
                       min = end;                              \
       }                                                       \
       printf(y ": %d cycles\n", min);

#define LOCK    asm volatile("lock ; addl $0,0(%esp)")
#define CPUID   asm volatile("cpuid": : :"ax", "dx", "cx", "bx")
#if 0
#define GTOD    gettimeofday (&tvstart, NULL); gettimeofday (&tvstop, NULL)
#endif
int main()
{
       struct timeval tvstart, tvstop;
       unsigned long min;
       int i;

#if 0
       TIME(GTOD, "gettimeofday start/stop:");
#endif
       TIME(/* */, "nothing:");
       TIME(LOCK, "locked add:");
       TIME(CPUID, "cpuid:");
}

Link to comment
Share on other sites

I have used older Xeons and they operated okay until more modern games were released, ie BF2, where the players counts and the demands on the server went up alot.

 

Now we use Dual CPu Dual Core Opteron 2216's and they work really well. Haven't had them max out yet, which I definatly can't say of the old servers we had. Though in reality I am comparing processors from different generations so it isn't a fair fight.

Link to comment
Share on other sites

You will have to forgive me, this code looks like c, but I dont have a compiler. Can you compile it for me in a exe or tell me how I can run this code and I will get back to you and do the servers have to be just sitting there not running anything in order to test this code? Also can you provide us a key to read the things you posted so we know what is good and why its good and what is bad and why it is bad. Also jbiloh said he is working just fine with them, so is the real world experience conflicting with this experiment?

 

George

Link to comment
Share on other sites

Would you mind running that code on your Opteron 2216's so I can see if they perform just as well as the old opterons?

 

I don't have a problem giving it a shot but I wouldn't know where to start ;)

 

My programming knowledge is very minor. I see resemblance in the code to Python which I am currently in the process of learning but I cannot identify which language you are using.

Link to comment
Share on other sites

I don't have a problem giving it a shot but I wouldn't know where to start ;)

 

My programming knowledge is very minor. I see resemblance in the code to Python which I am currently in the process of learning but I cannot identify which language you are using.

 

It's C++, I believe

Link to comment
Share on other sites

Here you go. Sorry, I had to build this under cygwin since i lost my visual studio cd..

 

A nothing call is basically calling a null function. This basically just does a simple NULL call to see how many cycles it takes. This is useful to see how deep your pipeline depth is, or how much exec latency occurs. I believe memory controller latency has alot to do with this.

 

A lock ; addl call simply locks the memory bus to wait for all previous reads to complete. SMP on windows uses this (i think) to do atomic ops on SMP.

 

cpuid is just reads, well, the CPU ID :)

 

I have some other benchmarks, but those are ones I find intresting for my workloads.

benchmark.zip

Link to comment
Share on other sites

I'm assuming the lower the #'s, the deeper the pipeline depth is then.

 

Just running it on my own home computer which contains a 4400+ x2 939 socket, it output the exact same as the Opteron 275 :o.

 

nothing:: 8 cycles

locked add: 6 cycles

cpuid: 65 cycles

 

Looks like I made a good choice when building it :).

Link to comment
Share on other sites

Home computers don't really benifit from those benchmarks, maybe a NULL call latency, cpuid is useless as well as no program calls cpuid over and over.

 

Atomic ops on intel have always sucked. CAS and CMPXCHG on AMD has always been very fast..

 

Lower latency = faster pipeline and/or memory controller latency. It would be intresting to see how those numbers are efftected with some CPU burning program.

Link to comment
Share on other sites

Results are as follows:

 

nothing:: 9 cycles

locked add: 9 cycles

cpuid: 68 cycles

 

The system is:

 

------------------

System Information

------------------

Operating System: Windows Server 2003, Web Edition (5.2, Build 3790) Service Pack 2 (3790.srv03_sp2_gdr.070304-2240)

System Manufacturer: HP

System Model: ProLiant DL145 G3

BIOS: PhoenixBIOS 4.0 Release 6.1

Processor: Dual-Core AMD Opteron Processor 2216 (4 CPUs), ~2.4GHz

Memory: 2038MB RAM

Link to comment
Share on other sites

Well from the results you posted, the phenom should be pretty horrible compared to its opteron counter part, but the question is, the price point for for phenom servers counter act that? Also does some one have real world test (i.e. opteron server and phenom server side by side) so we can see the results?

 

George

Link to comment
Share on other sites

  • 3 weeks later...

Just got a new server, figured I would post some results.

 

nothing:: 63 cycles

locked add: 63 cycles

cpuid: 261 cycles

 

Operating System: Windows Server 2003, Standard Edition (5.2, Build 3790) Service Pack 2 (3790.srv03_sp2_gdr.070304-2240)

System Manufacturer: Supermicro

System Model: PDSMU

BIOS: Ver 1.00PARTTBLH

Processor: Intel® Xeon® CPU X3220 @ 2.40GHz (4 CPUs), ~2.4GHz

Memory: 4094MB RAM

Link to comment
Share on other sites

The new Intel CPUs are superior for most uses, though I am not sure if that is the case when it comes to game servers. The Core 2 Duo and Core 2 Quad processors are currently a great value, and I highly recommend them. If you need TOP speed, a pair of dual Harpertown Xeons should do the job for you.

 

Intel had been behind during the P4 era, but since the Core 2's have been out AMD has been playing "catch-up".

Link to comment
Share on other sites

intel is still playing catch up. Intel's processors do not scale, they still have a shared FSB and the memory controller is located off die. They might be winning benchmarks, but benchmarks are specific to only a few workloads. gameservers do not fall in those benchmarks.

Link to comment
Share on other sites

intel is still playing catch up. Intel's processors do not scale, they still have a shared FSB and the memory controller is located off die. They might be winning benchmarks, but benchmarks are specific to only a few workloads. gameservers do not fall in those benchmarks.

 

Just for curiosity sake, under what benchmarks DO gameservers fall? What load or test would be comparable to that of running a gameserver as most benchmarks don't cater to the relatively small % of server users who run game servers. And, while the memory controller is still located off die, if I'm not mistaken I believe several of the intel server chipsets have a dedicated FSB per socket such as the 5400. (http://techreport.com/articles.x/13224/1)

In addition, what do you mean by they do not scale? I have read several of your posts, and you seem like a very intelligent person, so I'd love to hear your insight as to why one is better than the other, particularly in the performance per watt category. Imo I don't think you'd be wrong to go with either, as I think it is more of a personal preference.

Link to comment
Share on other sites

I'm not saying either, Intel wins at things and loses at others. It wins are benchmarks (obiviously), and AMD wins at inital design (NUMA, DCA, mem controller) etc.

 

AMD is falling behind, but they were first to market x86-64 (to home users), NUMA, HTT, DCA, and other things. They picked up most of those ideas from DEC/Alpha

 

It's in my opinion that game servers run better on AMD than on Intel. ie; CSS's tickrate is sensitive to memory controller latency. Also; I'm talking about server hosting and not personal computer stuff.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Terms of Use