11.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。