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 高;