1. 程式人生 > >磁碟IOPS(每秒讀寫次數)的計算方法與測量

磁碟IOPS(每秒讀寫次數)的計算方法與測量

IOPS (Input/Output Per Second)即每秒的輸入輸出量(或讀寫次數),是衡量磁碟效能的主要指標之一。IOPS是指單位時間內系統能處理的I/O請求數量,一般以每秒處理的I/O請求數量為單位,I/O請求通常為讀或寫資料操作請求。隨機讀寫頻繁的應用,如OLTP(Online Transaction Processing),IOPS是關鍵衡量指標。另一個重要指標是資料吞吐量(Throughput),指單位時間內可以成功傳輸的資料數量。對於大量順序讀寫的應用,如VOD(Video On Demand),則更關注吞吐量指標。

傳統磁碟本質上一種機械裝置,如FC,SAS,SATA磁碟,轉速通常為5400/7200/10K/15K rpm不等。影響磁碟的關鍵因素是磁碟服務時間,即磁碟完成一個I/O請求所花費的時間,它由尋道時間、旋轉延遲和資料傳輸時間三部分構成。

尋道時間Tseek是指將讀寫磁頭移動至正確的磁軌上所需要的時間。尋道時間越短,I/O操作越快,目前磁碟的平均尋道時間一般在3-15ms。

旋轉延遲Trotation是指碟片旋轉將請求資料所在扇區移至讀寫磁頭下方所需要的時間。旋轉延遲取決於磁碟轉速,通常使用磁碟旋轉一週所需時間的1/2表示。比如,7200 rpm的磁碟平均旋轉延遲大約為60*1000/7200/2 = 4.17ms,而轉速為15000 rpm的磁碟其平均旋轉延遲約為2ms。

資料傳輸時間Ttransfer是指完成傳輸所請求的資料所需要的時間,它取決於資料傳輸率,其值等於資料大小除以資料傳輸率。目前IDE/ATA能達到133MB/s,SATA II可達到300MB/s的介面資料傳輸率,資料傳輸時間通常遠小於前兩部分時間。

因此,理論上可以計算出磁碟的最大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略資料傳輸時間。假設磁碟平均物理尋道時間為3ms, 磁碟轉速為7200,10K,15K rpm,則磁碟IOPS理論最大值分別為,

IOPS = 1000 / (3 + 60000/7200/2) = 140

IOPS = 1000 / (3 + 60000/10000/2) = 167

IOPS = 1000 / (3 + 60000/15000/2) = 200

  固態硬碟SSD是一種電子裝置, 避免了傳統磁碟在尋道和旋轉上的時間花費,儲存單元定址開銷大大降低,因此IOPS可以非常高,能夠達到數萬甚至數十萬。實際測量中,IOPS數值會受到很多因素的影響,包括I/O負載特徵(讀寫比例,順序和隨機,工作執行緒數,佇列深度,資料記錄大小)、系統配置、作業系統、磁碟驅動等等。因此對比測量磁碟IOPS時,必須在同樣的測試基準下進行,即便如何也會產生一定的隨機不確定性。通常情況下,IOPS可細分為如下幾個指標:

Toatal IOPS,混合讀寫和順序隨機I/O負載情況下的磁碟IOPS,這個與實際I/O情況最為相符,大多數應用關注此指標。

Random Read IOPS,100%隨機讀負載情況下的IOPS。

Random Write IOPS,100%隨機寫負載情況下的IOPS。

Sequential Read IOPS,100%順序負載讀情況下的IOPS。

Sequential Write IOPS,100%順序寫負載情況下的IOPS。

IOPS的測試benchmark工具主要有Iometer, IoZone, FIO等,可以綜合用於測試磁碟在不同情形下的IOPS。對於應用系統,需要首先確定資料的負載特徵,然後選擇合理的IOPS指標進行測量和對比分析,據此選擇合適的儲存介質和軟體系統。下面的磁碟IOPS資料來自http://en.wikipedia.org/wiki/IOPS,給大家一個基本參考。

硬碟的讀寫原理:http://www.cnblogs.com/xmphoenix/p/3879022.html

相關推薦

磁碟IOPS次數計算方法測量

IOPS (Input/Output Per Second)即每秒的輸入輸出量(或讀寫次數),是衡量磁碟效能的主要指標之一。IOPS是指單位時間內系統能處理的I/O請求數量,一般以每秒處理的I/O請求數量為單位,I/O請求通常為讀或寫資料操作請求。隨機讀寫頻繁的應用,如O

java輸入輸出14:IO流位元組流中文

位元組流讀取中文的問題 位元組流在讀中文的時候有可能會讀到半個中文,造成亂碼。 位元組流寫出中文的問題 位元組流直接操作位元組,所以寫出中文必須將字串轉換成位元組陣列。寫出回車換行write("\r\n

pandas21 csv檔案read_csv1.文字概要詳細 tcy

文字檔案讀寫   目錄: 第1部分:csv文字檔案讀寫 pandas 讀csv檔案read_csv(1.文字讀寫概要)https://mp.csdn.net/postedit/85289371 pandas 讀csv檔案read_csv(2.read_csv引

Linux 如何測試 IO 效能磁碟速度

這幾天做MySQL效能測試,偌大一個公司,找幾臺效能測試機器都很糾結,終於協調到兩臺,IO的效能如何還不知道。 資料庫屬於IO密集型的應用,所以還是先評估下Server的IO效能,看看是否能和線上的機器匹配上。 之前一直知道用dd(device to device)命令可以簡單測試磁碟的IO讀寫速度,但沒有

EF通用數據層封裝類支持分離,一主多從

dto cte 功能 pes getc mes 工廠 好的 靈活 淺談orm 記得四年前在學校第一次接觸到 Ling to Sql,那時候瞬間發現不用手寫sql語句是多麽的方便,後面慢慢的接觸了許多orm框架,像 EF,Dapper,Hibernate,ServiceSta

docker-compose.yml樣例mysql主從+mycat分離

mysqld 系統 環境變量 服務端 nbsp dock 自定義 host expose Docker-compose.yml文件示例 1、mysql主從復制的docker-compose.yml文件 # cat docker-compose.yml version: ‘2

課堂測試四文件

upd select tag art main cor color -s ioe 學生信息管理系統 (本程序以文本方式存儲數據,不通過數組,直接對文件進行操作) 學生類 Student.java 1 public class Student { 2 priva

搬家行業開發小程序系統App.Config詳解及操作

設置 反饋 流程 選擇 文件的 搬家 功能 操作 服務項目 應用程序配置文件是標準的 XML 文件,XML 標記和屬性是區分大小寫的。它是可以按需要更改的,開發人員可以使用配置文件來更改設置,而不必重編譯應用程序。配置文件的根節點是configuration。我們經常訪問的

MySQL第六天主從同步,數據分離

dsfaday05一、數據備份與恢復-增量備份和增量恢復a.binlog日誌介紹(二進制文件):使用Mysql數據庫服務日誌文件類型的一種。記錄除查詢之外的sql命令。默認沒啟用 查詢的sql包括:select desc show 不是查詢的命令:insert update delete create dr

Linux多執行緒程式設計---執行緒間同步互斥鎖、條件變數、訊號量和

本篇博文轉自http://zhangxiaoya.github.io/2015/05/15/multi-thread-of-c-program-language-on-linux/ Linux下提供了多種方式來處理執行緒同步,最常用的是互斥鎖、條件變數、訊號量和讀寫鎖。  下面是思維導

Tuxera ntfs破解版|Tuxera ntfs for macmac工具v2018 中

Tuxera ntfs 破解版是Mac os平臺上的一種簡單、實用的解壓縮軟體,可以快速,簡單,高效解壓檔案,其易於使用的介面,個性化設定讓你輕鬆辦公,可以非常方便使用Rar Sharp for mac壓縮解壓工具,並且該軟體支援常用的壓縮格式,如rar、zip、gzip、tar等格式,支援壓縮包內檔案預

c# excel學習操作

#需要的dll Microsoft.Office.Interop.Excel (安裝了office,都會找到這個dll) //需要匯入 using Microsoft.Office.Interop.Excel; using System.Reflection; //1.建立Applic

鎖的優化 ReentrantReadWriteLock 資料共享通道:BlockingQueue

在併發的程式應用中,鎖的競爭必然導致程式的效能下降。為了將這種副作用降到最低,下面提出一些建議可以幫助大家寫出效能更加優越的程式。 減少鎖持有的時間   對於使用鎖進行併發控制的應用程式而言,在鎖競爭的過程中,單個執行緒對鎖的持有時間與系統性能有著直接的關係。如果執行緒持有鎖的時間很長,那麼相對的,鎖的競

Linux 使用Mycat實現分離基於Mysql的分離

各位同學大家好,今天給大家分享一下用Mycat進行資料庫的讀寫分離,本篇文章是基於上一篇的mysql主從複製。Linux上實現Mysql的主從複製(為Mycat讀寫分離作準備) 在上一篇文章中,我們在兩個伺服器使用同版本的作業系統和mysql: 伺服器1:centos7.3,mysql5.6 伺服器

JAVA四則運算檔案

完成時間:17:10 package 四則運算試題; import java.io.BufferedReader; import java.io.PrintStream; import java.util.Scanner; import java.io.FileReader; import java

java指定編碼的按行txt檔案幾種方式的比較

輸入輸出的幾種形式 1.FileReader,FileWriter File r = new File("temp.txt") FileReader f = new FileReader(name);//讀取檔案name BufferedReader b = new Buf

2017java檔案操作操作

java的讀寫操作是學java開發的必經之路,下面就來總結下java的讀寫操作。 從上圖可以開出,java的讀寫操作(輸入輸出)可以用“流”這個概念來表示,總體而言,java的讀寫操作又分為兩種:字元流和位元組流。 什麼是流? 流是一個抽象的概念。當Java程式需要從資料來源讀取資料時,會開啟一個到

VTK利用點雲高程渲染點雲+檔案

原始資料格式是個TXT檔案,,包含x,y,z座標,現在想利用點雲的高程進行渲染,但是使用vtkSimplePointReader類讀取的 x-y-z座標只能給點雲統一指定顏色,而類vtkParticleReader讀取的資料形式為x-y-z-a,後來自己從新寫了下檔案,將x-y-z後面再寫個z值作為

【人生苦短,我用python!】幾行python處理檔案裡面的重複內容包括了檔案,過濾重複!

The beauty of python 1 https://blog.csdn.net/dengyaolongacmblog/article/details/38016905 置頂 2014年07月21日 15:28:18 yaolongdeng 閱讀數:2189 標籤:

淺談JAVA位元組流檔案

InputStream  此抽象類是表示位元組輸入流的所有類的超類。需要定義 InputStream 的子類的應用程式必須始終提供返回下一個輸入位元組的方法。  int available()  返回此輸入流方法的下一個呼叫方可以不受阻塞地從此輸入流讀取(或跳過)的位