我正在尝试在单个盒子上构建小型 CEPH 集群 - 在实验室中进行测试,然后再将更大的 probject 切换到它。遇到内存问题,无法找到控制它的方法。
我们有旧的 Core2Duo CPU,4GB 内存。使用 3 个本地 8tb 磁盘创建 3 个 OSD。
ceph-deploy 会成功,一切运行良好,除了为 3 个 OSD 中的每一个创建 1 个 tmpfs 分区,它是 2gb 并且在将大约 50gb 的数据复制到 CephFS Bluestore 之后 - 盒子开始积极使用 RAM 并最终使用所有交换。我找不到正确的设置来控制允许使用多少 RAM OSD 进程。
可以使用更多的 IO,而不是 RAM。寻求帮助(如果可能的话)。:) 我在 Centos 7 上构建一切。
Ceph 13.2.2发行说明说以下...
这让我大吃一惊。我的 osds 对常驻内存的使用非常疯狂。内核正在 oom-killing osd 进程。
切换到新密钥并反弹 osd 进程给了我稳定的性能。
这是一个常见问题,ceph 邮件列表对这些问题很有帮助,请参阅此。您可以减小 bluestore_cache_size 值,SSD 的默认值为 3GB,HDD OSD 的默认值为 1GB:
但根据我们在生产集群中的监控,HDD-OSD 的剩余内存约为 3 GB,因此您必须根据需要调整这些值。配置参考在这里。
我建议先从一个 OSD 开始,然后观察节点的性能;如果内存(或其他测量)正常,则添加另一个 OSD。如果您已经使用一两个 OSD 达到了限制,则必须根据需要调整配置。这些值可以在线更改:
配置的永久更改必须存储在 /etc/ceph/ceph.conf