{"id":211,"date":"2017-03-08T09:25:27","date_gmt":"2017-03-08T16:25:27","guid":{"rendered":"http:\/\/blog.gptnet.net\/?p=211"},"modified":"2017-03-08T09:25:27","modified_gmt":"2017-03-08T16:25:27","slug":"3par-with-ao-and-ssds-how-much-do-i-need","status":"publish","type":"post","link":"https:\/\/blog.gptnet.net\/?p=211","title":{"rendered":"3PAR with AO and SSDs. How much do I need?"},"content":{"rendered":"<p>Most of the people involved with storage\u00a0deal on daily basis with performance and capacity monitoring. There are two metrics which everyone cares the most: size and IOPS. Of course, latency, queue depth\u00a0and many more have significant impact as well.\u00a0If you worked in enterprise storage you will notice that most of the time you will run out of IOPS before capacity.<\/p>\n<p>HP 3PAR has several functionalities to help you get the most of your investment and today we will talk about Adaptive Optimization (AO).<\/p>\n<p>This case will apply to hybrid array, such as the one having mixed of FC and SSD drives. In the example below I will help you understand how to calculate required capacity for each tier for a given application using 3PAR SSMC 3.0.<\/p>\n<p><!--more--><br \/>\nIn our test scenario we will be running physical server connected to 3PAR 8200. Our test server will be hosting MsSQL database and have separate volumes for Data (.mdf) and Logs (.ldf) files. We notice that these volumes generate heavy load on our FC disk and we want to optimize it to provide more performance capacity for other applications sharing the same storage.<br \/>\nOur two volumes are here:<br \/>\n<a href=\"http:\/\/blog.gptnet.net\/?attachment_id=385\" rel=\"attachment wp-att-385\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-385\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_5.png\" alt=\"\" width=\"412\" height=\"283\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_5-300x206.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_5.png 412w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.gptnet.net\/?attachment_id=386\" rel=\"attachment wp-att-386\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-386\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_6.png\" alt=\"\" width=\"390\" height=\"272\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_6-300x209.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_6.png 390w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" \/><\/a><br \/>\nAfter all consideration we decide to make investment in SSD. So our question comes up &#8211; how much SSD do I need to offload this workload?<\/p>\n<p>Well, the answer is quite simple here; first you need to log into SSMC and generate IO Density reports for these volumes.<\/p>\n<p>Select <strong>CPG &#8211; Cumulative IO Density<\/strong> report template and select CPG which contains your volumes<br \/>\n<a href=\"http:\/\/blog.gptnet.net\/?attachment_id=395\" rel=\"attachment wp-att-395\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-395\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_1.png\" alt=\"\" width=\"962\" height=\"749\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_1-300x234.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_1-768x598.png 768w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_1.png 962w\" sizes=\"auto, (max-width: 962px) 100vw, 962px\" \/><\/a><br \/>\nNext enable Virtual Volume filter and select desired volumes:<br \/>\n<a href=\"http:\/\/blog.gptnet.net\/?attachment_id=396\" rel=\"attachment wp-att-396\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-396\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_2.png\" alt=\"\" width=\"734\" height=\"552\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_2-300x226.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_2.png 734w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/a><br \/>\nand finally change chart details to Fine and access count to Percentage<br \/>\n<a href=\"http:\/\/blog.gptnet.net\/?attachment_id=383\" rel=\"attachment wp-att-383\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-383\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_3.png\" alt=\"\" width=\"871\" height=\"332\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_3-300x114.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_3-768x293.png 768w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/02\/AO_3.png 871w\" sizes=\"auto, (max-width: 871px) 100vw, 871px\" \/><\/a><br \/>\nClick create and you should see something similiar:<br \/>\n<a href=\"http:\/\/blog.gptnet.net\/?attachment_id=397\" rel=\"attachment wp-att-397\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-397\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_4.png\" alt=\"\" width=\"1450\" height=\"717\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_4-300x148.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_4-1024x506.png 1024w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_4-768x380.png 768w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/03\/AO_4.png 1450w\" sizes=\"auto, (max-width: 1450px) 100vw, 1450px\" \/><\/a><br \/>\nAccording to this graph roughly 90% of IOPs on these volumes are generated by 55% of data.<\/p>\n<p>So now we do some math to see how much SSD capacity we need for our &#8220;hot&#8221; data:<br \/>\nSQL_DATA &#8211; 55% of 600GB = 330GB<br \/>\nSQL_LOG &#8211; 55% of 722GB = 398GB<br \/>\nTotal: 728GB<\/p>\n<p>Thus, we need 728GB of SSD storage to offload 90% of IOPS generated by our SQL server. Depending on the application and it&#8217;s access patterns you can find that 90% of IOPS are generated by only 10% of capacity. Another thing to take into account is business cycles for application &#8211; some data might be &#8220;hot&#8221; only during special events, such as huge report at the end of the month will require read from all databases. AO is very powerful tool which can bring you maximum return on your investment and drastically improve performance if you deploy it properly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most of the people involved with storage\u00a0deal on daily basis with performance and capacity monitoring. There are two metrics which everyone cares the most: size and IOPS. Of course, latency, queue depth\u00a0and many more have significant impact as well.\u00a0If you &hellip; <a href=\"https:\/\/blog.gptnet.net\/?p=211\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[72],"tags":[61,103,104],"class_list":["post-211","post","type-post","status-publish","format-standard","hentry","category-3par","tag-3par","tag-adaptive-optimization","tag-ao"],"_links":{"self":[{"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/posts\/211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=211"}],"version-history":[{"count":6,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/posts\/211\/revisions"}],"predecessor-version":[{"id":400,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/posts\/211\/revisions\/400"}],"wp:attachment":[{"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}