SQL Server Performance

Opteron vs Itanium

Discussion in 'Performance Tuning for Hardware Configurations' started by aitor_ibarra, Dec 4, 2003.

  1. aitor_ibarra New Member

    Hi,

    We're looking at our next sql server upgrade, and are considering whether to jump to 64 bit or not, and whether to go for Opteron or Itanium.

    Here are the pros/cons we see at the moment for each platform...

    Opteron
    Pros:
    Cheaper than Itanium
    Faster clock speed
    Runs 32bit code - so no loss of non-ported features such as EM, DTS
    Easier to develop for (so Microsoft maybe more inclined to support it)
    Memory bandwidth increases with more CPUs (up to 4 way)
    Better than linear scaling from 1 to 4 CPUs (see TPC scores - a quad opteron equals a dual opteron in per-CPU performance, even though the dual machine had faster processors)
    Can use faster RAM
    Good balance of high TPC score and excellent price/performance

    Cons:
    Smaller cache
    No 64 bit code available yet - so should be compared to Xeon
    Performance of SQL Server/Windows for AMD-64 still an unknown quantity
    No Opteron systems approved for failover clustering
    No 8 CPU systems actually available

    Itanium
    Pros:
    Best SQL Server benchmark scores
    Larger cache (6MB now, 9MB next summer, 24MB in 2005)
    Proven scalability beyond 4 CPUs (although nowhere near linear)

    Cons:
    Cost
    Lack of Enterprise Manager, DTS in SQL Server 64 bit
    No 2 - 4 CPU TPC benchmarks from anyone other than HP
    No cluster approved systems from anyone other than HP
    Memory bandwidth is shared (by up to 4 CPUs)
    Unclear whether Microsoft will "finish" SQL 2000 64 bit before Yukon

    Have we missed anything? Has anyone got experience of SQL Server on either processor platform?

  2. joechang New Member

    frequency is irrelevant, its like comparing engine rpm between a 2L and 4L, who cares what the rpm is?
    look at SPEC CPU2000 int_base results, not just the composite, but the individual values, then throw out any single component that is mucher higher than others (because its just a silly compiler trick or other non-generally applicable result)

    comparing tpc-c scores is a little tricky, many vendor sand-bag the low end results to give the impression of linear scaling (or the low-end might be more focused on price-performance than all-out performance)
    the true tpc-c scaling should be something like:
    CPU 1P -> 2P -> 4P -> 8P etc
    32b 1.0 1.8X 1.6X 1.5X, etc
    64b 1.0 1.8X 1.7X 1.6X

    basically, the best that can be expected is around 1.5-1.6X for every doubling of cpus,
    1.5X on 32-bit system because of the overhead of AWE memory
    1.6X on 64-bit because it doesn't have this overhead
    IBM Power4 can do 1.8X because of its very wide bandwidth memory architecture

    the best test for considering 64-bit SQL is to look at your memory distribution now.
    is a large portion of your lower 2-3GB memory going to something other than buffer cache?
    if so, then you need 64-bit,
    if not, then you can use AWE memory in 32-bit system

    also, i wouldn't waste time with >4 CPU 32-bit systems, if you need 8-way, go 64
  3. aitor_ibarra New Member

    Thanks for your reply! Your articles on CPU architecture are very interesting! Particularly the chipset stuff!

    I should have known better to put down higher Mhz as a pro for Opteron!! Although it is impressive the rate that AMD are cranking up the clock speed - Mhz is a reasonable guide to performance when comparing members of the same CPU family, but not much else.

    Other than doing a real test with our databases and apps, TPC-C is really the only useful guide there is, although like all benchmarks, the results should be taken with a pinch of salt. TPC-C probably has very little in common with our apps -as I understand it, TPC-C is very write intensive (hence the massive-spindle count RAIDs you often see), wheras although we have several periods of the day where large inserts/updates happen, most of our activity are reads. But it's the only widely used benchmark that applies to SQL Server. It's also very useful to get otherwise hard to find pricing information!

    In terms of where we need to see performance gains, we're really looking at raw processing power. We're currently on a 4-way Xeon (700Mhz, 2MB L2) with 4GB RAM. Our databases aren't really large enough to warrant a 64bit address space, although having more than 3GB (we're using SQL7/NT4 so can't use more for SQL), even via AWE would help. Currently we don't have an i/o bottleneck. I think many of our queries could get a larger than expected boost from the big-cache Itaniums because many of our most frequently used tables will comfortably fit in the cache. So that is what is mainly swaying me towards Itanium. We're going to need about 400% of current performance over the next year - judging by TPC scores, the miniumum platforms that are capable of this are 8-way Xeon MP and 4-way Itanium 6M. If the 9M and Montecito give us exceptional boosts (because of cache, increased clock speeds, and dual-core) then we might be able to get away with a 2-way system with regular upgrades, paid for by fewer CPU licences for SQL Server!

    Still, Opteron does seem to have a faster cpu to memory bandwidth, but this may be compensated for by Itanium's bigger cache. Another point to mention with regard to Opteron and TPC is that although the Racksaver Opteron server result had awe switched on, and the server had 32GB RAM, it was running in 32bit mode, so Windows/SQL would only have had 4GB to play with (Opteron doesn't support PAE). This makes the result all the more remarkable, I think.

    If the choice was Opteron vs Xeon MP, I'd definitely go for Opteron, unless clustering was important, which it will be!

    edit: apologies for appalling grammar - I have a bit of a headache at the moment which is affecting my ability to write coherent English
  4. joechang New Member

    on the matter of cache size, between Pentium III 733/256K, versus the PIII Xeon 700/2M, the bigger cache significantly improved performance in small operations, ie, oltp workloads,
    in handling high row count operations, the big cache reduced the setup cost, but made no difference in the incremental row performance
    basically, with a big cache, there is a better chance what you need is in cache initially, but if are running a looping, on the second iteration, everything you need is already there.
    i don't have info on the super big itanium caches yet,
    i have generally found that clustering works fairly well, even if the hardware is not supported, if you have good troubleshooting skills, you could probably figure out any problems, the certified list is really for people who want to blame someone else

    i am not convinced a 4 CPU Xeon MP or Opteron will give you 4X over the PIII-700
    it might be easier to get approval for the itanium box since upper level management likes to play it safe,
    however, for initial 64-bit testing, it could hurt to get a low cost opteron,
    on memory bandwidth, raw bandwidth based on adding up the individual channels is irrelevent.
    both opt and itanium have adequate bandwidth from that point of view.
    what really matters is the turn-around time for small size accesses .
    this is because everything SQL Server is based on locks (32 or 64bytes?)
    i think opt has the advantage here because of the integrated memory controller,
    but i do wish that cpu vendors would wake up and build a system where main memory (128-512MB) is implemented in SRAM and have a large DRAM pool for data buffering (this was the way the original Crays were architected)
  5. gaurav_bindlish New Member

    I think we need to create a special section in the forum to archive such detailed analysis discussions.....

    What do you say guys?

    BTW, (Moderators) this topic should be in General DBA Questions....

    Gaurav
    Moderator
    Man thrives, oddly enough, only in the presence of a challenging environment- L. Ron Hubbard
  6. jstemler New Member

    I would suggest you check www.sgi.com. SGI had several large system displayed at the recent Linux world that scaled Itanium 2 processors up 16P in their entry model Altix 350. This is suppose to be an awesome machine for scaling large DB's. Tons of memory and high bandwidth as well.
  7. rage1973 New Member

    Also it looks like Intel is moving to x86-64 architecture to be compatible with Opteron in next version of Xeon. Its gonna be called Nocona http://news.com.com/2100-1006_3-5160169.html?tag=nefd_top. This poses an interesting question about what direction they are gonna go with Itanium since the IA-64 is not compatible with the x86-64. I would hold off on any Itanium purchase until things resolve as Microsoft is most likely to gear more support towards x86-64 since it's much greater marketshare since it will be included in all desktop processors in the near future. Also price difference between Opteron and Itanium machines are pretty high so if you could I would hold off on 64bit purchase until second quarter of this year.
  8. joechang New Member

    a point generally missed or not understood by press coverage is that this is not an issue of one or the other question.

    even though all processors (Opteron, P4E Xeon variant, and Itanium 2) are in the sam general ball park on single CPU performance, there is a fundamental difference in design strategy.

    both the opteron and the intel variant of x86-64 are designed to enable a reasonably low cost desktop system.
    the itanium line is designed for high-end scaling.

    the key implication of this is:
    Itanium 2 is much more expensive on 1-4 CPU systems, but scales well beyond 4 CPUs
    Opteron and P4E will have questionable scaling beyond 4 CPUs, but allow very low cost 1-4 CPU systems.

    I don't see the point of waiting if you have an immediate need for large memory, either unrestricted use > 3GB or very large memory period (>32GB)
    the same software license you buy for the OS and SQL Server can be applied to either IA-64 now or X86-64 later.
    anyone who thinks hardware is an investment is a fool, the value/cost of hardware performance declines 40% per year, buy what you need now, discard it you need more performance and new hardware is available
  9. rage1973 New Member

    If you are buying the Opteron, Microsoft has not released a full version of either OS or SQL Server 64 bit version. Of course you can still run the 32 bit version since opteron fully supports 32 bit versions but I just don't recomment being a first adopter of new technologies. Regarding Itanium there are rumors going about what the future direction of IA-64 platform will be. If Itanium sales tank due to Intel going the way of x86-64 in their mainstream server processor you can expect Microsoft to eventually drop Itanium support in their future product just as they did to Alpha and other non x86 prcessors. I know this is lot of speculating but Intel hasn't released any detailed roadmap on Itanium so noone really knows what is expected of that platform.
  10. aitor_ibarra New Member

    Interestingly, HP have just posted an new score for a 4 way Opteron server:

    http://www.tpc.org/results/individual_results/HP/HP_DL585_2.4GHz_64GB_043004_es.pdf

    This is for a 4 way machine using Opteron 850s (2.4Ghz, 1MB cache) with 16GB of RAM, Windows 2003 Enterprise (32bit) and SQL 2000 Enterprise (32 bit).

    It narrowly beats their own 4 way Itanium (RX5670 using 1.5Ghz 6MB cache processors).

    This is all the more impressive given that the Opteron, when running in 32bit mode, can only address 4GB of RAM. HP had set the /pae switch, but this would have no effect on an Opteron chip.

    In our own app, I think Itanium will still have the edge as the TPC-C benchmark is much more write intensive our apps. Still, this is a fantastic result for Opteron; beating both Xeon and Itanium whilst still using 32bit code and a 4GB RAM address space.

    The server is not available to October, by when maybe the Itanium 9M will have been released.

Share This Page