Thread: Postgres performance on Linux and Windows
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.
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
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" <andy@squeakycode.net> 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
> 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 <promisic@gmail.com> 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
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