0

I have a 24 Core Opteron 8435 system with 48GB of RAM. However, the performance is way below that of our 6 Core Intel with 30GB of RAM. I wonder if anyone could this of why? We're running a Drupal website off this box with mysql 5.0 installed on the same box. PHP 5.6.13 and Apache 2.2.9. Every now and then the response is quicker than lightening but most times it struggles. mpstat -P ALL shows little activity but it's almost like the apache children are having problem starting up but once started are fine? Is this a CPU cache issue?

My dmesg is at http://pastebin.com/KSWxqmJe

Khushil
  • 553
  • 3
  • 11
  • Not programming related. Try superusers.com –  Jul 03 '10 at 08:35
  • I found Linux happily put all my Folding At Home processes on one processor core. top, f, j, enter, to see CPU numbers. (The kernel preserves CPU affinity, and doesn't appear to rebalance.) If it is wasting cores, you can use taskset to fix it. –  Jul 03 '10 at 08:58
  • Unfortunately superusers.com seems to have died. taskset is interesting but when Apache spawns children will these also need to be taskset I wonder. I'll play tonight and report back if this question is still here. I posted yesterday but it seems to have been removed without notice! ;-) – Khushil Jul 03 '10 at 09:12
  • 1
    @tur1ng It's http://superuser.com/ ! –  Jul 03 '10 at 09:29
  • CPU masks created by taskset are inherited by child processes. You don't have to restrict them to a single core. You'd probably get the best performance restricting them to one or two NUMA nodes. If you've "disabled" NUMA by enabling interleaving in the BIOS, then performance will be bad no matter what you do. It's sometimes useful on a machine like yours to put the web server on one subset of CPUs, and the database on a different subset of CPUs. That should help with your locality problems. –  Jul 03 '10 at 09:34
  • @OP: What happens to this question when that pastebin.com link expires? You should include relevant information in the question itself. –  Jul 03 '10 at 16:16
  • 1
    possible duplicate of [24 Core Server Performance](http://serverfault.com/questions/157130/24-core-server-performance) – sybreon Jul 04 '10 at 02:28

3 Answers3

1

This machine is not in production as yet and is in test and our hosting facility so no problems with making changes/reboots etc.

I have turned off BIOS Memory Interleaving which has indeed made a difference but as yet still about 100ms behind the 12 core box on ab -c 10 -n 10.

I can see the process' moving better across the cores now too.

Khushil
  • 553
  • 3
  • 11
0

What you need to do is produce a synthetic load in your lab on a similar machine, and compare its behaviour with another one where the problem does not occur.

If you deployed this into production without trying it in a test environment, you can expect trouble.

The idea of running MySQL on the same machine as a web server for a high performance environment troubles me slightly ... you'll get better performance with a small load but it will generally scale less. However your experience may vary.

The key is to reproduce the environment exactly and run load testing against it, this is not necessarily easy, but it's the only way to know what's going to happen before getting it into production and having it affect your users.

MarkR
  • 2,928
  • 17
  • 13
0

Did you make any tweak at all? otherwise I think you can only only expect an speed increment but not a wow change.

Can you just split the server in two smaller boxes so you have DB AND webserver ? that will do all the debugging process much more easier.

for apache, are you using forking ? if so try tweaking the child processes number, that will give you more concurrency ( the default number of 150 processes is too low, at least on centos)

I don't know much about drupal. Are the system tables InnoDB? I soo try to read a little about how to increase the buffer memory for mysql. Stick to this

Gabriel Sosa
  • 1,220
  • 1
  • 13
  • 13