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

简介: 剪辑自: 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 fundam

剪辑自: 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模型是什么样的,你就已经靠近最好的存储方案了。

目录
相关文章
|
2月前
|
网络架构
【专栏】网络技术:网速和带宽的区别,带宽是网络的最大传输能力,而网速是实际传输速率,受网络拥堵、硬件性能等因素影响
【4月更文挑战第28天】本文探讨了网速和带宽的区别,带宽是网络的最大传输能力,而网速是实际传输速率,受网络拥堵、硬件性能等因素影响。两者关系可比喻为道路车道数与车辆速度。了解这些有助于优化网络体验,如选择合适带宽、升级硬件、使用有线连接、管理带宽占用和连接时机。理解二者差异能帮助我们更好地评估网络服务并提升上网效率。
|
JavaScript 前端开发 C++
Web性能优化之 延迟与带宽
速度是关键 延迟的构成 光速与传播延迟 延迟的最后一公里 网络核心带宽 VS 网络边缘带宽 目标:高带宽和低延迟
117 0
|
缓存 安全 网络安全
什么是大带宽服务器?大带宽服务器的优势有哪些?
现今社会,对数据的应用越来越广泛,对香港服务器的租用也就越来愈多,许多企业都非常喜欢租用大带宽的服务器,那么,什么是大带宽服务器呢?香港大带宽服务器的优势有哪些呢?让影速科技小编带大家一起了解:
|
网络架构
关于网络,带宽,网速,延迟的一些知识
关于网络,带宽,网速,延迟的一些知识
206 0
|
弹性计算 监控
阿里云1M带宽实际下载速度是多少?(带宽和下载速度的关系)
阿里云1M带宽实际下载速度是多少?阿里云1M带宽下载速度峰值128KB/S,阿里云带宽是独享的,即便在网络高峰时段也会保障用户该有的带宽值
1132 0
|
存储 BI 网络架构
【计算机网络】计算机网络 标性能指标 ( 速率 | 带宽 | 吞吐量 | 时延 | 时延带宽积 | 往返时延 RTT | 利用率 )
【计算机网络】计算机网络 标性能指标 ( 速率 | 带宽 | 吞吐量 | 时延 | 时延带宽积 | 往返时延 RTT | 利用率 )
406 0
【计算机网络】计算机网络 标性能指标 ( 速率 | 带宽 | 吞吐量 | 时延 | 时延带宽积 | 往返时延 RTT | 利用率 )
|
云计算
服务器带宽1M/3M/5M/10M…200M下载速度峰值对照表(附计算公式)
云服务器带宽1M/2M/3M/5M/10M/20M/50M/100M/200M等带宽实际下载速度峰值是多少?如何计算云服务器公网带宽的实际下载速度?服务器带宽实际下载速度对照表及计算方法:
|
存储 缓存 边缘计算
高清视频下如何节省带宽?
数据显示,国内互联网流量每月被消耗 200EB,且 80% 的流量消耗来自于视频领域。随着 5G 的普及,云制播等得到快速发展,流量消耗会越来越大,而这背后是非常高昂的带宽成本。如何通过技术创新,让用户流畅看高清的同时,实现平均带宽成本的持续下降?本文为阿里文娱技术专家七甲的分享,将详解介绍文娱在云边端内容分发领域的最新探索,希望对音视频、泛内容分发领域的技术同学有所启发。(文末福利:下载《文娱音视频核心技术》电子书)
921 0
高清视频下如何节省带宽?