
{"id":7173,"date":"2021-01-14T16:46:18","date_gmt":"2021-01-14T16:46:18","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/how-to-calculate-your-ebs-volume-iops-on-cloudwatch\/"},"modified":"2026-11-03T19:28:09","modified_gmt":"2026-11-03T19:28:09","slug":"how-to-calculate-your-ebs-volume-iops-on-cloudwatch","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/de\/blogs\/how-to-calculate-your-ebs-volume-iops-on-cloudwatch\/","title":{"rendered":"How to calculate your EBS volume IOPS on CloudWatch"},"content":{"rendered":"<p><em><strong>Originally published in Apr 2017, at the Onica blog <a href=\"https:\/\/onica.com\/blog\/\">here<\/a>.<\/strong><\/em><\/p>\n<p><strong>What is EBS used for?<\/strong><\/p>\n<p>Our Managed Services team works with clients who often inquire about the performance of their EBS volumes, which are crucial for production servers. By better understanding how to monitor your EBS volumes, your IT team can prevent slowness and latencies, which would impact your end-users and the company\u2019s operations. Also, it helps you scale to the right IOPS level to optimize <a href=\"https:\/\/onica.com\/blog\/managed-services\/best-ways-to-reduce-costs-in-aws\/\">cost<\/a>&nbsp;within your business as well as upgrade your infrastructure levels.<\/p>\n<p>EBS provides highly available, raw block-level storage volumes that can be attached to Amazon Elastic Compute Cloud; (EC2) instances and is used by Amazon Relational Database Service;(RDS).EBS enables you to keep data persistently on a file system, even after you shut down your EC2 instance.<\/p>\n<p><strong>What is an IOPS AWS?<\/strong><\/p>\n<p>IOPS is a popular performance metric used to distinguish one storage type from another. Similar to device makers, AWS associates IOPS values with the volume component backing the storage option. Provisioned IOPS is an EBS volume type designed to deliver predictable, high-level performance for I\/O-intensive workloads such as database applications.<\/p>\n<p><strong>Using the CloudWatch dashboard to calculate Your EBS Volume IOPS<\/strong><\/p>\n<p>Whereas you can easily view RDS and EC2 instances\u2019 IOPS metrics through AWS graphs, getting the same insight on the CloudWatch dashboard requires you to run some calculations to find the IOPS used in a specific period.<\/p>\n<p>You can calculate the IOPS usage simply by dividing the total read and write throughputs (ops) of your disk by the time in seconds within that period.<\/p>\n<p>&nbsp; &nbsp; IOPS Usage = (Total Read + Write Throughputs) \/ Time (in Seconds)<\/p>\n<p>This article explains how to do that calculation on AWS. Use it to determine if your EBS volumes require more IOPS to be provisioned or if they just need to be initialized or pre-warmed, which is the case for recently launched volumes from S3 snapshots that normally cause spikes in the Average Queue Length despite normal IOPS metrics.<\/p>\n<p><strong>Steps<\/strong><\/p>\n<p>For this example, we used a SQL database instance where the SQL operations run on <em>D: drive, \/dev\/sdb&nbsp;<\/em>our device code on AWS.<\/p>\n<p>1. You can find the EBS device code on the bottom right of the instance properties. <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/WindowsGuide\/ec2-windows-volumes.html\">Use this link<\/a> to get more information on how to map the EBS Devices to match your local volume Drive Letter.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26291-body-picture1.png\" alt=\"IOPS Pic 1\" \/><\/p>\n<p>2. After you click on the volume code, you see the <strong>EBS Volume ID<\/strong>, which you should copy. Next, open CloudWatch, and click&nbsp;<strong>Metrics<\/strong> on the bottom left.&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26291-body-picture2.png\" alt=\"IOPS Pic 2\" \/><\/p>\n<p>3. Choose <strong>All &gt; EBS &gt; Per-Volume Metrics<\/strong>.&nbsp;<\/p>\n<p>4. Select the desired metric volume, either <strong>VolumeWriteOps<\/strong>&nbsp;(write throughput) or <strong>VolumeReadOps<\/strong> (read throughput).<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26291-body-picture3.png\" alt=\"IOPS Pic 3\" \/><\/p>\n<p>In this case, choose <strong>VolumeReadOps<\/strong>&nbsp;and then choose a specific time and the data-point period. In this scenario, I chose to monitor or zoom the dataset at 08:15 (UTC) with a data-point period of 15 minutes because I observed spikes&nbsp;that started close to 8:00 AM and ended around 8:30 AM. Our goal is to find the IOPS utilized within those 15 minutes.&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26291-body-picture4.png\" alt=\"IOPS Pic 4\" \/><\/p>\n<p>5. Make sure you change your <strong>Metric Statistic<\/strong>&nbsp;to <em>SUM from AVERAGE a<\/em>nd find your <strong>VolumeReadOps<\/strong> sum between <em>08:00 \u2013 08:15<\/em><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26291-body-picture5.png\" alt=\"IOPS Pic 5\" \/><\/p>\n<p>&nbsp;6. Then, find your <strong>VolumeWriteOps<\/strong> sum between 8:00 \u2013 8:15:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26291-body-picture6.png\" alt=\"IOPS Pic 6\" \/><\/p>\n<p><strong>The calculation&nbsp;<\/strong><\/p>\n<p>Now that we have both Read and Write Throughput sums for the closest data point to 08:15 UTC, we are ready to calculate the IOPS.<\/p>\n<p><strong>Note<\/strong>: By choosing one minute, we could have gotten more precise numbers within a minute. However, if there are no major disk Ops spikes within those 15 minutes, it should suffice.<\/p>\n<p>Remember the formula we presented in the beginning?<\/p>\n<p>IOPS USED = (READ THROUGHPUT + WRITE THROUGHPUT) \/ Time (in seconds)<\/p>\n<p>In our example:<\/p>\n<p>&nbsp; &nbsp; <strong>VolumeReadOps<\/strong>&nbsp;is 3,027,754 + <strong>VolumeWriteOps<\/strong>&nbsp;is 12,587) \/ (60 seconds x 15 minutes)<\/p>\n<p>&nbsp; &nbsp; = 3,040,341\/ 900<\/p>\n<p>&nbsp; &nbsp; = 3,378 Total IOPS<\/p>\n<p>From this point, you can compare your total IOPS provisioned for that volume to prevent latencies for your server. On default settings, the number of IOPS provisioned is three times the EBS volume size based on the I\/O Credit Balance you receive&nbsp;for a General Purpose SSD (GP2) from AWS. &nbsp;You can increase this up to 10,000 IOPS or convert it to a <strong>PIOPS<\/strong>&nbsp;EBS Volume Type to receive a higher amount if needed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Find your Amazon; Elastic Block Store (EBS) Volumes Input and Output Operations Per Second (IOPS) in a specific<br \/>\nperiod by using the CloudWatch dashboard.<\/p>\n","protected":false},"author":2,"featured_media":7175,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26291","content_type":"blog","created_by":"10130","authored_on":"2023-11-25T16:46:18+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"By Rackspace Technical Staff","seo_description":"Guide to earning Google Cloud Professional Data Engineer certification. Study resources and key topics.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26291-insights_image-aws-technical-blog-1-insights.png","field_partners":"","rxt_platforms":"Amazon Web Services (AWS)","product":"","publisheddate":"2021-01-14T16:46:18","rxt_solutions":"Cloud Management & Operations, Data, Analytics & Business Insights","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Calculate EBS Volume IOPS on CloudWatch | Rackspace","field_topics":"","field_slug":"how-to-calculate-your-ebs-volume-iops-on-cloudwatch","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7173","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/comments?post=7173"}],"version-history":[{"count":2,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7173\/revisions"}],"predecessor-version":[{"id":9102,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7173\/revisions\/9102"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media\/7175"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media?parent=7173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/categories?post=7173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/tags?post=7173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}