ceph中使用Cgroup

文章目录


因为ceph动辄一个进程会有上百个线程,大量的进程和线程会占用过多的cpu资源和内存资源。如果系统cpu资源大量被ceph占用,或者大量内存被ceph进程和线程占用,将导致性能大幅下降,甚至引发系统奔溃死机。基于此,cgroup正好解决上述问题:

a、可以控制进程内存占用,如果超过Cgroup限制内存,将触发OOM。最进调研发现,ceph-osd进程的四分之三内存全部用做cache,ceph-osd为了提高性能,给很多元数据都加了cache,后续可以考虑使用该工具限制ceph-osd进程,可能会影响一定性能,但稳定性更为重要。

b、ceph-osd开出来的cache就是为了提高数据读写性能,但是不同线程往往分布在不同cpu上,会频繁的使缓存项失效。Cgroup可以将指定线程和特定cpu内核绑定,提高缓存命中率

c、减少NUMA的影响

备注:简单来说,NUMA思路就是将内存和CPU分割为多个区域,每个区域叫做NODE,然后将NODE高速互联。 node内cpu与内存访问速度快于访问其他node的内存,NUMA可能会在某些情况下影响ceph-osd。解决的方案,一种是通过BIOS关闭NUMA,另外一种就是通过cgroup将ceph-osd进程与某一个CPU Core以及同一NODE下的内存进行绑定。但是第二种看起来更麻烦,所以一般部署的时候可以在系统层面关闭NUMA。CentOS系统下,通过修改/etc/grub.conf文件,添加numa=off来关闭NUMA。

d、如果开启了HT,可能会造成OSD在thread1上,KVM在thread2上,并且是同一个core。Core的延迟和性能取决于其他一个线程做什么

发布了304 篇原创文章 · 获赞 6 · 访问量 8594

猜你喜欢

转载自blog.csdn.net/qq_23929673/article/details/103533776