现实中的I/O情况
为了更好的理解存储系统中的I/O和其他相关概念,可以用现实中的春运时的火车站售票窗口的排队现象,来形象的对比存储系统中的I/O情况:
为了更好的理解存储系统中的I/O和其他相关概念,可以用现实中的春运时的火车站售票窗口的排队现象,来形象的对比存储系统中的I/O情况:
火车站售票大厅:存储系统
售票窗口:I/O通道。
每个乘客到售票窗口购票:相当于一次I/O。乘客告诉售票员,去哪里,买几张票,售票员确认,出票,乘客拿到车票,就相当于完成了一次I/O。然后排在队伍中的下一位的乘客开始买票,重复这个过程。
一段时间内,每位乘客购票的平均耗费时间:平均响应时间。比较普遍的情况是,每个乘客买票的数量多的情况下,是比买一张票所耗费的时间要多。如果乘客既要问询票价,还要买到不同目的地的车票,所花的时间也会比只买一个目的地车票所花的时间多(这里不考虑极端情况。例如,售票员手上刚好有以前打印好的车票,而且正好是乘客所要购买的,那么就会大大降低处理时间。这相当于存储系统中,读请求恰好命中了Cache中的数据,而不必再从磁盘读数据)。
每个乘客购票数量:每次IO所传送的数据量。
对于排队购票的乘客来说,他关心的是花多长时间才能尽快的排队买上票,这时候影响他排队时间的就是前面每个购票者购票所花费的时间,只有这个时间越短,他才能尽快的买上票。
售票窗口:I/O通道。
每个乘客到售票窗口购票:相当于一次I/O。乘客告诉售票员,去哪里,买几张票,售票员确认,出票,乘客拿到车票,就相当于完成了一次I/O。然后排在队伍中的下一位的乘客开始买票,重复这个过程。
一段时间内,每位乘客购票的平均耗费时间:平均响应时间。比较普遍的情况是,每个乘客买票的数量多的情况下,是比买一张票所耗费的时间要多。如果乘客既要问询票价,还要买到不同目的地的车票,所花的时间也会比只买一个目的地车票所花的时间多(这里不考虑极端情况。例如,售票员手上刚好有以前打印好的车票,而且正好是乘客所要购买的,那么就会大大降低处理时间。这相当于存储系统中,读请求恰好命中了Cache中的数据,而不必再从磁盘读数据)。
每个乘客购票数量:每次IO所传送的数据量。
对于排队购票的乘客来说,他关心的是花多长时间才能尽快的排队买上票,这时候影响他排队时间的就是前面每个购票者购票所花费的时间,只有这个时间越短,他才能尽快的买上票。
在存储系统内就是,每个IO响应时间越短,单位时间内的IOPS就越高。
对于铁道部门来说,它根本不关心有多少人排队购票,每个购票者买票花费的时间。它只关心在一段时间内,例如整个春运时间段,它所售出的火车票的总数量。这个整体的数量,主要取决于每个购票者购买的票数,其次才取决于每个购票者平均买票花费的时间,另外还取决于同时有多少个窗口并行售票。
在存储系统内就是,每个IO的传送的数据量越大,并行读写的数量越多,单位时间内存储系统可以提供的带宽就越大。
在这个例子中,我们可以看到,乘客更关注于售票系统的平均响应时间,铁道部门更关注于最大售票量(一段时间内的带宽总和)。这就是从不同角度,来考量存储的性能参数。
对于乘客来说,每个乘客购买的票数多了(每个IO传送的数据量增加),但是所花的时间也长了,单位时间内,能买上票的乘客的数量反而会减少(IOPS减少),但是铁道部门的售票总量还是会线性增加(带宽增加)。
这就类似于存储系统中, IOPS和带宽之间的关系:
写入10000个1KB文件,用时10秒 Throught(带宽)=1MB/s ,IOPS=1000
写入1个1MB文件,用时0.1秒 Throught(生活中数据库系统的实际例子带宽)=10MB/s, IOPS=10
对于铁道部门来说,它根本不关心有多少人排队购票,每个购票者买票花费的时间。它只关心在一段时间内,例如整个春运时间段,它所售出的火车票的总数量。这个整体的数量,主要取决于每个购票者购买的票数,其次才取决于每个购票者平均买票花费的时间,另外还取决于同时有多少个窗口并行售票。
在存储系统内就是,每个IO的传送的数据量越大,并行读写的数量越多,单位时间内存储系统可以提供的带宽就越大。
在这个例子中,我们可以看到,乘客更关注于售票系统的平均响应时间,铁道部门更关注于最大售票量(一段时间内的带宽总和)。这就是从不同角度,来考量存储的性能参数。
对于乘客来说,每个乘客购买的票数多了(每个IO传送的数据量增加),但是所花的时间也长了,单位时间内,能买上票的乘客的数量反而会减少(IOPS减少),但是铁道部门的售票总量还是会线性增加(带宽增加)。
这就类似于存储系统中, IOPS和带宽之间的关系:
写入10000个1KB文件,用时10秒 Throught(带宽)=1MB/s ,IOPS=1000
写入1个1MB文件,用时0.1秒 Throught(生活中数据库系统的实际例子带宽)=10MB/s, IOPS=10
由此可见,
传输大容量连续数据,适合以带宽为标准,选择高带宽存储系统
传输小块、不连续数据,如OLTP、数据库应用、邮件服务器等,适合以IOPS为标准,选择高IOPS存储系统
以上所举的例子,只是类似于存储系统中顺序I/O的情况,实际存储中的情况还有随机读、随机写I/O等情况,远比这个例子复杂。这里不做讨论。但这个例子的一些结论,还是可以借鉴并有助于理解存储I/O和性能、带宽等之间的关系。
传输大容量连续数据,适合以带宽为标准,选择高带宽存储系统
传输小块、不连续数据,如OLTP、数据库应用、邮件服务器等,适合以IOPS为标准,选择高IOPS存储系统
以上所举的例子,只是类似于存储系统中顺序I/O的情况,实际存储中的情况还有随机读、随机写I/O等情况,远比这个例子复杂。这里不做讨论。但这个例子的一些结论,还是可以借鉴并有助于理解存储I/O和性能、带宽等之间的关系。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论