Linux 上的英特尔 NVME 性能

Linux 上的英特尔 NVME 性能

我有一块英特尔 760P NVME 硬盘,连接到 Supermicro X11SRM-F,配有 Xeon W-2155 和 64GB ddr4-2400 RAM。眼镜该驱动器声称具有 205K-265K IOPS(无论 8GB 跨度意味着什么),随机读取速度约为 3G/s,随机写入速度约为 1.3G/s。

我曾尝试在 LVM 层下以及裸分区下使用该驱动器,但根本无法获得其所宣传的性能。

在驱动器上运行典型进程可产生(通过iostat)约 75MB/s 的写入速度,约 5K TPS(IOPS)。iostat 还显示磁盘利用率约为 20%(图表附在下面),因此似乎某些地方仍然存在瓶颈。此时,通过 SATA 电缆传输的常规英特尔 SSD 将胜过驱动器。有什么想法可以查看吗?

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

更新:正如@John Mahowald提到的-似乎是应用程序(Ruby)的瓶颈!?下面的图表来自这个fio命令脚本(不得不增加图表的比例..〜700MB / s的写入速度和超过50K TPS:

# full write pass
fio --name=writefile --size=10G --filesize=80G \
--filename=disk_test.bin --bs=1M --nrfiles=1 \
--direct=1 --sync=0 --randrepeat=0 --rw=write --refill_buffers --end_fsync=1 \
--iodepth=200 --ioengine=libaio

# rand read
fio --time_based --name=benchmark --size=80G --runtime=30 \
--filename=disk_test.bin --ioengine=libaio --randrepeat=0 \
--iodepth=128 --direct=1 --invalidate=1 --verify=0 --verify_fatal=0 \
--numjobs=4 --rw=randread --blocksize=4k --group_reporting

# rand write
fio --time_based --name=benchmark --size=80G --runtime=30 \
--filename=disk_test.bin --ioengine=libaio --randrepeat=0 \
--iodepth=128 --direct=1 --invalidate=1 --verify=0 --verify_fatal=0 \
--numjobs=4 --rw=randwrite --blocksize=4k --group_reporting

TPS/利用率 写入负载

答案1

与原始基准相比,fio 的 IOPS 高得多,这表明除了存储系统之外还存在其他限制因素。

对于容量规划,请估算您实际需要的存储性能。从实际负载中获取 TPS 数值,并估算 IOPS 需求。

200k IOPS 仍然远远超过大多数单个应用程序的请求。(这是一个好问题。)推动 100k IOPS 并非易事,即使对于旨在运行存储的合成负载生成器也是如此。这往往需要多个并行进程、调整队列深度,甚至异步 I/O。

相关内容