关于ceph内核客户端与物理内存的关系?

问题描述 投票:0回答:1

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 enter image description here

然后我将虚拟机内存调整为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 enter image description here

问题是:为什么我增加虚拟机内存并执行相同的 fiO 命令和 bW 增加?

memory kernel cephfs
1个回答
0
投票

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

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

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

TLDR;您会看到缓存的干扰,并且由于您执行的 I/O 量太少,因此可能会严重扭曲您的数字。您是否考虑过设置

end_fsync=1
或执行比您的记忆更多的 I/O?

© www.soinside.com 2019 - 2024. All rights reserved.