<?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: How Percona does a MySQL Performance Audit</title>
	<atom:link href="http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/</link>
	<description>Everything about MySQL Performance</description>
	<lastBuildDate>Sat, 07 Nov 2009 18:35:44 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: hironics</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-663112</link>
		<dc:creator>hironics</dc:creator>
		<pubDate>Fri, 09 Oct 2009 09:24:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-663112</guid>
		<description>I think you have no way to get know all of the configuration variables by just looking into config file.

You may probably look the whole config variables with &#039;show global variables&#039;.</description>
		<content:encoded><![CDATA[<p>I think you have no way to get know all of the configuration variables by just looking into config file.</p>
<p>You may probably look the whole config variables with &#8217;show global variables&#8217;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sefa</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-395013</link>
		<dc:creator>sefa</dc:creator>
		<pubDate>Fri, 28 Nov 2008 16:19:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-395013</guid>
		<description>kımı sevıyorum</description>
		<content:encoded><![CDATA[<p>kımı sevıyorum</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Baron Schwartz</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-393045</link>
		<dc:creator>Baron Schwartz</dc:creator>
		<pubDate>Thu, 27 Nov 2008 02:11:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-393045</guid>
		<description>Someone asked why grep my.cnf instead of using my_print_defaults, which will do things like pull values from multiple files (if any) and eliminate duplicate entries.  There&#039;s a two part answer.

1) we want to see mistakes in my.cnf, rather than have them hidden by my_print_defaults.  A duplicate entry is pretty common and should be fixed.

2) it&#039;s true that there may be several .cnf files that mysqld reads from, so a single one isn&#039;t the whole truth.  But it&#039;s also the case that variables can be set online, so the only source of truth is SHOW VARIABLES.

The other thing I didn&#039;t mention is that some of the tools we use will do .cnf file analysis to look for duplicate/conflicting values, and values that are different inside mysql than they are in the config files.</description>
		<content:encoded><![CDATA[<p>Someone asked why grep my.cnf instead of using my_print_defaults, which will do things like pull values from multiple files (if any) and eliminate duplicate entries.  There&#8217;s a two part answer.</p>
<p>1) we want to see mistakes in my.cnf, rather than have them hidden by my_print_defaults.  A duplicate entry is pretty common and should be fixed.</p>
<p>2) it&#8217;s true that there may be several .cnf files that mysqld reads from, so a single one isn&#8217;t the whole truth.  But it&#8217;s also the case that variables can be set online, so the only source of truth is SHOW VARIABLES.</p>
<p>The other thing I didn&#8217;t mention is that some of the tools we use will do .cnf file analysis to look for duplicate/conflicting values, and values that are different inside mysql than they are in the config files.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shlomi Noach</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-392120</link>
		<dc:creator>Shlomi Noach</dc:creator>
		<pubDate>Wed, 26 Nov 2008 06:43:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-392120</guid>
		<description>Michael,
The situation you&#039;ve described is so true. I think it is important to clear this up right from the start: &quot;The analysis may find that changes should be made to the application. There&#039;s only so much you can gain by tuning the server or upgrading the hardware.&quot;
I happened on such a case where I was hired to &quot;help out the DBA fix performance issues&quot;, when eventually I went up to the developers and have shown them how their queries were making for low performance (one of the things they did was, on an InnoDB table, never to update row data, but instead DELETE+INSERT. The performance boost once converted to UPDATE could be seen by the naked eye - I was lucky - and this allowed me to further pursue their application code)</description>
		<content:encoded><![CDATA[<p>Michael,<br />
The situation you&#8217;ve described is so true. I think it is important to clear this up right from the start: &#8220;The analysis may find that changes should be made to the application. There&#8217;s only so much you can gain by tuning the server or upgrading the hardware.&#8221;<br />
I happened on such a case where I was hired to &#8220;help out the DBA fix performance issues&#8221;, when eventually I went up to the developers and have shown them how their queries were making for low performance (one of the things they did was, on an InnoDB table, never to update row data, but instead DELETE+INSERT. The performance boost once converted to UPDATE could be seen by the naked eye &#8211; I was lucky &#8211; and this allowed me to further pursue their application code)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sheeri</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-391786</link>
		<dc:creator>Sheeri</dc:creator>
		<pubDate>Tue, 25 Nov 2008 20:44:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-391786</guid>
		<description>Baron,

&quot;The stock MySQL server&#039;s limitation of one-second granularity makes it hide problem queries that are faster than one second (which in a high-performance system is virtually every query.)&quot;

Actually, it&#039;s worse than that.  The slow query log logs queries that take &gt;long_query_time.  Not &gt;=long_query_time.  So actually you don&#039;t get any logging for queries that are faster than 2 seconds.  (If you have data to counteract this, let me know, but I haven&#039;t seen any...)

Michael,

The point is when *tuning*, you let the client know exactly what&#039;s happening.  If the client thinks you&#039;re fixing something when what you&#039;re doing is buying time, you need to explain to them that you&#039;re buying time -- not fixing a problem.

It&#039;s certainly a common problem, as often there are tons of change management procedures regarding the code (and tests and qa to pass) and not so many regarding changing a my.cnf parameter.

For the toughest clients, use a test database, fill with sample data, make your changes (code and perhaps schema as well) and show them the difference.

You can always make an analogy, as Peter did -- though you can explain that if you have lots of memory, fast cpu and lots of fast disk, and have to process 500 records, it&#039;s faster to only have to process 50 records than 500, no matter how good your stuff is.</description>
		<content:encoded><![CDATA[<p>Baron,</p>
<p>&#8220;The stock MySQL server&#8217;s limitation of one-second granularity makes it hide problem queries that are faster than one second (which in a high-performance system is virtually every query.)&#8221;</p>
<p>Actually, it&#8217;s worse than that.  The slow query log logs queries that take &gt;long_query_time.  Not &gt;=long_query_time.  So actually you don&#8217;t get any logging for queries that are faster than 2 seconds.  (If you have data to counteract this, let me know, but I haven&#8217;t seen any&#8230;)</p>
<p>Michael,</p>
<p>The point is when *tuning*, you let the client know exactly what&#8217;s happening.  If the client thinks you&#8217;re fixing something when what you&#8217;re doing is buying time, you need to explain to them that you&#8217;re buying time &#8212; not fixing a problem.</p>
<p>It&#8217;s certainly a common problem, as often there are tons of change management procedures regarding the code (and tests and qa to pass) and not so many regarding changing a my.cnf parameter.</p>
<p>For the toughest clients, use a test database, fill with sample data, make your changes (code and perhaps schema as well) and show them the difference.</p>
<p>You can always make an analogy, as Peter did &#8212; though you can explain that if you have lots of memory, fast cpu and lots of fast disk, and have to process 500 records, it&#8217;s faster to only have to process 50 records than 500, no matter how good your stuff is.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gil</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-391779</link>
		<dc:creator>Gil</dc:creator>
		<pubDate>Tue, 25 Nov 2008 20:19:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-391779</guid>
		<description>Having just completed a Percona audit, I can definitely attest to the thoroughness and volume of documentation provided. It is similar to this except much more detailed and customized to the way your system works. 

Knowing how Percona identified the problems in my specific system was absolutely invaluable, and saved me more time than I can imagine. Thanks guys.</description>
		<content:encoded><![CDATA[<p>Having just completed a Percona audit, I can definitely attest to the thoroughness and volume of documentation provided. It is similar to this except much more detailed and customized to the way your system works. </p>
<p>Knowing how Percona identified the problems in my specific system was absolutely invaluable, and saved me more time than I can imagine. Thanks guys.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vadim</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-391762</link>
		<dc:creator>Vadim</dc:creator>
		<pubDate>Tue, 25 Nov 2008 19:41:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-391762</guid>
		<description>Michael,

There is example (quite simplified):

if application is running SELECT COUNT(*) from InnoDB_table to scan 100.000.000 rows, there is no good way to optimize it if you do not want to change application.</description>
		<content:encoded><![CDATA[<p>Michael,</p>
<p>There is example (quite simplified):</p>
<p>if application is running SELECT COUNT(*) from InnoDB_table to scan 100.000.000 rows, there is no good way to optimize it if you do not want to change application.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-391761</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Tue, 25 Nov 2008 19:28:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-391761</guid>
		<description>Peter:

Our problem seems to be that we&#039;ve done all the tuning (perhaps even provided a bandaid as such), and so no application changes are made, the only &quot;breathing room&quot; came from the tuning. Then, the wall of scability is hit again, loads go up, queries lag, and the question comes up &quot;Why can&#039;t you do what you did before?&quot;. Obviously it&#039;s because it&#039;s been done before.

When the client has the fastest (excepting ssd and dedicated appliances) hardware you can buy, an already tuned infrastructure (my.cnf, hardware, kernel patches, the works), and still doesn&#039;t &quot;want&quot; to change the application or doesn&#039;t believe it&#039;s the problem, that&#039;s where I start to pull out my hair.

Michael</description>
		<content:encoded><![CDATA[<p>Peter:</p>
<p>Our problem seems to be that we&#8217;ve done all the tuning (perhaps even provided a bandaid as such), and so no application changes are made, the only &#8220;breathing room&#8221; came from the tuning. Then, the wall of scability is hit again, loads go up, queries lag, and the question comes up &#8220;Why can&#8217;t you do what you did before?&#8221;. Obviously it&#8217;s because it&#8217;s been done before.</p>
<p>When the client has the fastest (excepting ssd and dedicated appliances) hardware you can buy, an already tuned infrastructure (my.cnf, hardware, kernel patches, the works), and still doesn&#8217;t &#8220;want&#8221; to change the application or doesn&#8217;t believe it&#8217;s the problem, that&#8217;s where I start to pull out my hair.</p>
<p>Michael</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-391760</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Tue, 25 Nov 2008 19:23:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-391760</guid>
		<description>Michael,

Sure we can re-write queries, re-structure the schema and all this kind of stuff.  Our goal is to give the client a &quot;menu&quot; so they can pick what they want because business reasoning can be outside of our immediate reach.  For example we may say  something like we tuned your MySQL settings this should get your capacity up another 20%.   You can double capacity by by adding the proper indexes and get another 50% by upgrading to faster system.   But if you need more gains you need to restructuring and schema or architecture changes. 

It is more complicated than that really but it gives some good insight.</description>
		<content:encoded><![CDATA[<p>Michael,</p>
<p>Sure we can re-write queries, re-structure the schema and all this kind of stuff.  Our goal is to give the client a &#8220;menu&#8221; so they can pick what they want because business reasoning can be outside of our immediate reach.  For example we may say  something like we tuned your MySQL settings this should get your capacity up another 20%.   You can double capacity by by adding the proper indexes and get another 50% by upgrading to faster system.   But if you need more gains you need to restructuring and schema or architecture changes. </p>
<p>It is more complicated than that really but it gives some good insight.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://www.mysqlperformanceblog.com/2008/11/24/how-percona-does-a-mysql-performance-audit/comment-page-1/#comment-391755</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Tue, 25 Nov 2008 18:55:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=542#comment-391755</guid>
		<description>So....what do you do when this happens:

You&#039;ve completed your analysis, handed it to the client, and they were expecting that you&#039;d provide a panacea at the server-level, solving all their &quot;code problems&quot;? We regularly have clients that feel that they shouldn&#039;t need to change their application. What do you do at that point? Do you actually re-write the queries for them in your service? It was difficult to convince them to implement caching (which saved massive load on the database servers, even if some changes are still needed). Some areas need to be re-worked completely.

Michael</description>
		<content:encoded><![CDATA[<p>So&#8230;.what do you do when this happens:</p>
<p>You&#8217;ve completed your analysis, handed it to the client, and they were expecting that you&#8217;d provide a panacea at the server-level, solving all their &#8220;code problems&#8221;? We regularly have clients that feel that they shouldn&#8217;t need to change their application. What do you do at that point? Do you actually re-write the queries for them in your service? It was difficult to convince them to implement caching (which saved massive load on the database servers, even if some changes are still needed). Some areas need to be re-worked completely.</p>
<p>Michael</p>
]]></content:encoded>
	</item>
</channel>
</rss>
