剪辑自: http://www.violin-memory.com/blog/the-fundamental-characteristics-of-storage/

Storage for DBAs: As a rule of thumb, pretty much any storage system can be characterised by three fundamental properties:

Latency is a measurement of delay in a system; so in the case of storage it is the time taken to respond to an I/O request. It’s a term which is frequently misused – more on this later – but when found in the context of a storage system’s data sheet it often means the average latency of a single I/O. Latency figures for disk are usually measured in milliseconds; for flash a more common unit of measurement would be microseconds.

IOPS (which stands for I/Os Per Second) represents the number of individual I/O operations taking place in a second. IOPS figures can be very useful, but only when you know a little bit about the nature of the I/O such as it’s size and randomicity. If you look at the data sheet for a storage product you will usually see a Max IOPS figure somewhere, with a footnote indicating the I/O size and nature.

Bandwidth (also variously known as throughput) is a measure of data volume over time – in other words, the amount of data that can be pushed or pulled through a system per second. Throughput figures are therefore usually given in units of MB/sec or GB/sec.

As the picture suggests, these properties are all related. It’s worth understanding how and why, because you will invariably need all three in the real world. It’s no good buying a storage system which can deliver massive numbers of IOPS, for example, if the latency will be terrible as a result.
The throughput is simply a product of the number of IOPS and the I/O size:

Throughput = IOPS x I/O size

So 2,048 IOPS with an 8k blocksize is (2,048 x 8k) = 16,384 kbytes/sec which is a throughput of 16MB/sec.
The latency is also related, although not in such a strict mathematical sense. Simply put, the latency of a storage system will rise as it gets busier. We can measure how busy the system is by looking at either the IOPS or Throughput figures, but throughput unnecessarily introduces the variable of block size so let’s stick with IOPS. We can therefore say that the latency is proportional to the IOPS:

Latency ∝ IOPS

I like the mathematical symbol in that last line because it makes me feel like I’m writing something intelligent, but to be honest it’s not really accurate. The proportional (∝) symbol suggests a direct relationship, but actually the latency of a system usually increases exponentially as it nears saturation point.

We can see this if we plot a graph of latency versus IOPS – a common way of visualising performance characteristics in the storage world. The graph on the right shows the SPC benchmark results for an disk system (submitted in 2011). See how the response time seems to hit a wall of maximum IOPS? Beyond this point, latency increases rapidly without the number of IOPS increasing. Even though there are only six data points on the graph it’s pretty easy to visualise where the limit of performance for this particular system is.

I said earlier that the term Latency is frequently misused – and just to prove it I misused it myself in the last paragraph. The SPC performance graph is actually plotting response time and not latency. These two terms, along with variations of the phrase I/O wait time, are often used interchangeably when they perhaps should not be.

According to Wikipedia, “Latency is a measure of time delay experienced in a system“. If your database need, for example, to read a block from disk then that action requires a certain amount of time. The time taken for the action to complete is the response time. If your user session is subsequently waiting for that I/O before it can continue (a blocking wait) then it experiences I/O wait time which Oracle will chalk up to one of the regular wait events such as db file sequential read.

The latency is the amount of time taken until the device is ready to start reading the block, i.e not including the time taken to complete the read. In the disk world this includes things like the seek time (moving the actuator arm to the correct track) and the rotational latency (spinning the platter to the correct sector), both of which are mechanical processes (and therefore slow).

When I first began working for a storage vendor I found the intricacies of the terminology confusing – I suppose it’s no different to people entering the database world for the first time. I began to realise that there is often a language barrier in I.T. as people with different technical specialties use different vocabularies to describe the same underlying phenomena. For example, a storage person might say that the array is experiencing “high latency” while the database admin says that there is “high User I/O wait time“. The OS admin might look at the server statistics and comment on the “high levels of IOWAIT“, yet the poor user trying to use the application is only able to describe it as “slow“.【初学时的我就一直纠结大家都在用不同术语,此段道出了心声】

At the end of the day, it’s the application and its users that matter most, since without them there would be no need for the infrastructure. So with that in mind, let’s finish off this post by attempting to translate the terms above into the language of applications.【就是说根据不同应用场景讲不同的词】

Translating Storage Into Application

Earlier we defined the three fundamental characteristics of storage. Now let’s attempt to translate them into the language of applications:

Latency is about application acceleration【Latency侧重应用速度】. If you are looking to improve user experience, if you want screens on your ERP system to refresh quicker, if you want release notes to come out of the warehouse printer faster… latency is critical. It is extremely important for highly transactional (OLTP) applications which require fast response times. Examples include call centre systems, CRM, trading, e-Business etc where real-time data is critical and the high latency of spinning disk has a direct negative impact on revenue.

IOPS is for application scalability【IOPS侧重应用扩展性,增加并发、实例的数目】. IOPS are required for scaling applications and increasing the workload, which most commonly means one of three things: in the OLTP space, increasing the number of concurrent users; in the data warehouse space increasing the parallelism of batch processes, or in the consolidation / virtualisation space increasing the number of database instances located on a single physical platform (i.e. the density). This last example is becoming ever more important as more and more enterprises consolidate their database estates to save on operational and licensing costs.

Bandwidth / Throughput is effectively the amount of data you can push or pull through your a system【侧重批处理、数据仓库】. Obviously that makes it a critical requirement for batch jobs or datawarehouse-type workloads where massive amounts of data need to be processed in order to aggregate and report, or identify trends. Increased bandwidth allows for batch processes to complete in reduced amounts of time or for Extract Transform Load (ETL) jobs to run faster. And every DBA that ever lived at some point had to deal with a batch process that was taking longer and longer until it started to overrun the window in which it was designed to fit…

Finally, a warning. As with any language there are subtleties and nuances which get lost in translation. The above “translation” is just a rough guide… the real message is to remember that I/O is driven by applications. Data sheets tell you the maximum performance of a product in ideal conditions, but the reality is that your applications are unique to your organisation so only you will know what they need. If you can understand what your I/O patterns look like using the three terms above, you are halfway to knowing what the best storage solution is for you…

最后一段翻译一下

最后给出一个忠告,由于语言本身有很多微妙、细微差别的地方让人不知如何翻译。上面的翻译也只是一个大致的参考。关键要记住IO是由应用驱动的。数据清单只能告诉你产品在理想情况下的最大性能,但是实际情况是应用独立于公司组织,所以只有你才清楚它们需要什么。如果你通过使用以上三个词汇明白了IO模型是什么样的,你就已经靠近最好的存储方案了。

时延、IOPS、带宽等词具体是个神马意思?相关推荐

  1. 网络应用优化——时延与带宽

    用户感知的"速度" 用户体验能给网站带来更多的收益,因此人们也投入了更多精力去研究它.用户体验中,除了好的交互,精美的界面,用户感知的"速度"也是重要的一环.从 ...

  2. 百度下拉词怎么做?出现负面应该如何处理?此方法适用百度、搜狗、神马

    首先说一下,什么是下拉词? 百度下拉词是百度搜索为了更好地便捷众多网友检索,提升键入高效率而发布的一项服务项目.目前来说包括多家搜索引擎或者平台都有下拉联想推荐词的存在! 推神网( daizuobai ...

  3. 116.网络里的时延和带宽

    时延:是指数据(一个报文或者分组)从网络的一端到另一端所用的时间. 时延=发送时延+传播时延+处理时延+排队时延 其中我们主要考虑的是发送时延和传播时延. 对于长报文 发送时延是主要矛盾 对于报文较短 ...

  4. 浅谈MSTP时延与带宽和速率的关系

    随着技术的进步.网络的发展及用户对通信依赖提升,客户对我们的MSTP电路要求也越来越高,从原来强调可靠性.高带宽外,对时延也提出了更高的要求---低时延.那如何保证低时延,时延到底与什么有关,时延到底 ...

  5. python爬取弹幕读取csv文件制作弹幕热点词云图-万恶之源马老师-后裔弃兵

    文章目录 1.后裔弃兵 2.万恶之源弹幕 python3.8 jupyter notebook 1.后裔弃兵 <后翼弃兵>豆瓣短评数据集 import pandas import csv ...

  6. 是正经的区块链技术还是剑走偏锋搏一回?

    区块链的定义与挖掘(解密)具有一定的特征,任何有意假借其特征而非行其真实运行之实者,其司马昭之心就很明显了. 在有关部门相继重拳打击ICO活动之后,国内ICO乱想得到了缓解,但在巨大的利益诱惑下,一部 ...

  7. 时延、时间带宽积、RTT、利用率

    文章目录 时延 发送时延 传播时延 排队时延 处理时延 高速链路 时间带宽积 往返时延RTT 利用率 时延 发送时延 定义: 从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间 公式 ...

  8. 计算机中的速率、带宽、时延、利用率解读

    计算机网络的性能一般是指它的几个重要的性能指标.但除了这些重要的性能指标外,还有一些非性能特征(nonperformance characteristics)也对计算机网络的性能有很大的影响. 那么, ...

  9. 计算机网络>时延、时延带宽积、往返时间RTT、信道利用率

    计算机网络性能指标(二) (二)时延.时延带宽积.往返时间RTT.信道利用率 1.时延 定义:指完成一组数据从链路或网络发送端传输到接受端这一完整过程(注意这是个过程时间,从发送端发出数据到链路,再到 ...

最新文章

  1. DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Sequential)利用MNIST(手写数字图片识别)数据集实现多分类预测
  2. CSS3 2D和3D转换 Transform
  3. 5.IDA-文本搜索、二进制搜索(16进制字节序列)、替换16进制
  4. 把转变为json_如何使用7行JSON将您的网站转变为移动应用程序
  5. java 进程崩溃_java程序崩溃自启脚本
  6. 3dvary灯光材质为什么不亮_关机后电脑灯光闪瞎狗眼?在这里关闭它
  7. Leetcode: 二叉树的后序遍历
  8. python可以做什么-Python简直就是万能的,你用Python都做过哪些事?
  9. web工程本地跟tomcat部署导致根路径不一致问题
  10. 横河涡街流量计安装参数说明及要求
  11. win10下装黑苹果双系统_【教程】黑苹果一键安装双系统EFI驱动
  12. 计算机mac地址为空,怎么查看电脑的Mac地址
  13. 青岛再添新动脉|唐河路—安顺路预计年底通车
  14. C++ 引用以及引用与指针的区别
  15. 【趣学算法】第一章 算法之美(上)
  16. 多线程-生产者-消费者模型
  17. Centos系统简单的病毒处理
  18. 公务员考试取消35岁限制,就能消除职场年龄歧视?
  19. IR2127/IR2128典型接线图
  20. SQL视图(转自http://www.cnblogs.com/fineboy/archive/2005/09/14/236731.html)

热门文章

  1. 堡垒机拓扑图_fanzhenlong/堡垒机部署方案总结.md at master · leadsino/fanzhenlong · GitHub...
  2. springboot基础学习笔记
  3. Chunk at 0000001313C1A500 of size 512
  4. 七月在线笔记之推荐系统
  5. 2023 QS 世界大学最新排名发布:清北力压耶鲁,MIT 蝉联第一
  6. c 递归实现谢宾斯基三角形
  7. 教师资格证报名-ie浏览器-不兼容
  8. 用python编程、假设一年期定期利率_「定期存款利率计算」4. 假设一年期定期利率为 3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番? - seo实验室...
  9. 提升成都文化产业竞争力的钻石体系
  10. python编程之美pdf_GitHub - Farolding/toPdf: 爬取“Python编程之美:最佳实践指南”制作PDF电子书...