<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Optimal performance out of the box!</title>
	<atom:link href="http://www.xaprb.com/blog/2010/05/12/optimal-performance-out-of-the-box/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog/2010/05/12/optimal-performance-out-of-the-box/</link>
	<description>Stay curious!</description>
	<lastBuildDate>Thu, 09 Feb 2012 09:56:43 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Greg Smith</title>
		<link>http://www.xaprb.com/blog/2010/05/12/optimal-performance-out-of-the-box/#comment-18323</link>
		<dc:creator>Greg Smith</dc:creator>
		<pubDate>Thu, 13 May 2010 22:38:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1836#comment-18323</guid>
		<description>Changing a PostgreSQL server to use checkpoint_timeout=1h and turning off autovacuum are both things I would consider cheating in a benchmark, and neither models practice you could deploy to a customer.  I&#039;m a little disappointed in what was done here.  I&#039;m sure there are similar things you could tune on SQL Server if you&#039;re optimizing for benchmark performance rather than anything real-world.

SQL Server does have some of the easiest to use tools for things like finding what indexes people should use, something they threw some serious research work into.  So their claims of &quot;self-tuning&quot; have at least a bit of technical merit behind the marketing.

PostgreSQL does a bit better without any tuning than some databases simply because it does expect and utilize the operating system buffer cache to be functional.  It doesn&#039;t use direct I/O or sync writes in the default setup to try and bypass the OS buffer cache.  How well this works depends on the OS.  If you&#039;re using Solaris+UFS where that&#039;s going to end up capped at 56MB of buffer cache unless you tune that, using the defaults is going to give you terrible PostgreSQL results.  But on Linux or ZFS where disk caching is very aggressive out of the box, PostgreSQL can do just fine at its default settings sometimes.

The simple PostgreSQL tuning wizard program I developed, pgtune, didn&#039;t get anywhere until we decided that it was OK to split the types of workloads it could be expected to work out on and specifically biased toward and make those separate targets (Josh Berkus&#039;s idea, just to credit properly).  There&#039;s ones for web apps, OLTP, DW, an &quot;I&#039;m not sure&quot; mixed setting, and one for small desktops that&#039;s still a bit better than the out of the box config.

@Slapo:  The only PostgreSQL tuning guide that has enough community members working on it to never fall out of date since its introduction is http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server , which averages an update about every three weeks.  It will be updated to cover 9.0 before that version is even released.</description>
		<content:encoded><![CDATA[<p>Changing a PostgreSQL server to use checkpoint_timeout=1h and turning off autovacuum are both things I would consider cheating in a benchmark, and neither models practice you could deploy to a customer.  I&#8217;m a little disappointed in what was done here.  I&#8217;m sure there are similar things you could tune on SQL Server if you&#8217;re optimizing for benchmark performance rather than anything real-world.</p>
<p>SQL Server does have some of the easiest to use tools for things like finding what indexes people should use, something they threw some serious research work into.  So their claims of &#8220;self-tuning&#8221; have at least a bit of technical merit behind the marketing.</p>
<p>PostgreSQL does a bit better without any tuning than some databases simply because it does expect and utilize the operating system buffer cache to be functional.  It doesn&#8217;t use direct I/O or sync writes in the default setup to try and bypass the OS buffer cache.  How well this works depends on the OS.  If you&#8217;re using Solaris+UFS where that&#8217;s going to end up capped at 56MB of buffer cache unless you tune that, using the defaults is going to give you terrible PostgreSQL results.  But on Linux or ZFS where disk caching is very aggressive out of the box, PostgreSQL can do just fine at its default settings sometimes.</p>
<p>The simple PostgreSQL tuning wizard program I developed, pgtune, didn&#8217;t get anywhere until we decided that it was OK to split the types of workloads it could be expected to work out on and specifically biased toward and make those separate targets (Josh Berkus&#8217;s idea, just to credit properly).  There&#8217;s ones for web apps, OLTP, DW, an &#8220;I&#8217;m not sure&#8221; mixed setting, and one for small desktops that&#8217;s still a bit better than the out of the box config.</p>
<p>@Slapo:  The only PostgreSQL tuning guide that has enough community members working on it to never fall out of date since its introduction is <a href="http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server" rel="nofollow">http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server</a> , which averages an update about every three weeks.  It will be updated to cover 9.0 before that version is even released.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://www.xaprb.com/blog/2010/05/12/optimal-performance-out-of-the-box/#comment-18317</link>
		<dc:creator>Xaprb</dc:creator>
		<pubDate>Thu, 13 May 2010 13:05:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1836#comment-18317</guid>
		<description>Hence the smiley face!  I forgot Mark Callaghan.  He wants to prove stuff, too.</description>
		<content:encoded><![CDATA[<p>Hence the smiley face!  I forgot Mark Callaghan.  He wants to prove stuff, too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Leith</title>
		<link>http://www.xaprb.com/blog/2010/05/12/optimal-performance-out-of-the-box/#comment-18315</link>
		<dc:creator>Mark Leith</dc:creator>
		<pubDate>Thu, 13 May 2010 08:17:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1836#comment-18315</guid>
		<description>I would posit that anybody that is releasing benchmarks is out to prove something, including Percona (mysqlperformanceblog.com) and Sun/Oracle (Dimitri). ;)</description>
		<content:encoded><![CDATA[<p>I would posit that anybody that is releasing benchmarks is out to prove something, including Percona (mysqlperformanceblog.com) and Sun/Oracle (Dimitri). ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://www.xaprb.com/blog/2010/05/12/optimal-performance-out-of-the-box/#comment-18314</link>
		<dc:creator>Xaprb</dc:creator>
		<pubDate>Wed, 12 May 2010 21:01:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1836#comment-18314</guid>
		<description>I know two people whose benchmarks I really respect.  Actually, make that three.  Maybe I&#039;m forgetting someone.

http://www.mysqlperformanceblog.com/
http://dimitrik.free.fr/
http://www.westnet.com/~gsmith/

Everyone else is just out to prove something :-D</description>
		<content:encoded><![CDATA[<p>I know two people whose benchmarks I really respect.  Actually, make that three.  Maybe I&#8217;m forgetting someone.</p>
<p><a href="http://www.mysqlperformanceblog.com/" rel="nofollow">http://www.mysqlperformanceblog.com/</a><br />
<a href="http://dimitrik.free.fr/" rel="nofollow">http://dimitrik.free.fr/</a><br />
<a href="http://www.westnet.com/~gsmith/" rel="nofollow">http://www.westnet.com/~gsmith/</a></p>
<p>Everyone else is just out to prove something :-D</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://www.xaprb.com/blog/2010/05/12/optimal-performance-out-of-the-box/#comment-18313</link>
		<dc:creator>John</dc:creator>
		<pubDate>Wed, 12 May 2010 20:43:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1836#comment-18313</guid>
		<description>I used to be a MSSQL DBA and back then they claimed it was &quot;self-tuning&quot; rather than &quot;optimal out of the box&quot;.  I think the former is more technically accurate, while the latter phrase was probably created by a marketing department (think they used &quot;out of the box&quot; thinking to come up with it?).  It actually did work pretty well, adjusting page vs index cache, thread pool size, and so on as the work load varied.  But it was reactive.  So a couple of unusual queries could throw it a bit out of whack for a while and there was no way to keep it from doing that.  We replicated parts of the data to different servers which allowed us to run an OLTP workload on one server and an OLAP workload on another so they could self-tune appropriately.  I only had to use our premier support incidents once or twice to get the top secret registry setting (they did exist) to avoid some bad behaviors.

No single configuration can be optimal for all work loads.  So giving the DBA tools (i.e. configuration settings) to say &quot;this is the work load for which I want to be optimized&quot; and allowing them to deliberately sacrifice performance on the occasional odd query to work better on the expected load can be very helpful.  The server won&#039;t be able to fall into the reaction trap and have to constantly adjust to the thrashing the settings.  OTOH the DBA has to know or easily be able to find out what each setting will actually do and what work loads will benefit from tuning.  As Slapo points out the documentation on what each setting does needs to get better and keep more up to date -- on ALL of the products.  Your recent post on sort_buffer_size demonstrates that.  In lieu of better information, people will think &quot;Gee, I do lots of order bys.  A bigger sort buffer must mean faster sorting.  I think I&#039;ll tune it...&quot; to their detriment (and yes I did check our sort_buffer_size settings, and no we weren&#039;t tuned up).  Letting a system self-tune can be better in many cases than ignorant manual tuning.

But to answer your question, if your marketing department came up with the claim, you point out that it was a specialized work load that doesn&#039;t reflect real world usage for which your product is optimized.  If the benchmarker or somebody else came up with it, you point out that they are obviously idiots who have no idea how to setup your product and besides, it was a specialized work load that doesn&#039;t reflect real world usage for which your product is optimized with the default settings.  Benchmarks are only good if they show your products are the best.</description>
		<content:encoded><![CDATA[<p>I used to be a MSSQL DBA and back then they claimed it was &#8220;self-tuning&#8221; rather than &#8220;optimal out of the box&#8221;.  I think the former is more technically accurate, while the latter phrase was probably created by a marketing department (think they used &#8220;out of the box&#8221; thinking to come up with it?).  It actually did work pretty well, adjusting page vs index cache, thread pool size, and so on as the work load varied.  But it was reactive.  So a couple of unusual queries could throw it a bit out of whack for a while and there was no way to keep it from doing that.  We replicated parts of the data to different servers which allowed us to run an OLTP workload on one server and an OLAP workload on another so they could self-tune appropriately.  I only had to use our premier support incidents once or twice to get the top secret registry setting (they did exist) to avoid some bad behaviors.</p>
<p>No single configuration can be optimal for all work loads.  So giving the DBA tools (i.e. configuration settings) to say &#8220;this is the work load for which I want to be optimized&#8221; and allowing them to deliberately sacrifice performance on the occasional odd query to work better on the expected load can be very helpful.  The server won&#8217;t be able to fall into the reaction trap and have to constantly adjust to the thrashing the settings.  OTOH the DBA has to know or easily be able to find out what each setting will actually do and what work loads will benefit from tuning.  As Slapo points out the documentation on what each setting does needs to get better and keep more up to date &#8212; on ALL of the products.  Your recent post on sort_buffer_size demonstrates that.  In lieu of better information, people will think &#8220;Gee, I do lots of order bys.  A bigger sort buffer must mean faster sorting.  I think I&#8217;ll tune it&#8230;&#8221; to their detriment (and yes I did check our sort_buffer_size settings, and no we weren&#8217;t tuned up).  Letting a system self-tune can be better in many cases than ignorant manual tuning.</p>
<p>But to answer your question, if your marketing department came up with the claim, you point out that it was a specialized work load that doesn&#8217;t reflect real world usage for which your product is optimized.  If the benchmarker or somebody else came up with it, you point out that they are obviously idiots who have no idea how to setup your product and besides, it was a specialized work load that doesn&#8217;t reflect real world usage for which your product is optimized with the default settings.  Benchmarks are only good if they show your products are the best.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

