10.3. 影响 mClock 操作队列的因素
有三个因素可降低 Red Hat Ceph Storage 中 mClock 操作队列的影响:
- 客户端操作的分片数量。
- 操作序列中的操作数量。
- 为 Ceph OSD 使用分布式系统
客户端操作的分片数量
对 Ceph OSD 的请求通过其放置组标识符进行分片。每个分片都有自己的 mClock 队列,这些队列彼此不会进行交互,也不会共享信息。
可以使用这些配置选项控制分片数量:
-
osd_op_num_shards
-
osd_op_num_shards_hdd
-
osd_op_num_shards_ssd
较少的分片会增加 mClock 队列的影响,但可能还会有其他影响。
使用由配置选项 osd_op_num_shards
、osd_op_num_shards_hdd
和 osd_op_num_shards_ssd
定义的默认分片数量。
操作序列中的操作数量
请求从操作队列传输到处理它们的操作序列。mClock 调度程序位于操作队列中。它决定将哪些操作传输到操作序列器。
操作序列中允许的操作数量是一个复杂的问题。目的是在操作序列中保持足够的操作,以便它始终在某些地方正常工作,同时它会等待磁盘和网络访问完成其他操作。
但是,mClock 不再控制传送到操作序列器的操作。因此,为了最大程度提高 mClock 的影响,其目标也是尽可能在操作序列中保留一些操作。
影响操作顺序中操作数量的配置选项有:
-
bluestore_throttle_bytes
-
bluestore_throttle_deferred_bytes
-
bluestore_throttle_cost_per_io
-
bluestore_throttle_cost_per_io_hdd
-
bluestore_throttle_cost_per_io_ssd
使用由 bluestore_throttle_bytes
和 bluestore_throttle_deferred_bytes
选项定义的默认值。但是,这些选项可以在基准测试阶段确定。
为 Ceph OSD 使用分布式系统
影响 mClock 算法影响的第三个因素是使用分布式系统,其中向多个 Ceph OSD 发出请求,每个 Ceph OSD 可以有多个分片。但是,Red Hat Ceph Storage 目前使用 mClock 算法,它不是 mClock 的分布式版本。
dmClock 是 mClock 的分布式版本。
其它资源
-
有关
osd_op_num_shards_hdd
和osd_op_num_shards_ssd
参数的详情,请参阅 Object Storage Daemon (OSD)配置选项。 - 有关 BlueStore throttle 参数的详情,请参阅 BlueStore 配置选项。
- 如需更多信息,请参阅 手动基准测试 OSD。