微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – AWS EBS中IO操作(IOP)的大小是多少?

我的研究表明,现代文件系统(ext4,xfs)的标准和最大(内核限制)块大小都是4KB.但是,AWS allows IO operations as large as 256KB并说

For 32 KB or smaller I/O operations,you should see the amount of IOPS
that you have provisioned,provided that you are driving enough I/O to
keep the drives busy. For smaller I/O operations,you may even see an
IOPS value that is higher than what you have provisioned (when
measured on the client side),and this is because the client may be
coalescing multiple smaller I/O operations into a smaller number of
large chunks.

Linux在哪里公开和/或允许配置“设备块大小?”比如说,在postgres中进行全表扫描(8KB blocksize),在哪里可以看到和/或配置操作系统发出的“IO操作”的大小?

解决方法

一个I / O操作的大小取决于很多事情.计算应用程序的平均值并不一定是个坏主意.

亚马逊对它们的定义意味着它们的硬件支持256KB块.单个I / O操作是读取或写入一个块.即使软件和硬件块大小匹配,对操作跨越两个块的硬件进行“未对齐”访问也将导致两个I / O操作.这就是为什么使用与硬件块大小相同的文件系统块大小对I / O性能非常有用的原因,尽管这会降低存储效率,因为文件系统块是分配量.

文件系统中的块大小很大程度上取决于内存页面大小,因为读取会进入内存页面.通常,x86 Linux中的内存页面为4kB;虽然内核可以映射较大的页面,但是普通的4kB页面和4MB的大页面之间没有中间大小.所以,你无法在现代系统和硬件上真正地调整它.

但是,文件系统可以尝试通过防止碎片来跨越多个块顺序进行所有读取和写入. EXT4通过在磁盘上稀疏地分配文件而不是在请求块时分配下一个空闲块来完成此操作;其他文件系统也有此策略.当这些块在物理上连续且不跨越物理块边界时,内核(文件系统和磁盘驱动程序)可以将跨越多个块的单个读取操作聚合为单个读取操作.

磁盘驱动程序自动发现磁盘块大小;你无法调整它.你可以用blockdev –getpbsz / dev / xvda或者你有什么来读它.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐