{"id":1371,"date":"2007-12-24T12:00:00","date_gmt":"2007-12-24T12:00:00","guid":{"rendered":"http:\/\/orcldoug.com\/blog\/?p=1371"},"modified":"2007-12-24T12:00:00","modified_gmt":"2007-12-24T12:00:00","slug":"the-reality-gap-4-its-never-the-san","status":"publish","type":"post","link":"http:\/\/orcldoug.com\/blog\/2007\/12\/24\/the-reality-gap-4-its-never-the-san\/","title":{"rendered":"The Reality Gap (4) &#8211; It&#8217;s never the SAN"},"content":{"rendered":"<p>I&#8217;ve left one of my favourite topics<br \/>\nfor the penultimate episode of this mini-series. The more sites you work<br \/>\nat and the more performance problems you work on, the more you begin to<br \/>\nlearn the one essential truth of modern system architecture.  <\/p>\n<p><em>It&#8217;s never the SAN. <\/em> <br \/>Here&#8217;s a true story. Rest assured that<br \/>\nI&#8217;ve watched the same story develop several times so there&#8217;s no possibility<br \/>\nyou can identify an individual client. In fact, the thing you&#8217;re most likely<br \/>\nto recognise is a similar experience of your own &#128521; <\/p>\n<ul>\n<li>The business has problems with the overnight<br \/>\nbatch schedule on a significant system. The problem is that the execution<br \/>\ntimes from night to night are unacceptably variable, for similar data volumes<br \/>\nand identical code. The batch window is already tight, so this leads to<br \/>\nthe system being unavailable during critical hours. The business is upset,<br \/>\nparticularly as they are fined if they don&#8217;t deliver certain transaction<br \/>\nmessages within set deadlines. <\/li>\n<li>The first port of call is the DBAs because<br \/>\neveryone assumes there&#8217;s a problem with the database. Despite the usual<br \/>\ngrumbles at this point, I have some sympathy with that perspective because<br \/>\nit&#8217;s a key component of the overall system that&#8217;s both critical and quite opaque<br \/>\noutside the DBA team. Besides, we have the best instrumentation so are<br \/>\nlikely to be able to help. <\/li>\n<li>We look at Statspack or AWR reports<br \/>\n(this is a complex batch with hundreds of jobs in multiple job streams<br \/>\n&#8211; a little difficult to trace) and notice that the average single block<br \/>\nread time varies from night to night and there is a close correlation between<br \/>\nthe nights when i\/o performance is poor and the batch jobs take longer<br \/>\nto run. The vast majority of wait events are related to i\/o. At this stage,<br \/>\nwe ask the O\/S or Storage guys to take a look at our numbers and investigate<br \/>\ni\/o performance. They do so and come back with &#8220;no,<br \/>\neverything looks fine to us&#8221;. Which is a little tricky for me to deal with,<br \/>\ngiven that you&#8217;ve demonstrated single block read times over 30ms! Still,<br \/>\nwhat can you do? You ask for expert help and the experts tell you everything<br \/>\nis ok. <\/li>\n<li>The next step might be to trace a few<br \/>\nof the batch jobs to show the individual wait times. These look even worse<br \/>\n&#8211; some are as high as 90m\/s! We start to look at filesystem configuration options, reducing the i\/o workload and several other bright ideas as we desperately cast around for a solution. <\/li>\n<li>\nThis part of the story lasts for as long as the DBAs and Storage guys want<br \/>\nto make it last. At some point, however, the business has had enough of<br \/>\nthis nonsense and calls in the storage vendor. <\/li>\n<li>This part saddens me the most. I haven&#8217;t<br \/>\nmet every employee of every storage vendor and so I&#8217;m sure there are bright<br \/>\nguys there (maybe I&#8217;ve been unlucky) but, invariably, there is &#8216;no problem&#8217; with the storage. Again.<br \/>\nThere never is. More to the point, they join in the general finger-pointing<br \/>\nin the direction of the DBAs, start asking for initialisation parameter<br \/>\nvalues (guaranteed to drive me daft, is that one, because it&#8217;s just a knee-jerk<br \/>\nreaction) and explain to the business that the back-end infrastructure<br \/>\nis working well. Of course, the last thing the vendor is going to do is<br \/>\nto explain that the system that they helped the business to specify (typically<br \/>\non cost per Megabyte, rather than bandwidth) is under-specified. Oh, and<br \/>\nif you&#8217;ve spent three million quid on something nice, big and shiny, the<br \/>\nlast thing you want to hear about are its limitations. <\/li>\n<li>Now at this point of the story, you<br \/>\nmight start postulating theories which &#8216;prove&#8217; it might not<br \/>\nbe the SAN and I&#8217;ve had a few extended conversations on this subject with sys admins (Hi, Mike &#128521;), but here&#8217;s the clincher. A true clincher. <\/li>\n<li>Coincidentally, new SAN infrastructure<br \/>\nis due for deployment. When the database is moved to the new infrastructure,<br \/>\nsingle block read times are reduced to single figures and are consistent.<br \/>\nThe performance problems are completely solved. &#8220;Ah&#8221;, say the<br \/>\nStorage guys, &#8220;that&#8217;s just because not all of the databases havet been<br \/>\nmoved yet. When they are, you should expect to see similar performance<br \/>\nlevels as before.&#8221; <\/li>\n<li>All of the databases are eventually<br \/>\nmoved and the new improved performance levels are maintained. <\/li>\n<\/ul>\n<p>My cuddly toy mate, Flatcat, could analyse<br \/>\nthis situation and see it for what it was (and he&#8217;s not exactly a computer<br \/>\nexpert).  <\/p>\n<p>It *was* the SAN and I don&#8217;t enjoy<br \/>\nwasting 9 months of my life debating it with people who I&#8217;m looking to<br \/>\nfor expertise, not hand-waving. If this was a one-off story, I might not<br \/>\nmind, but I sometimes feel like I&#8217;m going round in circles. <\/p>\n<p>The last part will discuss the problems<br \/>\ncaused by The Reality Gap.<\/p>\n<p>P.S. Despite the tone of this post (which has been kicking around my brain cells for a while) I&#8217;m looking forward to Christmas more than a middle-aged man should. So, I&#8217;m not feeling grumpy and you&#8217;ll forgive me if I log off now and pick up any comments later. Then again, I&#8217;m not expecting too many comments for a few days &#8230;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve left one of my favourite topics for the penultimate episode of this mini-series. The more sites you work at and the more performance problems you work on, the more you begin to learn the one essential truth of modern system architecture. It&#8217;s never the SAN. Here&#8217;s a true story. Rest assured that I&#8217;ve watched&hellip; <a class=\"more-link\" href=\"http:\/\/orcldoug.com\/blog\/2007\/12\/24\/the-reality-gap-4-its-never-the-san\/\">Continue reading <span class=\"screen-reader-text\">The Reality Gap (4) &#8211; It&#8217;s never the SAN<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1371","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1050,"url":"http:\/\/orcldoug.com\/blog\/2006\/08\/10\/historical-perspective-part-2\/","url_meta":{"origin":1371,"position":0},"title":"Historical Perspective (Part 2)","date":"August 10, 2006","format":false,"excerpt":"Let's look at items 2 and 3 from the list in my previous blog1) You know you have a performance problem and can re-create it by running a specific part of the application, be it a user interaction or batch job.2) You have an intermittent but recurring performance problem which\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1504,"url":"http:\/\/orcldoug.com\/blog\/2009\/06\/28\/i-love-addm\/","url_meta":{"origin":1371,"position":1},"title":"I Love ADDM","date":"June 28, 2009","format":false,"excerpt":"Some features in this post require a Diagnostics Pack license.I'll get back to adaptive thresholds at some point but something's been bugging me.I'm not just trying to be controversial but I've a feeling I'm about to be, given that ADDM is the probably the most infamous of the 10g 'Automatic\u2026","rel":"","context":"With 8 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":878,"url":"http:\/\/orcldoug.com\/blog\/2006\/01\/18\/they-exist-i-promise\/","url_meta":{"origin":1371,"position":2},"title":"They exist, I promise!","date":"January 18, 2006","format":false,"excerpt":"Good SAN administrators that is. (Sorry, Mike - it's a DBA joke)My current employer\/customer is pulling out the stops to help me perform some tests for the upcoming Hotsos presentation. Remember, I'm a contractor, so they have no vested interest in my personal development. So, by way of giving them\u2026","rel":"","context":"With 5 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1159,"url":"http:\/\/orcldoug.com\/blog\/2006\/12\/11\/a-more-complex-statspack-example-summary\/","url_meta":{"origin":1371,"position":3},"title":"A More Complex Statspack Example &#8211; Summary","date":"December 11, 2006","format":false,"excerpt":"Looking back at the three blogs (and hopefully the comments, where others have made some very useful contributions), it's all quite unsatisfactory, isn't it? We haven't solved the problem. All we've proved is that the tests aren't equivalent, although I think there's value in that negative result because I was\u2026","rel":"","context":"With 3 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1382,"url":"http:\/\/orcldoug.com\/blog\/2008\/02\/22\/how-useful-are-diagnosticoptimization-tools-another-view\/","url_meta":{"origin":1371,"position":4},"title":"&#8220;How useful are diagnostic\/optimization tools?&#8221; &#8211; Another View","date":"February 22, 2008","format":false,"excerpt":"There have been a couple of very interesting blog postings over the past few weeks from Daniel Fink and Alex Gorbachev, prompted by a panel discussion at last week's RMOUG conference. Well, I suspect the panel was prompted by an earlier blog posting and many late night conversations. I've just\u2026","rel":"","context":"With 25 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1713,"url":"http:\/\/orcldoug.com\/blog\/2014\/07\/07\/recurring-conversations-awr-intervals-part-1\/","url_meta":{"origin":1371,"position":5},"title":"Recurring Conversations: AWR Intervals (Part 1)","date":"July 7, 2014","format":false,"excerpt":"I've seen plenty of blog posts and discussions over the years about the need to increase the default AWR retention period beyond the default value of 8 days. Experienced Oracle folk understand how useful it is to have a longer history of performance metrics to cover an entire workload period\u2026","rel":"","context":"With 6 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1371","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/comments?post=1371"}],"version-history":[{"count":0,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1371\/revisions"}],"wp:attachment":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/media?parent=1371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/categories?post=1371"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/tags?post=1371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}