0

CEPHFS集群部署在vmware虚拟机中,虚拟机内存配置为4G 用FIO测试

顺序如下:fio -name=task1 -filename=/mnt/testcephfs/fio-test-1 -rw=randwrite -ioengine=sync -size=1G -bs=4M -iodepth=1 -direct=0 -numjobs =1 请看图片 1 在此处输入图片描述

然后我把虚拟机内存调到8G 顺序如下:fio -name=task1 -filename=/mnt/testcephfs/fio-test-1 -rw=randwrite -ioengine=sync -size=1G -bs=4M - iodepth=1 -direct=0 -numjobs=1 请看图2 在此处输入图像描述

问题是:为什么我增加VIRTUAL机器内存,执行同样的fiO命令和bW增加?

4

1 回答 1

0

(这看起来不像是编程问题。也许在https://unix.stackexchange.com/https://serverfault.com/上问会更好?我也想知道你的一些破折号是否被吃掉了- 你能在https://stackoverflow.com/editing-help上查看有关格式化帖子的页面吗?)

您的 fio 作业意味着允许在页面缓存中暂存I/O,并且即使尚未将其发送到后端,也将控制权返回给 fio 以进行下一个 I/O。这种解耦通常有助于提高性能(例如,因为改进了批处理),但这意味着在基准测试期间必须小心(因为不清楚您已经进行了基准测试)。

如果页面缓存“已满”,则在有空间接受下一个 I/O 之前,无法将控制权返回给 fio。何时开始刷新分段 I/O 的阈值通常与充满度有关(但这不是唯一的标准)。所以:

  • 如果您发送 I/O 的速度足够快,页面缓存可能会被填满,并且 fio 可能会被迫等待它空闲时
  • 如果允许页面缓存更大(例如,因为您将机器的内存量增加了一倍),那么可能可以缓冲更多的 I/O,并且可以允许稍后开始刷新

TLDR;您会看到来自缓存的干扰,并且因为您执行的 I/O 太少,它可能会严重扭曲您的数字。您是否考虑过设置end_fsync=1或执行比内存更多的 I/O?

于 2020-08-09T07:34:34.577 回答