Review Part I here. The best I could muster was 21 minutes in a co-located setup. To make the comparison fair, I am going to express it as a percentage of the pre-optimisation application / PostgreSQL DB on production versus my development machine.
Production App | Production DB | Development Co-located | |
---|---|---|---|
CPU | 2 x Xeon 5140 2.33GHz (#4) | 1 x Xeon 5140 2.33GHz (#2) | Core i7 2600 3.4GHz (#4) |
RAM | 4GiB | 4GiB | 12GiB |
HDD | Enterprise SAN | Enterprise SAN | OCZ Vertex 3 240GB SSD |
NIC | Broadcom Gigabit BCM5708S | Broadcom Gigabit BCM5708S | Intel Gigabit 82579V |
PostgreSQL | - | fsync = off | fsync = on, synchronous_commit = off |
Application | Unoptimised, single threaded | - | Optimised, multithreaded |
The performance increase between the Production App + Production DB server combo vs. my co-located development machine?
Production Split | Development Co-located | |
---|---|---|
Duration (min) | 564 | 12 |
That is a performance increase of 98%, or 47 times faster. The three big factors?
My work is done here. 9.4 hours optimised down to 12 minutes. Impressive.