Discussion:
HyperThreading and Arriba?
Clint Byrum
2004-01-08 19:02:32 UTC
Permalink
Hi there. We have a bunch of dual P4 Xeons running Linux that handle
requests in a 2-tier setup using mod_backhand. We've enabled
HyperThreading on a couple of them (it was disabled before due to kernel
panics/oopses on earlier kernels). I noticed that the Arriba is
identical on the HT boxes as the non-HT boxes, though the backhand
status page does say that the #CPUs is 4.

We're using byLoad primarily. Does byLoad care about the # of CPUs? I
ask because these boxes stay at the same load as the non-HT ones do,
though they do crank out about 10% more requests/sec. Our main load is
text searching, which seems to HyperThread quite well.

Questions:

1) Isn't Arriba the total processing power on the box, not per CPU?

2) 10% is nice, and well within the expectations. I'm just wondering if
we couln't get more out of these machines. Is anyone else using
HyperThreading P4's with mod_backhand/apache and seeing different
results? I understand that this is highly application dependant due to
the nature of HyperThreading.

3) Should we experiment with byCPU or byBusyChildren? I tend to think
byLoad makes the most sense, since these boxes run some database things
that might not register as well with BusyChildren.

Thanks everyone (and thanks to the developers for mod_backhand. ;)

-cb
Theo Schlossnagle
2004-01-08 20:02:14 UTC
Permalink
Post by Clint Byrum
1) Isn't Arriba the total processing power on the box, not per CPU?
Yes.
Post by Clint Byrum
2) 10% is nice, and well within the expectations. I'm just wondering if
we couln't get more out of these machines. Is anyone else using
HyperThreading P4's with mod_backhand/apache and seeing different
results? I understand that this is highly application dependant due to
the nature of HyperThreading.
The Arriba is calculated only once. If you enable hyperthreading, you
should delete the "arriba" file that holds that number for it to be
recalculated ont hat box.
Post by Clint Byrum
3) Should we experiment with byCPU or byBusyChildren? I tend to think
byLoad makes the most sense, since these boxes run some database things
that might not register as well with BusyChildren.
use byBusyChildren
Post by Clint Byrum
Thanks everyone (and thanks to the developers for mod_backhand. ;)
You are welcome.

// Theo Schlossnagle
// Principal Engineer -- http://www.omniti.com/~jesus/
// Postal Engine -- http://www.postalengine.com/
// Ecelerity: fastest MTA on earth
Clint Byrum
2004-01-08 22:07:58 UTC
Permalink
Post by Theo Schlossnagle
The Arriba is calculated only once. If you enable hyperthreading, you
should delete the "arriba" file that holds that number for it to be
recalculated ont hat box.
Actually on these boxes, HT was never turned off. But then I realized
that I had copied the Arriba from an identical machine that did have HT
turned off. So I rm'd the Arriba, stopped apache, counted to 10, started
apache.. and it came out significantly lower all three times I tried it.
The identical non-HT box got 2587086, while the HT box scored 2345555,
then 2329478, then 2416500. AFAIK the box was completely idle for all of
these calculations. Maybe the Arriba calc does something that isn't HT
friendly?
Post by Theo Schlossnagle
Post by Clint Byrum
3) Should we experiment with byCPU or byBusyChildren? I tend to think
byLoad makes the most sense, since these boxes run some database things
that might not register as well with BusyChildren.
use byBusyChildren
Any reason you suggest this one over byLoad? Or did you mean, just
experiment with it? One thing I don't like about this is that I have to
remember to always 'apachectl graceful' after a stop/start of apache, or
the stats won't show properly.
Theo Schlossnagle
2004-02-23 20:23:10 UTC
Permalink
Hi Clint,

I was scouring my email box and found this message. Did you ever get a
satisfactory resolution to this problem?
Post by Clint Byrum
Post by Theo Schlossnagle
The Arriba is calculated only once. If you enable hyperthreading, you
should delete the "arriba" file that holds that number for it to be
recalculated ont hat box.
Actually on these boxes, HT was never turned off. But then I realized
that I had copied the Arriba from an identical machine that did have HT
turned off. So I rm'd the Arriba, stopped apache, counted to 10, started
apache.. and it came out significantly lower all three times I tried it.
The identical non-HT box got 2587086, while the HT box scored 2345555,
then 2329478, then 2416500. AFAIK the box was completely idle for all of
these calculations. Maybe the Arriba calc does something that isn't HT
friendly?
Post by Theo Schlossnagle
Post by Clint Byrum
3) Should we experiment with byCPU or byBusyChildren? I tend to think
byLoad makes the most sense, since these boxes run some database things
that might not register as well with BusyChildren.
use byBusyChildren
Any reason you suggest this one over byLoad? Or did you mean, just
experiment with it? One thing I don't like about this is that I have to
remember to always 'apachectl graceful' after a stop/start of apache, or
the stats won't show properly.
_______________________________________________
backhand-users mailing list
http://lists.backhand.org/mailman/listinfo/backhand-users
--
// Theo Schlossnagle
// Principal Engineer -- http://www.omniti.com/~jesus/
// Postal Engine -- http://www.postalengine.com/
// Ecelerity: fastest MTA on earth
Clint Byrum
2004-02-24 00:42:12 UTC
Permalink
Post by Theo Schlossnagle
Hi Clint,
I was scouring my email box and found this message. Did you ever get a
satisfactory resolution to this problem?
I'm not sure if I'd say its a resolution...

I've taken to manually tweaking arribas on the machines that have
hyperthreading. Since we see a 15 - 25 percent performance increase for
our app with HT, I've been upping the arriba by 20% on the HT machines.
Seems to be working out alright.

Really I think this just exposes Arriba as a "good guess", but not to be
taken as the defacto speed of the machine for all tasks. I'm sure P3's
and Athlons would score lower than P4's in arriba, but perform as well
or better with floating point apps. Its all very subjective.

Thanks for checking back in though. :)

-cb

Loading...