ceph luminous osd内存使用情况

ceph luminous osd内存使用情况

我正在尝试在单机上构建小型 CEPH 集群 - 在实验室中进行测试,然后再将更大的项目切换到它。遇到内存问题并且找不到控制它的方法。

我们有旧的 Core2Duo CPU、4GB RAM。使用 3 个本地 8TB 磁盘创建 3 个 OSD。

ceph-deploy 将使一切运行良好,除了为 3 个 OSD 中的每一个创建 1 个 tmpfs 分区,该分区大小为 2gb,将 ~50gb 数据复制到 CephFS Bluestore 后 - 盒子开始积极使用 RAM,最终使用所有交换。我未能找到正确的设置来控制允许 OSD 进程使用多少 RAM。

使用更多 IO 而不是 RAM 是可以的。寻求帮助(如果可能的话)。 :) 我正在 Centos 7 上构建一切。

答案1

Ceph 13.2.2发行说明说以下...

不再需要 bluestore_cache_* 选项。它们被 osd_memory_target 取代,默认为 4GB。 BlueStore 将扩展和收缩其缓存,以尝试保持在此限制内。升级用户应注意,此默认值比之前的 bluestore_cache_size 1GB 更高,因此使用 BlueStore 的 OSD 默认情况下将使用更多内存。有关更多详细信息,请参阅 BlueStore 文档。

这让我大吃一惊。我的 osd 因驻留内存的使用而变得非常疯狂。内核正在杀死 osd 进程。

切换到新密钥并弹跳 osd 进程给了我稳定的性能。

答案2

这是一个常见问题,ceph 邮件列表对于这些问题是一个非常有用的存档,请参阅。您可以减少 bluestore_cache_size 值,SSD 的默认值为 3GB,HDD OSD 的默认值为 1GB:

# If bluestore_cache_size is zero, bluestore_cache_size_hdd or bluestore_cache_size_ssd will be used instead.

host1:~ # ceph daemon osd.3 config show | grep bluestore_cache_size
    "bluestore_cache_size": "0",
    "bluestore_cache_size_hdd": "1073741824",
    "bluestore_cache_size_ssd": "3221225472",

但根据我们在生产集群中的监控,HDD-OSD 的剩余内存约为 3 GB,因此您必须根据需要调整这些值。配置参考是这里

我建议首先从一个 OSD 开始,然后观察节点的性能;如果内存(或其他测量值)正常,则添加另一个 OSD。如果您已经达到一两个 OSD 的限制,您将必须根据您的需要调整配置。这些值可以在线更改:

host1:~ # ceph daemon osd.<ID> config set bluestore_cache_size[_hdd|_ssd] <VALUE>

配置的永久更改必须存储在 /etc/ceph/ceph.conf 中

相关内容