rook-ceph osd 内存限制


rook-ceph内存限制

在osd均衡以及大量的数据读情况下,rook-ceph-osd在没有限制情况下会出现内存无限增长

模拟内存增长

数据均衡

  • 关闭osd,模拟osd异常,数据进行均衡
ceph osd set noup
ceph osd down <id>
# 模拟完成后关闭
ceph osd unset noup
  • 启动数据均衡
ceph  balancer on
ceph  balancer status
# 模拟完成后关闭
ceph  balancer off

压测数据读

  • 压测模拟
rados bench -p bigstorage 2000 write -t 60 --run-name  client1 no-cleanup
rados bench -p bigstorage 2000 rand --run-name client1
# 模拟完成后删除压测数据
rados -p bigstorage cleanup --prefix benchmark_data

内存数据分析

ceph tell osd.<id> heap start_profiler
ceph tell osd.<id> heap dump
# 关闭内存分析
ceph tell osd.<id> heap stop_profiler

image-20211215104016153

内存限制

官方推荐osd内存占用最小推荐为3GB,每增涨1TB则新增1GB内存

# 命令行实现
ceph config set osd.<id> osd_memory_target 5368709120
# for i in `seq 0 <NUM>`;do ceph config set osd.$i osd_memory_target 5368709120;done

查询

# 观察内存变化
kubectl  top pod -A -l  app=rook-ceph-osd --sort-by='memory'
# 查看设置是否成功
ceph config get osd.<id> osd_memory_target
# 查看配置
ceph config dump

部分截图

如下图,osd2以及osd6设置了内存限制,此时观察发现osd2以及osd6限制为5GB以内

image-20211215110201700

如何确保内存限制成功呢

使用实验对照组进行测试,将osd.2或者osd.6的限制进行删除,再执行《模拟内存增长》,⚠️多次测试

ceph config rm osd.<id> osd_memory_target

image-20211215111332077


文章作者: James Liu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 James Liu !
 上一篇
居于kubeadm部署的etcd备份恢复 居于kubeadm部署的etcd备份恢复
k8s维护过程中,我们难免遇到etcd故障或者需要备份恢复的时候,我们如何解决此类问题呢,下面介绍居于kubeadmin部署的etcd备份恢复
2022-01-11
下一篇 
k8s 通过helm部署gitlab-runner k8s 通过helm部署gitlab-runner
通过gitlab-runner实现自动化部署,实现当程序员推送代码后,gitlab-runner实现自动拉取代码并编译打包上传镜像以及自动部署
2022-01-11
  目录