6

What I have:

  • an online financial application (ASP.NET, C#)
  • at peak we have 5K+ simultaneous users
  • backend is running on Oracle 11g (active server + stand-by using Active Data Guard). At peak - 4K-5K database sessions
  • Oracle is installed on Linux 5.8 (Oracle's unbreakable version)
  • the database size: 7TB
  • disk storage: NetApp (connected with 10GB network)

I would like to replace old servers (IT will purchase HP blades BL685C). Servers will have 256GB of RAM.

I need your help to figure out what to do with CPUs and cores. Options:

  1. 2 CPUs (2.3 GHz) with 16 cores each
  2. 4 CPUs (3.0 GHz) with 8 cores each

Question: Which one should I pick?

P.S. Next year, we will migrate from Oracle to SQL server. I hope, whatever option you recommend will work for both platforms

Alex
  • 61
  • 1
  • 2
  • 2
    We can't compare CPUs without knowing which CPUs we're comparing. Clock frequencies and core counts are insufficient to compare CPUs. Also, it depends dramatically on how well the application software can take advantage of multiple cores. – David Schwartz Jun 24 '12 at 00:03
  • I dont know how Oracle handles multi-cores and multi-CPU. I guess that's the question i'm asking. Also, I think I've provided incorrect blade model. I know for a fact, that it will be AMD CPU. – Alex Jun 24 '12 at 00:15
  • So how do the statistics for your old servers look like? What is the current bottleneck? What are the current CPUs? What is your current hardware? – Nils Jun 24 '12 at 21:16

5 Answers5

10

There are two factors you want to look at:

  1. Total aggregate performance: This is the measure of the total computing power of all the cores on the box. You can estimate this value by looking at the Passmark CPU rating for the CPU and multiplying by the number of physical CPUs in the system.

  2. Single-thread performance: This is the measure of how much computing power the CPU can give to a single thread. You can estimate this value by looking at the Passmark CPU rating for the CPU and dividing by the number of cores in the CPU. (For hyper-threaded CPUs, divide by 1.25 times the number of physical cores.)

If one machine wins on both of these measures, it's probably your best choice. If it's split on the two measures, then it comes down to how effectively your software can take advantage of multiple cores.

Note that memory performance can be important too. More memory channels typically means faster memory access. Also, of course, the total amount of memory is important. Different CPUs often mean different motherboards, which can mean different memory performance.

David Schwartz
  • 31,215
  • 2
  • 53
  • 82
1

Having approximately equal BogoMIPSes, I'd say you should estimate overall L1/L2 cache volume in both cases — the biggest is the winner.

poige
  • 9,171
  • 2
  • 24
  • 50
1

You'll also need to know the NUMA configuration. If you'll have just a single NUMA node or multiple NUMA nodes. I know that SQL Server is NUMA aware, and I assume that Oracle is as well. This can have a big impact on database performance as getting access to memory in the same NUMA node is much faster than accessing memory in another NUMA node.

mrdenny
  • 27,074
  • 4
  • 40
  • 68
0

There's some things you need to know, for example: the processor speed (ghz or mhz) don't do the real speed for a job. Take in mind there are more cycle-efficient processors than others. I think you need to look some CPU benchmarks to decide which processor is better for that server.

Have fun!

Masterl1nk
  • 147
  • 2
  • 12
0

If the CPUs are of the same class, then you can compare the speed apples to apples. That alone would push you towards the faster processors (4x8x3GHz).

The usage of your database might also be a factor. This about the "shape" of your data processing. Is it many smaller computations or fewer larger computations? Going off of what mrdenny said, and being that it's a transactional database (right? Since it's financial?) I would think that it's not so important to maximize the number of CPU cores sharing the same cache/NUMA node since the multiple cores are likely working on different tasks where the cache wouldn't play as large a role as it would in a data warehousing/data mining application. Having 4 NUMA nodes may actually allow increased throughput for memory access vs. 2 NUMA nodes in a transactional situation, where smaller threads can more easily be optimized to access the memory on their local NUMA node. Also, if the processors are the same class and the 4x8 is faster, it's likely any possible performance degradation for non-local memory access would be made up for by the increased performance/core.

If the CPUs aren't the same class, then you really need to look at some benchmarks to see if the "slower" processor is more efficient.

Also, consider possible future expansion. Are your choices between 2 and 4 processors in a 4 socket system? If you think that your demand for processing power might increase, having the 2 processors would leave you room to expand to an additional 2 processors if there are 4 sockets in the system.

apocalysque
  • 399
  • 2
  • 8