Subject | Re: [firebird-support] Forced write, page size and buffer size |
---|---|
Author | Carlos H. Cantu |
Post date | 2014-08-18T19:27:38Z |
Usually, if you turn FW = ON on Linux, and your filesystem has barrier
enabled, it will affect performance of batch updates really badly.
You would either accept the performance degradation, or disable one of
them (FW or barrier).
Carlos
Firebird Performance in Detail - http://videos.firebirddevelopersday.com
www.firebirdnews.org - www.FireBase.com.br
ACacacfs> Hello,
ACacacfs> For reliability reasons, I decided to turn on forced writes on a
ACacacfs> database running on Linux.
ACacacfs> After that I noticed that some massive updates ( 100K records ) took
ACacacfs> nearly 5 minutes, whereas with async writes it used to take 10 seconds.
ACacacfs> One solution is, of course, disabling sync writes when doing massive
ACacacfs> updates. Unfortunately not always massive updates are under database
ACacacfs> admin control ( some end users actions can lead to massive updates,
ACacacfs> indirectly, by means of triggers ).
ACacacfs> Another aproach I tested was augmenting page size from its default
ACacacfs> value ( 4 KB ) to its maximum allowed value ( 16 KB ). The speed was
ACacacfs> notably enhaced ( 1 minute for the update + 10 seconds for the commit,
ACacacfs> but sometimes 2 seconds for the update and 40 seconds for the commit).
ACacacfs> It should be pointed out that 4 KB was fine, taking into account
ACacacfs> record size ( max. 300 bytes ) and index max depth ( always < 3 ).
ACacacfs> Going one step further, I augmented cached pages from its default (
ACacacfs> 2048 ) to 8192. Some small performance improvement was observed, but not
ACacacfs> very significative. It shoud be noted also that, with a 16 KB page size,
ACacacfs> the database has 5700 pages on disk, so there are enough cache pages to
ACacacfs> hold the entire database.
ACacacfs> Given this scenario my questions are the following:
ACacacfs> 1) Does it makes sense to activate forced writes on Linux ?
ACacacfs> 2) Is increasing the page size the right approach to improve performance
ACacacfs> ? Which are the drawbacks of setting page size to 16K ?
ACacacfs> 3) The same question stands for cache pages: is it useful ( or has
ACacacfs> disadvantages ) to have so many cache pages as there are on disk pages (
ACacacfs> provided there is enough RAM size ) ?
ACacacfs> Thanks in advance for any clue.
ACacacfs> Aldo
ACacacfs> ------------------------------------
ACacacfs> ------------------------------------
ACacacfs> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACacacfs> Visit http://www.firebirdsql.org and click the Documentation item
ACacacfs> on the main (top) menu. Try FAQ and other links from the left-side menu there.
ACacacfs> Also search the knowledgebases at
ACacacfs> http://www.ibphoenix.com/resources/documents/
ACacacfs> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACacacfs> ------------------------------------
ACacacfs> Yahoo Groups Links
enabled, it will affect performance of batch updates really badly.
You would either accept the performance degradation, or disable one of
them (FW or barrier).
Carlos
Firebird Performance in Detail - http://videos.firebirddevelopersday.com
www.firebirdnews.org - www.FireBase.com.br
ACacacfs> Hello,
ACacacfs> For reliability reasons, I decided to turn on forced writes on a
ACacacfs> database running on Linux.
ACacacfs> After that I noticed that some massive updates ( 100K records ) took
ACacacfs> nearly 5 minutes, whereas with async writes it used to take 10 seconds.
ACacacfs> One solution is, of course, disabling sync writes when doing massive
ACacacfs> updates. Unfortunately not always massive updates are under database
ACacacfs> admin control ( some end users actions can lead to massive updates,
ACacacfs> indirectly, by means of triggers ).
ACacacfs> Another aproach I tested was augmenting page size from its default
ACacacfs> value ( 4 KB ) to its maximum allowed value ( 16 KB ). The speed was
ACacacfs> notably enhaced ( 1 minute for the update + 10 seconds for the commit,
ACacacfs> but sometimes 2 seconds for the update and 40 seconds for the commit).
ACacacfs> It should be pointed out that 4 KB was fine, taking into account
ACacacfs> record size ( max. 300 bytes ) and index max depth ( always < 3 ).
ACacacfs> Going one step further, I augmented cached pages from its default (
ACacacfs> 2048 ) to 8192. Some small performance improvement was observed, but not
ACacacfs> very significative. It shoud be noted also that, with a 16 KB page size,
ACacacfs> the database has 5700 pages on disk, so there are enough cache pages to
ACacacfs> hold the entire database.
ACacacfs> Given this scenario my questions are the following:
ACacacfs> 1) Does it makes sense to activate forced writes on Linux ?
ACacacfs> 2) Is increasing the page size the right approach to improve performance
ACacacfs> ? Which are the drawbacks of setting page size to 16K ?
ACacacfs> 3) The same question stands for cache pages: is it useful ( or has
ACacacfs> disadvantages ) to have so many cache pages as there are on disk pages (
ACacacfs> provided there is enough RAM size ) ?
ACacacfs> Thanks in advance for any clue.
ACacacfs> Aldo
ACacacfs> ------------------------------------
ACacacfs> ------------------------------------
ACacacfs> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACacacfs> Visit http://www.firebirdsql.org and click the Documentation item
ACacacfs> on the main (top) menu. Try FAQ and other links from the left-side menu there.
ACacacfs> Also search the knowledgebases at
ACacacfs> http://www.ibphoenix.com/resources/documents/
ACacacfs> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACacacfs> ------------------------------------
ACacacfs> Yahoo Groups Links