Dusan Misic wrote:
I had done some testing for my application (WIP) and I had executed
same SQL script and queries on real physical 64-bit Windows 7 and on
virtualized 64-bit CentOS 6.
Both database servers are tuned with real having 8 GB RAM and 4 cores,
virtualized having 2 GB RAM and 2 virtual cores.
Virtualized server crushed real physical server in performance in both
DDL and DML scripts.
My question is simple. Does PostgreSQL perform better on Linux than on
Windows and how much is it faster in your tests?
You didn't mention what tuning you did on the Windows server. If you
set shared_buffers to a large value, more than around 512MB, that's been
reported to slow the server down rather than make it faster on that OS.
The other thing you can easily get wrong in this sort of comparison is
having one server enforce synchronous writes, while the other cheats.
Many virtualized systems will not flush information to disk properly
during writes, which is faster but can lead to database corruption after
a crash. See http://wiki.postgresql.org/wiki/Reliable_Writes for more
information on this general topic. Generally for a VM solution, you
need to check if it properly handles the "fsync" system call.
Comparing performance across two different operating systems fairly is
really hard to get right. It's easy to skew the results because of
something unrelated to the difference in database performance, such as
Kevin's commentary about network speed heavily influencing results.
--
Greg Smith 2ndQuadrant US greg@xxxxxxxxxxxxxxx Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.us
--
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance