我最近得到了一个Intel 320 系列 SSD,我很难实现随机 4K 读取的 38K IOPS。
使用fio
和我自己的黑客程序,我看到大约 6K IOPS。这几乎就像 IO 深度大小无关紧要,内核试图一次获取一个块。
例子:
$ cat job
[randread]
filename=/dev/sdb2
rw=randread
size=128m
blocksize=4k
ioengine=libaio
iodepth=64
direct=1
$ sudo fio job
randread: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
Starting 1 process
Jobs: 1 (f=1): [r] [100.0% done] [25423K/0K /s] [6207/0 iops] [eta 00m:00s]
randread: (groupid=0, jobs=1): err= 0: pid=4678
read : io=131072KB, bw=24852KB/s, iops=6213, runt= 5274msec
slat (usec): min=1, max=94, avg= 5.00, stdev= 2.88
clat (usec): min=312, max=13070, avg=10290.25, …
Run Code Online (Sandbox Code Playgroud)