我了解什么是 IOPS 和吞吐量。吞吐量以 MB/s 为单位衡量数据流,IOPS 表示每秒发生的 I/O 操作数。
我不明白的是为什么许多存储服务只显示它们提供的 IOPS。我真的看不到任何我更愿意知道 IOPS 而不是吞吐量的情况。
为什么 IOPS 很重要?为什么 AWS 主要以 IOPS 显示其存储配置?IOPS 在哪些方面比吞吐量 (MB/s) 更相关?
编辑:
有些人正在研究这个问题,就好像我问什么是随机访问以及它如何影响性能或 HDD 和 SSD 的工作原理......对此,这不是问题的目标,问题是关于“当我看到 IOPS 数字时,我会获得哪些新信息,而我不会看到吞吐量 (MB/s) 数字?”
关于 IOPS,我在网上看到几个消息来源表明给定磁盘数量的 IOPS 只是单个磁盘的 IOPS 乘以磁盘数量。
如果我对 IOPS 的理解是正确的(我完全不确定),我会认为现实将取决于 - 在许多其他因素中 - RAID 级别。使用 RAID 1/10,所有数据都至少在两个磁盘上复制,从而减少了某些 IO 模式在特定磁盘上的争用。但是,在条带化 RAID 级别(例如 RAID 0/5/6)中,数据是分布的而不是复制的,这意味着连续的读取请求可能针对同一主轴,从而导致在前一个 IO 完成时发生阻塞。写的更有争议。
我应该补充一点,由于各种优化和其他因素,我意识到现实要复杂得多。我的问题实际上只是在非常基本的层面上推动我对 IOPS 含义的理解是否在正确的轨道上。可能是我断言 IOPS 甚至可能以这种方式受到 RAID 级别的影响,这表明对该概念的基本误解。
有没有办法可以提示 ZFS 在其 zpool 中的所有磁盘上重新分配给定的文件系统?
我正在考虑一个场景,我有一个固定大小的 ZFS 卷,它通过 FC 导出为 LUN。现在的zpool很小,只有两个1TB的镜像盘,zvol总共750GB。如果我突然将 zpool 的大小扩展到 12 个 1TB 磁盘,我相信 zvol 仍将有效地仅“容纳”在前两个主轴上。
鉴于更多心轴 = 更多 IOPS,我可以使用什么方法在所有 12 个心轴上“重新分配”zvol 以利用它们?
我正在尝试估计在 32 位 CentOS 6.2 上运行的应用程序的 IOPS 要求。我开始在一台带有 SATA 磁盘的机器上进行一些测量,我对 sar 测量的 IOPS 和 tps 之间的差异感到非常困惑。
根据维基百科SATA 磁盘应该执行 75-100 IOPS。ioping 实用程序似乎为随机访问测试确认了这一点:
# ./ioping -R /dev/sda
--- /dev/sda (device 931.0 Gb) ioping statistics ---
279 requests completed in 3.0 s, 92 iops, 371.3 kb/s
min/avg/max/mdev = 2.7 ms / 10.8 ms / 130.8 ms / 7.9 ms
Run Code Online (Sandbox Code Playgroud)
但是 sar 产生的 tps 值要高得多(/dev/sda):
# iostat 1
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 2.02 14.86 0.00 …Run Code Online (Sandbox Code Playgroud) 在所有其他条件相同的情况下,如果使用更大的磁盘,存储阵列的 IOPS 性能将如何变化。
例如,以一个具有 10 X 100GB 磁盘的阵列为例。
测量连续 256kb 块写入的 IOPS(或任何 IOPS 指标)
让我们假设所测得的 IOPS 为 1000 IOPS。
将阵列更改为具有 10 X 200GB 磁盘的阵列。使用相同的 RAID 配置、相同的块大小等进行格式化。
人们会期望 IOPS 保持不变、增加还是减少?变化是大致线性的吗?即增加 2 倍或减少 2 倍(因为我已将磁盘容量增加了 2 倍)
使用 10 X 50GB 磁盘重复这些问题。
编辑:更多上下文
这个问题是我的 Sysadmin 团队之间的一次对话导致的,该团队并不精通所有存储。(适用于存储的许多方面,但不适用于管理 SAN 或其他方面的细节)。我们收到了一大堆新的 Netapp 托盘,每个磁盘的磁盘容量比我们现有的托盘更高——双倍容量。有人评论说,新托盘的 IOPS 会更低,因为磁盘更大。然后出现了一个汽车类比来解释这一点。这两条评论都不适合我,所以我想把它交给 The Team,即 Stack-Exchange-land。
汽车类比是关于两辆汽车,加速度不同,最高速度相同,行驶四分之一英里。然后将距离更改为半英里。实际上,我不记得确切的类比,但由于我在 interwebz 上发现了另一个类似的类比,我认为这可能是一个常见的 IOPS 类比。
在某些方面,问题的实际答案对我来说并不重要,因为我们不会使用这些信息来评估购买。但是我们确实需要评估将托盘连接到现有头部的最佳方法,以及雕刻出聚集体和体积的最佳方法。
我们最近搬到了 Amazon Web Servers,并且仍在学习我们的方法。我们的 EC2 Web 实例和我们的 RDS MySQL 实例(现在我们每个只有 1 个)似乎运行良好。但我想知道我们是否可以从它们中获得更好的性能。
我们确实运行了一个非常小的站点,但是由于 MySQL 端的大量聚合,某些页面仍然需要一段时间才能加载。
这是我们当前的统计数据:
EC2 网络服务器使用 (c3.large)

RDS (MySQL) 用法 (db.m1.large)

其中,只有 DB (db.m1.large) 是“Provisioned IOPS Optimized”。
非“PIOPS 优化”实例是否仍然受益于预置 IOPS?或者我们应该为我们的 EC2 Web 服务器考虑不同的实例类型?
有了这些统计数据,我们是否还需要预置 IOPS?我们会看到任何好处吗?
如果预置 IOPS 有帮助,我怎么知道我需要多少?我怎么能测试这个?
我有一个 ubuntu 14.04.1 LTS 服务器,它具有带有逻辑卷的 LVM(由硬件 RAID5 支持)和一个名为“dbstore-lv”和“dbstore-vg”的卷组,它们具有从同一个 sdb 磁盘创建的 sdb1 sdb2 sdb3。该系统为42核和约128G内存。虽然我没有看到htop来自uptime~43+的负载平均输出中的CPU 峰值以及 vmstat 显示恒定的 iowait 为 20-40,其中context switches不断在 80,000-150000 左右,在高峰时段甚至更多,但 CPU 空闲时间也徘徊在附近70-85。下面是输出iostat -xp 1在%util恒定为100%
avg-cpu: %user %nice %system %iowait %steal %idle
8.91 0.00 1.31 10.98 0.00 78.80
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 264.00 0.00 58.00 0.00 1428.00 49.24 0.02 0.28 0.00 0.28 0.21 1.20
sda1 0.00 0.00 …Run Code Online (Sandbox Code Playgroud) 我在 AWS 上有一个正在运行的 Mysql db.m3.medium RDS 实例,使用 20GB SSD 运行,如下所示:RDS 机器描述
过去一小时的写入和读取操作如下:磁盘操作
看起来 max(write)+max(read) 操作总数约为 50/秒,这意味着它低于 3 * disk_capacity = 3 * 20 = 60 iops/秒。因此,这意味着每秒我的信用余额都会获得额外的 10 iops。
考虑到这一点,我当前的信用计数是该时间段(1小时)之前的信用计数+总和(每个第二时间范围的信用余额)?
这是计算当前 IOPS 使用情况和信用累积/计数的正确方法吗?
如果是这样,则没有 AWS 图表显示 IOPS 积分使用情况,因为有 CPU 积分使用情况,对吗?
我想测量 RAID6 阵列与 RAID10 阵列的读写性能。我知道bonnie++可用于计算磁盘性能,但 bonnie++ 生成的数字不包括“IOPS”等术语。如今,许多磁盘性能文章和指南都提到了“IOPS”。
如何使用 bonnie++ 计算磁盘阵列的 IOPS。如何确保我的测试测试的是磁盘的实际 I/O 而不是系统缓存?
以下是我的一台服务器的一些示例统计数据。这些字段之一会报告类似于 IOPS 的数字吗?
# bonnie++ -q -d /data -u root
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
hosta.example. 11680M 680 99 281780 26 133389 18 3955 99 382518 24 1097 31
Latency 12070us 124ms 406ms 8065us 60074us 36903us
Version 1.96 ------Sequential …Run Code Online (Sandbox Code Playgroud) iops ×10
performance ×5
storage ×4
linux ×3
amazon-rds ×2
hard-drive ×2
amazon-ec2 ×1
mysql ×1
optimization ×1
raid ×1
sar ×1
zfs ×1
zvol ×1