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?

Thank you for your time.

Search Discussions

  • Andy Colson at Aug 3, 2011 at 5:05 pm

    On 8/3/2011 11:37 AM, 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?

    Thank you for your time.
    Given the exact same hardware, I think PG will perform better on Linux.

    Your question "how much faster" is really dependent on usage. If you're
    cpu bound then I'd bet they perform the same. You are cpu bound after
    all, and on the exact same hardware, it should be the same.

    If you have lots of clients, with lots of IO, I think linux would
    perform better, but hard to say how much. I cant recall anyone posting
    benchmarks from "the exact same hardware".

    Comparing windows on metal vs linux on vm is like comparing apples to
    Missouri. If your test was io bound, and the vmserver was write
    caching, that's why your vm won so well... but I'd hate to see a power
    failure.

    It would be interesting to compare windows on metal vs windows on vm
    though. (Which, I have done linux on metal vs linux on vm, but the
    hardware specs where different (dual amd64 4 sata software raid10 vs
    intel 8-core something with 6-disk scsi hardware raid), but linux on
    metal won every time.)

    I think in the long run, running the system you are best at, will be a
    win. If you don't know linux much, and run into problems, how much
    time/money will you spend fixing it. Compared to windows.

    If you have to have the fastest, absolute, system. Linux on metal is
    the way to go.

    (This is all speculation and personal opinion, I have no numbers to back
    anything up)

    -Andy
  • Dusan Misic at Aug 3, 2011 at 5:16 pm
    Thank you Andy for your answer.

    That is exactly what I had expected, but it is better to consult with
    experts on this matter.

    Again, thank you.

    Dusan
    On Aug 3, 2011 7:05 PM, "Andy Colson" wrote:
    On 8/3/2011 11:37 AM, 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?

    Thank you for your time.
    Given the exact same hardware, I think PG will perform better on Linux.

    Your question "how much faster" is really dependent on usage. If you're
    cpu bound then I'd bet they perform the same. You are cpu bound after
    all, and on the exact same hardware, it should be the same.

    If you have lots of clients, with lots of IO, I think linux would
    perform better, but hard to say how much. I cant recall anyone posting
    benchmarks from "the exact same hardware".

    Comparing windows on metal vs linux on vm is like comparing apples to
    Missouri. If your test was io bound, and the vmserver was write
    caching, that's why your vm won so well... but I'd hate to see a power
    failure.

    It would be interesting to compare windows on metal vs windows on vm
    though. (Which, I have done linux on metal vs linux on vm, but the
    hardware specs where different (dual amd64 4 sata software raid10 vs
    intel 8-core something with 6-disk scsi hardware raid), but linux on
    metal won every time.)

    I think in the long run, running the system you are best at, will be a
    win. If you don't know linux much, and run into problems, how much
    time/money will you spend fixing it. Compared to windows.

    If you have to have the fastest, absolute, system. Linux on metal is
    the way to go.

    (This is all speculation and personal opinion, I have no numbers to back
    anything up)

    -Andy
  • Kevin Grittner at Aug 3, 2011 at 5:29 pm

    Dusan Misic wrote:

    My question is simple. Does PostgreSQL perform better on Linux
    than on Windows and how much is it faster in your tests?
    We tested this quite a while back (on 8.0 and 8.1) with identical
    hardware and identical databases running in matching versions of
    PostgreSQL. On both saturation stress tests and load balancing a
    real live web site between PostgreSQL on Windows and Linux, Linux
    came out about 40% faster. Who knows what the number would be
    today, with current PostgreSQL, Linux, and Windows? Anyway, perhaps
    it's a useful data point for you.

    BTW, I wrote a tiny Java program to push data in both directions as
    fast a possible over our network to check for networking problems
    (it really showed up half duplex legs pretty dramatically), and when
    everything was on one switch it ran 30% faster if both ends were
    Linux than when both ends were Windows. I found it interesting that
    with one end on Linux and one on Windows, it split the difference.
    So this is not unique to PostgreSQL.

    -Kevin
  • Greg Smith at Aug 9, 2011 at 3:52 am

    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@2ndQuadrant.com Baltimore, MD
    PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.us

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-performance @
categoriespostgresql
postedAug 3, '11 at 4:37p
activeAug 9, '11 at 3:52a
posts5
users4
websitepostgresql.org
irc#postgresql

People

Translate

site design / logo © 2022 Grokbase