On 11.12.11 22:02, Andriy Gapon wrote:
> Author: avg
> Date: Sun Dec 11 21:02:01 2011
> New Revision: 228424
> URL: http://svn.freebsd.org/changeset/base/228424
> 
> Log:
>   panic: add a switch and infrastructure for stopping other CPUs in SMP case
>   

Hi,

Attilio asked me to verify that this commit does not introduce a
performance regression.

The box used to run these tests was a 40 Core 32GB Xeon box (HTT was
turned off, so 40 real hardware cores). As benchmark pgbench/PostgreSQL
were used, a snapshot of PostgreSQL 9.2 from 16.01.2012 was used as they
did a lot of scaling work in 9.2 which improved the numbers quite a lot
vs. 9.1. The initial benchmarks were run with a scaling factor of 100
which creates a database work set of ~1.5GB. Max throughput was achieved
at 20 Clients.

x 228423-20
+ 228424-20
+----------------------------------------------------------------------+
|                   x          +                                       |
|x  x               x      +*  +  +  xxx      * ++ +        +         x|
|         |___________________A______M_____________|                   |
|                            |___________A____M_____|                  |
+----------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  10     111073.26     115016.79     113113.49     112745.69     1169.2132
+  10     112583.56     114454.33     113668.08     113343.31     661.31761
No difference proven at 95.0% confidence

At 40 threads the results varied between 43000 - 76500 across reboots.
Attilio suspects that this can be caused by the kernel memory layout
changing under the woods creating cache effects difficult to control,
therefor the scaling factor was reduced to 10 (~150MB work set) and the
numbers got deterministic across reboot.

x 228423-40-sf10
+ 228424-40-sf10
* 228424-40-sf10-cl
+----------------------------------------------------------------------+
|x          x  x  *** * *    +  x **+  *+ * *     ** + +              +|
|       |__________A__________|                                        |
|                        |______________MA________________|            |
|                        |__________A__M_______|                       |
+----------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  10     192489.43     196045.39     194138.34     194149.19     986.61561
+  10     194093.35     198864.83     196129.36     196214.69     1545.8783
Difference at 95.0% confidence
        2065.5 +/- 1218.43
        1.06387% +/- 0.627572%
        (Student's t, pooled s = 1296.76)
*  10     194288.28     197083.85     195955.26     195733.15     1012.3529
Difference at 95.0% confidence
        1583.96 +/- 939.189
        0.815847% +/- 0.483746%
        (Student's t, pooled s = 999.567)

The 228424-40-sf10-cl results are with a patch from Attilio [1] which he
will followup on.

If anybody wants to look at the raw numbers they are available at [2].

There are results for pbzip2 runs here [3] also, the numbers are "real"
time from /usr/bin/time.

Cheers,
Florian

[1] http://people.freebsd.org/~attilio/cachelineunshare.patch
[2] http://tb.smeets.im/~flo/stop-sched/pgsql/
[3] http://tb.smeets.im/~flo/stop-sched/pbzip2/

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to