我的服务器中的 SSD 的 IOPS 非常低。我在运行 mysql 数据库服务器时注意到了这一点,当 InnoDB 数据库有很多(每秒约 100 次)更新时,它的性能非常差。
以下是服务器规格:
SSD:型号=三星 SSD 850 EVO 120GB,FwRev=EMT01B6Q
服务器:HP proliant DL320e Gen8
CPU:Intel(R) Xeon(R) CPU E3-1270 v3 @ 3.50GHz
操作系统:Ubuntu 14.04.1 LTS
内核:Linux h119 3.13.0-44-generic #73-Ubuntu SMP Tue Dec 16 00:22:43 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
在有负载的情况下检查 SSD 时,我使用iostat -kx 1 20得到这些结果
root@h119:~# iostat -kx 1 20
Linux 3.13.0-44-generic (h119) 02/19/2015 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.14 0.00 0.08 1.06 0.00 98.72
Device: …Run Code Online (Sandbox Code Playgroud) 我正在将戴尔服务器放在一起,更具体地说是 R720。我必须选择正确的主机总线适配器。R710 上的此 HBA 将连接到存储设备。我在这两者之间感到困惑:
我认为由于 QLogic 2562 是光纤通道并且价格更高,因此在 IOPS 方面它更快。但是,它是 8Gb,而不是 10 Gb 的 SFP+。
我的问题:
我正在寻找一种方法来快速(通过 PowerShell Get-Counter)向我显示某个物理磁盘上的 I/O 负载(IOPS 优于字节),以及文件访问信息 - 大概是文件路径。
基本上我想要的是在“磁盘”选项卡中的“资源监视器”中提供的信息,它显示哪个文件消耗了多少磁盘活动。在 RM 中,它是字节,但希望使用适当的计数器Get-Counter我们可以显示每个文件的 IOPS。
所有这些都是为了跟踪 SMB 文件共享上的特定 HyperV 虚拟磁盘文件正在使用的 IOPS。我想要一种使用内置 MS 组件(例如 perfmon)显示每个 VM 的磁盘 IOPS 的快速 Powershell 方式。
小背景:HyperV VM 是故障转移群集中的 VM 角色,访问两个不同的 SMB 3.0 文件共享之一;共享本身是 SOFS 提供的故障转移群集角色。磁盘信息来自 SOFS 节点上的“PhysicalDisk”计数器。
我已经很能看到每个磁盘IOPS总数:Get-Counter -ComputerName stor2 '\PhysicalDisk(26)\Disk Transfers/sec' -Continuous; 但我想扩展它以显示哪个 VM 正在执行多少 IOPS。
在此先感谢这个伟大的社区!
我正在使用 AWS i3.2xlargeEC2 实例并面临 10K IOPS 的限制。我不知道这是为什么?
我只写在 NVMe 实例存储上。无论我做什么,我都无法通过那个限制。我认为I3 类实例可以超越它?
有什么我想念的吗?我是否需要更大的实例才能达到更高的 IOPS?在我尝试更高之前,我想了解它是这些实例的典型限制还是我的设置中的某些内容?
有没有人能够使用这种类型的实例实现更高的吞吐量?为什么限制是 10K IOPS?这是什么原因?以及如何超越它?
注意:我正在运行一个数据库应用程序,并对其进行了许多更新请求。
我在一段时间内找不到有关在 GNU/Linux 中计算磁盘 iops 的方法的信息。我看到了iostat,但我不确定它是否正确。我还需要工具,它可以自系统启动以来一直计算 iops,但 iostat 不这样做。我的意思是整个系统和任何逻辑卷的磁盘 iops。
可能有一些工具可以限制逻辑卷的磁盘 iops 或类似的东西。
如果重要,我使用Debian。我也使用硬件 MegaRaid Raid Controller。可能是它影响smth。
根据http://en.wikipedia.org/wiki/IOPS
例如,SAS 磁盘每个提供约 200 IOPS。
对于由 4 个此类磁盘组成的 RAID 10。
我可以期望该阵列有多少 IOPS?
我认为应该是大约 400 还是 800?(800 特别是在读取中?而写入时更低?)
我在很多地方都看到吞吐量 = bs * iops 应该是真的。例如,以 128k 块大小写入可以支持 190 IOPS 的 SAS 磁盘应该提供 ~23 MBps - 的吞吐量
23.75(MBs) = 128(BS)*190(SAS-15 IOPS)/1024。
现在,当我在 VM 中针对一个巨大的 NetApp 文件管理器对其进行测试时,我得到了以下结果:
# dd if=/dev/zero of=/tmp/dd.out bs=4k count=2097152
8589934592 bytes (8.6 GB) copied, 61.5996 seconds, 139 MB/s
Run Code Online (Sandbox Code Playgroud)
要查看 VM 的 IO 速率,我使用了 iostat 和 esxtop,它们都显示大约 250 IOPS。
所以据我所知,吞吐量应该是 ~1000k:
1000(KBs) = 4(BS)*250(IOPS)。
8GB 的 dd 当然是 RAM 大小的两倍,所以这里没有页面缓存。
我错过了什么?
谢谢!
我们使用磁盘读取/秒和磁盘写入/秒在四台服务器(物理机,无虚拟化)上创建了性能计数器的 IOP 监控报告,每台服务器有 4 个 RAID10 中的 15k 146GB SAS 驱动器,设置为每 1 次检查和记录数据第二,在停止报告之前记录 24 小时。
这些是我们得到的结果:
Server1 最大磁盘读取/秒:4249.437 最大磁盘写入/秒:4178.946
Server2 最大磁盘读取/秒:2550.140 最大磁盘写入/秒:5177.821
Server3 最大磁盘读取/秒:1903.300 最大磁盘写入/秒:5299.036
Server4 最大磁盘读取/秒:8453.572 最大磁盘写入/秒:11584.653
每秒的平均磁盘读取和写入通常较低。例如,对于一台特定的服务器,平均每秒写入 33 次,但在实时监控时,它通常会飙升至数百甚至数千。
有人可以向我解释为什么这些数字明显高于假设每个驱动器可以执行 180 IOP 的理论计算吗?
附加详细信息(RAID 卡):HP Smart Array P410i,总缓存大小为 1GB,禁用写入缓存,阵列加速器缓存比率为 25% 读取和 75% 写入
我有运行几个不同 iSCSI SAN 单元的服务器。我试图平衡对数据存储的 IO 请求,因此我开始将服务器上的“限制 - IOPS”从无限制更改为 100-400,具体取决于服务器角色是什么。
在这样做时,它会导致该特定 VM 运行速度非常慢。对于示例“无限”IOPS,IE 将在 1 秒内打开。Iops 限制为 150,IE 将需要 10-12 或更多才能在该服务器上打开。我已经验证这也是两个完全不同的 iSCSI SAN 单元的问题。
任何想法我做错了什么。
我正在构建一个 45 个驱动器(backblaze)存储盒,用于 Windows 2012 R2 存储空间。规格为 2xE5-2620 v2 cpu、32 GB 内存、3xLSI 9201-16i 卡、9x1 TB SATA SSD 和 36x4TB HGST Ultrastar SATA 驱动器。假设 50/50 读/写,来自驱动器的原始数据时钟为 840,000 IOPS。LSI 卡每张卡可以处理 400k+ iops。假设我将驱动器放在一个 3 路镜像中,我将拥有 48 TB 的磁存储,使用 SSD 作为分层存储。这种系统的瓶颈是什么?是 RAM、cpu 或 LSI 卡还是驱动器本身?我们会看到 iops 接近理论最大值的 50% 吗?
iops ×10
raid10 ×2
10gbethernet ×1
fiber ×1
hba ×1
hyper-v ×1
linux ×1
perfmon ×1
performance ×1
raid ×1
ssd ×1
storage ×1
ubuntu-14.04 ×1
vmware-esxi ×1