引言

ceph自从到了L版本以后,L版本的启用,对性能本身有了极大的提高,一直对这个比较不放心的就是内存的占用,刚开始的时候记得大量dd就可以把内存搞崩掉,这个应该是内部的设计逻辑需要更多的内存的占用

最近在做ARM版本的服务器的测试,机器为36盘位的机器,内存需要自然多,但是36盘位的机器,按之前想法是4G预留,那得需要144G内存了,这个还没有算迁移的时候的内存消耗,而很多时候,我们并不需要速度,只需要稳定就好

测试环境说明

测试环境比较简单,一台36盘位的arm机器,一台X86机器,通过万兆相连,设置集群为副本1,然后再X86上面通

限制前后对比

我们先按默认的来一组测试

用读取命令进行测试

rados  -p rbd  -t 64  bench 300  seq  --run-name  4Mt16
···
2019-09-03 15:19:20.478841 min lat: 0.188154 max lat: 0.658198 avg lat: 0.227437
sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)
20 63 5620 5557 1111.24 1124 0.223682 0.227437
21 63 5901 5838 1111.84 1124 0.232894 0.2274
22 63 6179 6116 1111.84 1112 0.210126 0.227447
23 63 6459 6396 1112.19 1120 0.209931 0.227353
24 63 6742 6679 1113.01 1132 0.210041 0.227428
25 63 7023 6960 1113.44 1124 0.447199 0.227417
26 63 7302 7239 1113.54 1116 0.213757 0.227367
27 63 7585 7522 1114.19 1132 0.222248 0.227416
28 63 7870 7807 1115.08 1140 0.198665 0.227351
29 63 8148 8085 1114.97 1112 0.222645 0.227402
30 63 8430 8367 1115.4 1128 0.205243 0.227394
31 63 8707 8644 1115.16 1108 0.22508 0.227397
32 63 8987 8924 1115.31 1120 0.198234 0.227326
33 63 9267 9204 1115.41 1120 0.232074 0.227447
34 63 9551 9488 1115.99 1136 0.230373 0.227413
35 63 9829 9766 1115.88 1112 0.214755 0.227405
36 63 10107 10044 1115.77 1112 0.233391 0.227403
37 63 10390 10327 1116.18 1132 0.223244 0.227412
38 63 10673 10610 1116.6 1132 0.221128 0.22742
···

通过top看下内存占用

Tasks: 526 total,   1 running, 237 sleeping,   0 stopped,   0 zombie
%Cpu(s): 1.6 us, 1.5 sy, 0.0 ni, 95.3 id, 1.5 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 13316204+total, 31199616 free, 10079264+used, 1169792 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 21086208 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
43967 ceph 20 0 4176384 3.1g 26624 S 1.3 2.4 0:08.79 ceph-osd
43890 ceph 20 0 4116992 3.0g 26688 S 1.0 2.4 0:08.69 ceph-osd
43753 ceph 20 0 4091712 3.0g 26752 S 2.3 2.4 0:08.88 ceph-osd
43873 ceph 20 0 4160000 3.0g 26688 S 2.0 2.4 0:08.77 ceph-osd
43998 ceph 20 0 4275776 3.0g 26688 S 2.3 2.4 0:08.91 ceph-osd
43716 ceph 20 0 4128960 3.0g 26688 S 2.3 2.3 0:08.95 ceph-osd
43899 ceph 20 0 3911232 3.0g 26688 S 1.7 2.3 0:08.44 ceph-osd
44022 ceph 20 0 4133120 3.0g 26752 S 2.0 2.3 0:09.29 ceph-osd
43617 ceph 20 0 4100608 2.9g 26688 S 2.6 2.3 0:09.13 ceph-osd
43868 ceph 20 0 4110016 2.9g 26688 S 2.6 2.3 0:08.70 ceph-osd
43792 ceph 20 0 4095552 2.9g 26752 S 2.3 2.3 0:09.02 ceph-osd
43985 ceph 20 0 4090368 2.9g 26624 S 2.3 2.3 0:08.84 ceph-osd
43707 ceph 20 0 4177472 2.9g 26624 S 2.3 2.3 0:08.79 ceph-osd
44028 ceph 20 0 4084288 2.9g 26624 S 2.3 2.3 0:08.93 ceph-osd
43995 ceph 20 0 4092480 2.8g 26688 S 2.3 2.2 0:08.95 ceph-osd
43852 ceph 20 0 4054528 2.8g 26752 S 3.6 2.2 0:08.75 ceph-osd
44038 ceph 20 0 3966528 2.8g 26688 S 2.6 2.2 0:08.51 ceph-osd
43755 ceph 20 0 4092096 2.8g 26752 S 3.0 2.2 0:09.10 ceph-osd
43718 ceph 20 0 4045376 2.8g 26688 S 1.3 2.2 0:08.84 ceph-osd
43901 ceph 20 0 3931648 2.7g 26688 S 1.7 2.2 0:08.67 ceph-osd
43880 ceph 20 0 4028992 2.7g 26688 S 2.6 2.1 0:08.82 ceph-osd
43897 ceph 20 0 3978752 2.7g 26624 S 2.3 2.1 0:08.59 ceph-osd
43858 ceph 20 0 4019776 2.7g 26560 S 1.3 2.1 0:08.89 ceph-osd

可以看到内存占用还是很可观的,我128G内存,基本要吃空了,内存需要的太大,还出现了无法分配内存的情况,我们限制下我们的内存

限制osd内存的参数

默认值为

osd_memory_target = 4294967296

我们限制到1G

osd_memory_target = 1073741824

设置好了后重启下所有的osd

再来一轮测试

同样的命令

2019-09-03 15:28:41.369259 min lat: 0.189981 max lat: 0.88615 avg lat: 0.227472
sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)
40 63 11232 11169 1116.67 1116 0.221146 0.227472
41 63 11513 11450 1116.85 1124 0.22655 0.227467
42 63 11794 11731 1117.01 1124 0.213789 0.227451
43 63 12073 12010 1116.98 1116 0.21521 0.227447
44 63 12353 12290 1117.05 1120 0.232574 0.227455
45 63 12632 12569 1117.02 1116 0.217199 0.227449
46 63 12917 12854 1117.52 1140 0.211747 0.227425
47 63 13194 13131 1117.31 1108 0.229418 0.227473
48 63 13476 13413 1117.52 1128 0.229639 0.227456
49 63 13756 13693 1117.57 1120 0.228479 0.22745
50 63 14041 13978 1118 1140 0.21689 0.227463
51 63 14316 14253 1117.64 1100 0.23947 0.227468
52 63 14599 14536 1117.92 1132 0.215251 0.227452
53 63 14880 14817 1118.03 1124 0.227617 0.227461
54 63 15160 15097 1118.05 1120 0.224964 0.227449
55 63 15442 15379 1118.22 1128 0.219148 0.227451
56 63 15721 15658 1118.18 1116 0.223736 0.227459
57 63 16001 15938 1118.21 1120 0.23183 0.227468
58 63 16282 16219 1118.3 1124 0.217697 0.227465
59 63 16566 16503 1118.6 1136 0.217804 0.227465

查看修改后的内存占用

top - 15:29:10 up  4:54,  6 users,  load average: 1.88, 2.74, 2.25
Tasks: 506 total, 1 running, 239 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.2 us, 0.9 sy, 0.0 ni, 97.4 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 13316204+total, 12275264+free, 9211264 used, 1198144 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 11264793+avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
48575 ceph 20 0 908544 262144 26688 S 2.0 0.2 0:09.71 ceph-osd
48547 ceph 20 0 904448 252800 26752 S 1.0 0.2 0:09.36 ceph-osd
48480 ceph 20 0 902336 247552 26624 S 1.3 0.2 0:09.11 ceph-osd
48485 ceph 20 0 906048 242048 26688 S 1.7 0.2 0:09.38 ceph-osd
48423 ceph 20 0 901312 241984 26688 S 1.3 0.2 0:09.62 ceph-osd
48534 ceph 20 0 896576 234752 26688 S 1.3 0.2 0:09.22 ceph-osd
48395 ceph 20 0 902656 231360 26688 S 2.0 0.2 0:08.96 ceph-osd
48474 ceph 20 0 899584 225920 26624 S 1.3 0.2 0:09.07 ceph-osd
48369 ceph 20 0 891456 223232 26688 S 1.3 0.2 0:09.31 ceph-osd
48375 ceph 20 0 899648 222016 26624 S 1.7 0.2 0:08.72 ceph-osd
48365 ceph 20 0 885312 220928 26688 S 1.3 0.2 0:09.06 ceph-osd
48421 ceph 20 0 899200 218944 26688 S 1.7 0.2 0:09.31 ceph-osd
48478 ceph 20 0 889344 218496 26880 S 1.3 0.2 0:09.46 ceph-osd
48347 ceph 20 0 879104 218112 26688 S 1.7 0.2 0:08.52 ceph-osd
48515 ceph 20 0 891456 215680 26688 S 2.0 0.2 0:09.21 ceph-osd
48465 ceph 20 0 884224 214336 26688 S 1.7 0.2 0:08.82 ceph-osd
48560 ceph 20 0 892480 214144 26624 S 1.3 0.2 0:08.87 ceph-osd
48552 ceph 20 0 900992 213952 26752 S 1.7 0.2 0:09.32 ceph-osd
48599 ceph 20 0 890432 213760 26624 S 2.0 0.2 0:09.19 ceph-osd
48613 ceph 20 0 882176 213056 26752 S 1.0 0.2 0:09.12 ceph-osd
48430 ceph 20 0 893440 212672 26688 S 1.7 0.2 0:09.18 ceph-osd
48503 ceph 20 0 885312 211456 26688 S 2.3 0.2 0:09.52 ceph-osd
48444 ceph 20 0 889408 211200 26752 S 2.0 0.2 0:09.60 ceph-osd
48635 ceph 20 0 898624 210944 26688 S 2.0 0.2 0:09.26 ceph-osd
48526 ceph 20 0 898624 210752 26816 S 2.6 0.2 0:09.20 ceph-osd
48491 ceph 20 0 898368 210304 26816 S 2.3 0.2 0:09.57 ceph-osd

可以看到内存控的好好的,并且在这个场景下面,我们的性能并没有太多的损失,基本一致的,因为我的环境是单万兆的,输出的网络带宽是小于底层磁盘可以提供的带宽的,这个情况下磁盘的占用也就没那么满

这个也是我在做配置的时候推荐的一点,各项资源不要打的那么满,对于带宽场景来说,多留几个磁盘的输出冗余,那么在出现一些异常的时候,底层也不会影响到那么大

总结

本篇通过一个参数的介绍,讲述了osd的内存的占用的控制,一般情况来说,默认的参数已经足够好了,当然你在很确定你修改的参数会影响什么的情况下,可以根据需要做一些调整,如果在你的IO模型下面,你调整了都看不到效果,那还是不动为好

我们手上有高性能的arm,就是上面的这款测试用到的,有32个processor,内存最大可以支持到

Maximum Capacity: 512 GB
Number Of Devices: 16

盘位的机箱我们有能力自己设计,也就是可以根据需要进行定制,有需要的可以找我

变更记录

Why Who When
创建 武汉-运维-磨渣 2018-09-03

ceph luminous版本限制osd的内存使用的更多相关文章

  1. Ceph Luminous版本创建OSD无法激活问题

    一.问题描述 部署ceph的Luminous之ceph-12.2.10版本,在其中一个集群节点部署OSD时,发现命令执行完毕后,集群中并没有将格式化的盘加入到OSD中,也没有任何报错,问题如下: [r ...

  2. Ceph学习之路(三)Ceph luminous版本部署

    1.配置ceph.repo并安装批量管理工具ceph-deploy [root@ceph-node1 ~]# vim /etc/yum.repos.d/ceph.repo [ceph] name=Ce ...

  3. ceph luminous版本的安装部署

    1. 前期准备   本次安装环境为:   ceph1(集群命令分发管控,提供磁盘服务集群) CentOs7.5 10.160.20.28   ceph2(提供磁盘服务集群) CentOs7.5 10. ...

  4. ceph luminous 新功能之内置dashboard

    前言 ceph luminous版本新增加了很多有意思的功能,这个也是一个长期支持版本,所以这些新功能的特性还是很值得期待的,从底层的存储改造,消息方式的改变,以及一些之前未实现的功能的完成,都让ce ...

  5. ceph luminous 新功能之内置dashboard 之 mgr功能模块配置

    前言 ceph luminous版本新增加了很多有意思的功能,这个也是一个长期支持版本,所以这些新功能的特性还是很值得期待的,从底层的存储改造,消息方式的改变,以及一些之前未实现的功能的完成,都让ce ...

  6. ceph mimic版本 部署安装

    ceph 寻址过程 1. file --- object映射, 把file分割成N个相同的对象 2. object - PG 映射, 利用静态hash得到objectID的伪随机值,在 "位 ...

  7. Ceph luminous 安装配置

    Ceph luminous 安装配置 #环境centos7 , Ceph V12 openstack pike 与 ceph 集成 http://www.cnblogs.com/elvi/p/7897 ...

  8. 018 Ceph的mon和osd的删除和添加

    一.OSD管理 1.1 移出故障osd 查看当前节点的osd的id [root@ceph2 ceph]# df -hT Filesystem Type Size Used Avail Use% Mou ...

  9. Ceph Luminous手动解决pg分布不均衡问题

    原文链接: https://www.jianshu.com/p/afb6277dbfd6 1.设置集群仅支持 Luminous(或者L之后的)客户端 具体命令: ceph osd set-requir ...

随机推荐

  1. 机器学习 KNN算法原理

    K近邻(K-nearst neighbors,KNN)是一种基本的机器学习算法,所谓k近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表.比如:判断一个人的人品,只需要观察 ...

  2. 基于python实现顺序存储的栈

    """ 栈 sstack.py 栈模型的顺序存储 重点代码 思路总结: 1.列表是顺序存储,但功能多,不符合栈的模型特征 2.利用列表,将其封装,提供接口方法 " ...

  3. logback.xml demo

    如何关闭 org.apache.zookeeper.clientcnxn 的(控制台大量输出)debug 日志 1.在项目resources路径下新建 logback.xml 2.然后把下面的代码co ...

  4. JVM系列【6】GC与调优5-日志分析

    JVM系列笔记目录 虚拟机的基础概念 class文件结构 class文件加载过程 jvm内存模型 JVM常用指令 GC与调优 主要内容 分析PS.CMS.G1的回收日志,目标使大概能读懂GC日志. 测 ...

  5. 解决selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid 'expiry'

    解决selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid 'expiry'   ...

  6. seajs模块化jQuery与jQuery插件【转】

    把jQuery修改成SeaJs的模块代码非常简单,就是用下面这段语句将jQuery源代码包裹起来: define('jquery',[],function(require, exports, modu ...

  7. vscode配置python调试仍然直接输出

    工作目录不能放在python的安装目录下

  8. 解放开发者!3款工具实现快速K8S开发

    本文转自Rancher Labs 关注我们,即可第一时间获取K8S教程哦 简 介 时至今日,Kubernetes正在变得越来越重要,不仅仅是运维需要Kubernetes,在开发的世界里Kubernet ...

  9. build设计模式

    又叫生成器模式 public class MainActivity extends AppCompatActivity { TextView textView; Button button; prot ...

  10. 【3】TensorFlow光速入门-训练及评估

    本文地址:https://www.cnblogs.com/tujia/p/13862357.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...