Ceph 的 osd 进程默认情况下是没有做内存限制的,会尽可能使用系统的内存来提高性能,所以很容易出现 Out of memory 从而被系统杀死进程的情况。
生产环境为了保证OSD的稳定,一般需要限制其内存。具体限制多少视主机内存而定,内存越高,性能越好。
首先查看我们的osd的情况
myceph@t-ceph-deploy:~/ceph-cluster$ ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 21.00000 root default
-3 3.00000 host t-ceph-node01
0 hdd 1.00000 osd.0 up 1.00000 1.00000
1 hdd 1.00000 osd.1 up 1.00000 1.00000
2 hdd 1.00000 osd.2 up 1.00000 1.00000
假设我们要限制t-ceph-node01节点上osd.2 这个osd,则可以通过下面命令实现:
ceph config set osd.2 osd_memory_target_autotune false
ceph config set osd.2 osd_memory_target 4G
配置完需要重启osd进程(注意要到osd节点上)
systemctl restart ceph-osd@2.service
...