MySQL Results: Scaling

Back to our main subject, our astute readers have probably already noticed a weird anomaly. Let us analyze this further. If you look closely at both our measurements, Quad-core and Dual-core x86, you'll notice that the scaling is negative. To make it more clear, we made an average of all concurrency numbers from 5 and higher.

MySQL Linux (Queries/s)
Sun T1
4/8 cores 1 GHz
MSI K2-102A2M
Opteron 275
Xeon 5160
Woodcrest 3 GHz
MSI K2-102A2M
Opteron 280
Average Dual-core
(T1: quad-core)
362 749 996 805
Average Quad-core
(T1: octal-core)
433 590 904 622
Speedup Dual to Quad 20% -21% -9% -23%


This is nothing short of amazing. It seems like an anomaly, but this is not the case. These benchmarks have been checked, verified and checked again. They are accurate. The x86 cores running on Linux perform better with two cores than with four cores, but the T1 running Solaris actually improves performance going from 4 to 8 cores.

So who is guilty? Linux or the Opteron system? We had to test with Solaris on the Opteron to be sure. However, the Serverworks chipset of our MSI 1U server was not supported by x86 Solaris. So we went back to our homebuilt server, based on the MSI K8N Master2-FAR.

MySQL Solaris (Queries/s)
Sun T1 4/8 cores 1 GHz Opteron 280 Solaris Opteron 280 Linux
Average Dual-core
(T1: quad-core)
362 456 799
Average Quad-core
(T1: octal-core)
433 605 625
Speedup Dual to Quad 20% 33% -22%


And this puts the performance of our UltraSparc T1 in a whole different perspective. First of all, it is clear that while MySQL might not be the most scalable database, the current kernel of Linux is not helping matters. We did tweak the Linux kernel two ways: the 2.6.15 kernel was optimized for either Intel's or AMD's architecture and the AMD architecture also got NUMA support.

So what is going on here? After talking to our MySQL guru (P. Zaitsev), it turns out that in some circumstances, MySQL might cause trouble for the Linux mutex (mutual exclusion) implementation: "mutex ping-pong". The mutex implementation makes sure that two threads cannot access data in the main memory that is locked by another thread.

It seems however more a MySQL problem than a Linux one, as other databases like DB2 scale very well in Linux. For DB2 under the same load we noticed a performance increase of no less than 80-85% when going from two to four cores. Also, with some loads, the bad scaling kicks in later than our "Select dominated" load. Intel's performance labs told us that they also ran into the same problem.

These issues are not as severe as the problems we encountered with MySQL in Mac OSX. Note that Apple seems to have recognized the problem and seems to offer a workaround. We'll report back with other MySQL workloads to investigate the MySQL scaling problem further.

PostGreSQL Results

PostgreSQL 8.0.7, another open source database, uses processes and not threads to deal with connections. The consequence is that the benchmark numbers are a lot more stable: once each core is busy with it's process, you almost get maximum performance. In other words, the results didn't change much from 5, 10 or 25 concurrent users. To keep things simple, we only list the numbers with 20 users, which results in peak performance. The queries per second numbers at 5 and 25 were only a few percent lower. We did not include the T2000 Sun Server as the optimal PostGreSQL configuration is still under investigation.

PostgreSQL 8.0.7 (Queries/s)
DL385 1 x Opteron 280 517
Intel 2 x Xeon "Irwindale" 3.6 GHz 448
MSI 1U 1 x Opteron 275 490
MSI 1U 1 x Opteron 280 524
Intel 1 x Xeon 5160 WC 3 GHz 673


Another clear victory for Woodcrest. On the Opteron, every 10% in clockspeed increase seems to result in a 7% performance increase. So if we extrapolate, an Opteron 3 GHz would arrive at 616 queries per second.

MySQL Benchmarks Performance Analyses
Comments Locked

91 Comments

View All Comments

  • JohanAnandtech - Wednesday, June 7, 2006 - link

    Running 4 threads of SSL on 8 core Opteron gives you almost exactly the same scores as 4 threads on a 4 core Opteron. The 2.2 GHz DC Opteron runs at almost exactly the same speed as the 3 GHz woodcrest (that is why you can almost not see it), the 2.4 GHz is clearly in the lead.

    Sign/s: the 2.4 GHz Opteron is keeping up.

    Windows tests: see Jason Clark :-). At the end of this week, Jason will present the Windows based ones.
  • hondaman - Wednesday, June 7, 2006 - link

    Is gentoo using 64 bit?
  • JohanAnandtech - Wednesday, June 7, 2006 - link

    Yes. Added that to the configuration page. Thx.
  • vortmax - Wednesday, June 7, 2006 - link

    Can't keep a company the size of Intel with all it's resources down for too long. They came back and came back hard. I'm sure AMD was expecting this and I'm guessing they have some kind of contingency plan to counter. It might not be this year, but I would expect that in Q1 of 07, they will have some big announcements.

    Competition is a good thing.
  • stmok - Wednesday, June 7, 2006 - link

    Yeah, the contingency plan is called K8L. ;-)
  • Questar - Wednesday, June 7, 2006 - link

    So much for the fanboys saying the FSB would cripple Woodcrest.
  • DigitalFreak - Wednesday, June 7, 2006 - link

    Woodcrest, maybe. It will be interesting to see how the quad processor version does.
  • eRacer - Wednesday, June 7, 2006 - link

    A typo in the conclusion...under AMD Opteron disadvantages:

    - DDR2 offers lower latency, less power and less cost (for now)

    should be an advantage
  • vijay333 - Wednesday, June 7, 2006 - link

    i think AT is correct - unless i'm mistaken, opterons don't support DDR2, so they don't have the benefits of DDR2 (lower latency etc)
  • eRacer - Wednesday, June 7, 2006 - link

    quote:

    i think AT is correct - unless i'm mistaken, opterons don't support DDR2, so they don't have the benefits of DDR2 (lower latency etc)


    Oops, you are probably correct. I was thinking ahead to rev. F Opteron.

Log in

Don't have an account? Sign up now