我对 AWS 和磁盘性能比较陌生。我想弄清楚我的应用程序需要多少预配置的 IOPS 才能正常运行。
目前,我的 PHP 和 MySQL 应用程序托管在附加了简单 EBS 卷的 EC2 实例上。EBS 卷的监控提供读取吞吐量和写入吞吐量以及其他一些矩阵。如何从读取吞吐量(~ 400 Ops/s)和写入吞吐量(~ 4000 Ops/s)数据中找到当前 EBS 卷的 IOPS?
如果我使用操作单位/秒,IOPS 达到大约 4.5K,我认为这不是正确的,因为简单的 EBS 卷意味着只能在 100 IOPS 和偶尔几百个 IOPS 上正常工作。
那么,我们应该读取什么值来获得每个进程每秒的输入输出操作?
我试过 /proc/[pid]/io 返回这些值:
根@节点:〜#猫的/ proc / 31597 / IO
rchar:213260190
WCHAR:462308212
SYSCR:23275044
syscw:47797624个
read_bytes:894867968个
write_bytes:27645691392
cancelled_write_bytes:0
从定义:
syscr, syscw - I/O 操作次数的计数器(分别为:读和写)。我们可以使用 then 来计算在一个系统调用中传递的平均数据量。
所以,我认为syscw 的最后一个值减去 syscw 的前一个值应该给我进程 31597 执行的写操作计数
但是,当进程执行大约 5MB/秒的写入(小文件)时,我得到的写入值为 6500 IOPS,这对我来说并不正确。
有任何想法吗?
请注意。长读。
在我计划在我的 Ceph 设置中使用的 Hitachi Ultrastar 7K6000 驱动器的初始性能测试期间,我注意到一个奇怪的事情:禁用磁盘写入缓存时写入性能更好。
我使用fio:
fio --filename=/dev/sda --direct=1 --sync=1 --rw=randwrite --bs=4k --numjobs=1 --iodepth=1 --runtime=60 --time_based --group_reporting --name=4krandw
Run Code Online (Sandbox Code Playgroud)
当写缓存被禁用时:
hdparm -W 0 /dev/sda
4krandw: (groupid=0, jobs=1): err= 0: pid=6368: Thu Jun 22 07:36:44 2017
write: io=63548KB, bw=1059.9KB/s, iops=264, runt= 60003msec
clat (usec): min=473, max=101906, avg=3768.57, stdev=11923.0
Run Code Online (Sandbox Code Playgroud)
启用写缓存时:
hdparm -W 1 /dev/sda
4krandw: (groupid=0, jobs=1): err= 0: pid=6396: Thu Jun 22 07:39:14 2017
write: io=23264KB, bw=397005B/s, iops=96, runt= 60005msec
clat (msec): min=1, max=48, avg=10.30, stdev= 4.12 …Run Code Online (Sandbox Code Playgroud) 我正在评估将老化的基础设施迁移到 Amazon 的 AWS 并尝试估算成本。我知道我们当前的磁盘空间要求、带宽以及会影响成本的大多数其他变量。让我难倒的是 EBS 卷上的 IOPS。我的想法是从我们现有的服务器(使用 PolyMon)捕获性能监视器数据,但我不确定哪些 PhysicalDisk 指标与 Amazon 的 IOPS 计数相匹配。我的两个猜测是磁盘读/写或平均磁盘读/写。
有什么想法吗?谢谢!
我想构建一个低成本的 Ra*san,它可以为我们的社交网站托管图像(数百万张),每张照片有 5 种大小,每张图像有 3 KB、7 KB、15 KB、25 KB 和 80 KB。
我的想法是在 Raid 6 中构建一个带有 24x 消费者 240 GB SSD 的服务器,这将为我提供一些 5 TB 磁盘空间用于照片存储。要拥有 HA,我可以添加第二个并使用 drdb。
我希望超过 150'000 IOPS(4K 随机读取)。
由于我们大多只有读取权限并且很少删除照片,因此我认为与消费者 MLC SSD 搭配使用。我阅读了许多耐力评论,只要我们不重写单元格,就不会出现问题。
你觉得我的想法怎么样?- 我不确定是 Raid 6 还是 Raid 10(更多 IOPS,成本 SSD)。- 文件系统是否可以使用 ext4 - 你会使用 1 个还是 2 个 Raid 控制器,带扩展器背板
如果有人意识到类似的事情,我很乐意获得真实世界的数字。
更新
我已经购买了 12 个(加上一些备用的)OCZ Talos 480GB SAS SSD 驱动器,它们将被放置在一个 12 托架 DAS 中并连接到一个 PERC H800(1GB NV 缓存,由具有快速路径的 LSI 制造)控制器,我计划设置 Raid 50与 ext4。如果有人想知道一些基准测试,请告诉我您希望看到什么。
我在市场上为我们的服务器进行存储升级。我正在查看各种 PCIe SSD 设备的基准测试,在比较中我看到 IOPS 在不同队列深度下发生变化。这怎么可能,为什么会这样?我理解事物的方式是:我有一个最大(理论)为 100k IOPS 的设备。如果我的工作负载始终产生 100,001 IOPS,我的队列深度为 1,我说得对吗?但是,从我在基准测试中看到的情况来看,一些设备在较低的队列深度下运行速度较慢,然后在 4-64 的深度处加速,然后在更大的深度处再次减速。队列深度不是操作系统(或者可能是存储控制器)的属性,那么为什么会影响 IOPS?
我很难找出导致服务器上 iowait 高的原因。
这是日志 iostat -xm 5 5
Linux 2.6.32-358.6.1.el6.x86_64 (prod-1.localdomain) 09/28/2013 _x86_64_ (16 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
6.98 0.05 3.72 3.54 0.00 85.71
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
sdb 0.08 120.88 30.27 1.72 0.96 0.48 92.20 0.34 10.67 3.79 12.13
sda 7.63 37.19 8.96 4.89 0.35 0.16 76.40 0.16 11.63 2.19 3.04
avg-cpu: %user %nice %system %iowait %steal %idle
5.41 0.00 6.20 37.65 0.00 50.74
Device: rrqm/s wrqm/s …Run Code Online (Sandbox Code Playgroud) 我有一个带有 8GB 磁性 EBS 卷的 t1.micro 实例,因为它是带有 LAMP 环境的根磁盘。我想我会把它升级到 8GB 通用 SSD 卷的 t2.micro。
但是我读到磁存储有 ~100 IOPS,而 SSD 有 3 * 大小,所以它只有 24 IOPS。我是否理解任何小于 33GB 的 SSD 卷的性能都会比旧的磁存储慢?
更新:
引自亚马逊:“通用 (SSD) 卷类型具有卷大小 X 3 的基准 IOPS,并且可以在 30 分钟内突增至 3000 IOPS。”
基线是什么意思?那30分钟是怎么算出来的?我的 8GB SSD 能否每小时/天/月在 30 分钟内突增至 3000 IOPS?
我的研究表明,现代文件系统(ext4、xfs)的标准块大小和最大(内核限制)块大小均为 4KB。但是,AWS 允许最大 256KB 的 IO 操作并说
对于 32 KB 或更小的 I/O 操作,您应该会看到已配置的 IOPS 量,前提是您驱动的 I/O 足够使驱动器保持忙碌。对于较小的 I/O 操作,您甚至可能会看到 IOPS 值高于您提供的值(在客户端测量时),这是因为客户端可能将多个较小的 I/O 操作合并为一个较小的数字大块。
Linux 在哪里公开和/或允许配置“设备块大小”?在说,postgres 中的全表扫描(8KB 块大小)时,您可以在哪里查看和/或配置操作系统问题的“IO 操作”的大小?
我工作的公司目前正在进行 AWS 迁移,对于 99% 的服务,他们的商品硬件可以很好地完成这项工作。
除了生产数据库之外,我们目前的 IOPS 为 60,000,只是为了跟上请求,今年将会有更多的行动。
我们曾考虑在 EC2 上使用企业级 SSD,但 IOPS 的硬限制是 20,000,这非常糟糕,考虑到我可以花 200 欧元左右的价格获得 80,000 IOPS 的 240GB SSD。http://www.techradar.com/reviews/pc-mac/pc-components/storage/disk-drives-hdd-ssd/intel-ssd-520-series-240gb-1060850/review
知道如何超过这个限制吗?ebs 卷的集群/RAID 是否可能?
谢谢,本
iops ×10
amazon-ebs ×5
performance ×5
linux ×4
hard-drive ×3
amazon-ec2 ×2
ssd ×2
storage ×2
cache ×1
ceph ×1
io ×1
perfmon ×1
postgresql ×1
raid ×1
windows ×1