「Storage」- 概念术语

Queue Depth

What is queue depth and how does it work?
Understanding Storage Performance
《大话存储, 终极版, 存储系统底层架构原理极限剖析》
Where is the ‘SATA controller’ on a motherboard? – Quora
Call sequence of a write operation on the hard drive.

用户数据写入存储设备的大致图示:

控制器向存储设备发起的指令,不是一条一条顺序发送的,而是一批一批地发送,存储目标设备批量执行 IO,然后将数据和结果返回控制器。也就是说,只要存储设备肚量和消化能力足够,在 IO 比较少的时候,处理一条指令和同时处理多条指令将会耗费几乎相同的时间。

控制器所发出的批量指令的最大条数,由控制器上的 Queue Depth(队列深度)决定。在存储中,队列深度是存储资源在任何时候可以处理的待处理输入/输出 (I/O) 请求的数量。

补充说明:这里的“控制器”是指主板芯片中的控制器,例如 SATA Controller 等等,而非存储设备的控制器。

SAN

在 SAN 中,Queue Depth 需要在 HBA 中进行配置,以避免超过 LUN 能够支持的并发 IO 请求数;

iodepth

iodepth 是操作系统的概念,而非存储设备相关的概念;

Block Size vs. Disk Sector Size

Block 是文件系统的概念。在 Linux 中,dd/blocksize fio/blocksize 通常是指单次 read()/write() 系统调用的块大小。

小文件的 IOPS 高
大文件的 Throughput 高;