Re: bad performance on Solaris 10

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bruce,


I saw even on this alias also that people assumed that the default wal_sync_method was fsync on Solaris.

I would select fsync or fdsync as the default on Solaris. (I prefer fsync as it is already highlighted as default in postgresql)

Another thing to improve the defaults on Solaris will be to increase the defaults of
wal_buffers
and
checkpoint_segments

(I think in 8.1 checkpoint_segments have been already improved to a default of 8 from the previous 3 and that may be already some help in performance out there. )

These three changes improve out-of-box performance of PostgreSQL quite a bit on Solaris (SPARC as well as x64 platforms).

Then you will suddenly see decrease in the number of people PostgreSQL community complaining about Solaris 10, as well as Solaris community complaining about PostgreSQL. (The benefits are mutual)

Don't get me wrong. As Luke mentioned it took a while to get the potential of PostgreSQL on Solaris and people like me start doing other complex workarounds in Solaris like "forcedirectio", etc. (Yeah I did a test, if you force fsync as wal_sync_method while on Solaris, then you may not even require to do forcedirectio of your $PGDATA/pg_xlogs to get back the lost performance)

If we had realized that fsync/odatasync difference was the culprit we could have saved couple of months of efforts.

Yes I agree that putting OS specific things in PostgreSQL hurts community and sticking to POSIX standards help.

Just my two cents.

Regards,
Jignesh


Bruce Momjian wrote:

Jignesh K. Shah wrote:
Bruce,

Hard to answer that... People like me who know and love PostgreSQL and Solaris finds this as an opportunity to make their favorite database work best on their favorite operating system.

Many times PostgreSQL has many things based on assumption that it will run on Linux and it is left to Solaris to emulate that behavior.That said there are ways to improve performance even on UFS on Solaris, it just requires more tweaks.

Hopefully this will lead to few Solaris friendly default values like fsync/odatasync :-)

Yes, if someone wants to give us a clear answer on which wal_sync method
is best on all versions of Solaris, we can easily make that change.



[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux