ceph版本:12.2.1
部署模式:ec 2+1
osd: 3个 且资源池已经有数据
执行命令:ceph daemon osd.0 flush_store_cache
进行刷缓存。即将dump_mempools内存池管理的bluestore cache中的无用数据进行释放
主要参数:
bluestore_cache_trim_interval = 0.2 #bluestore cache trim的时间间隔
bluestore_cache_trim_max_skip_pinned # trim cache的时候,如果遇见item是pin的,计数+1,计数超过此值后,停止做trim。默认为64
bluestore_cache_type = 2q #blustore cache类型,默认是2q
bluestore_2q_cache_kin_ratio = 0.5 #2q cache中真正存储新的缓存页面的链表 Ain 所占用整个cache空间的比例
bluestore_2q_cache_kout_ratio = 0.5 # 2q cache中存储被正常淘汰的缓存页面的链表 Alout 所占用整个cache的空间比例
debug_bluestore = 20/20 #设置bluestore的debug日志级别
debug_bdev = 20/20 #设置bdev的debug日志级别
刷缓存方式主要有两种,两种基本逻辑没有什么区别
基本源码调用逻辑很简单,以我们执行ceph daemon osd.0 flush_store_cache
命令的源码调用函数栈如下:
/usr/bin/ceph-osd(BlueStore::SharedBlob::put()+0x2c)
/usr/bin/ceph-osd(BlueStore::Extent::~Extent()+0xd1)
/usr/bin/ceph-osd(BlueStore::Onode::put()+0x96) //回收onode磁盘空间,调用extent的析构函数,sharedblob的析构函数
/usr/bin/ceph-osd(BlueStore::TwoQCache::_trim(unsigned
/usr/bin/ceph-osd(BlueStore::Cache::trim_all()+0x30)
/usr/bin/ceph-osd(BlueStore::flush_cache()+0x7c) //调用flush_cache函数执行trim
/usr/bin/ceph-osd(OSD::asok_command(std::basic_string<char, //admin_socket线程处理命令
删除onde的时候即Onode::-put
函数,先将onode从当前onode_map中删除,再析构掉onode对象
remove掉sharedblob磁盘数据结构。remove过程中同样需要将sharedblob先从sharedblob_set中移除,由remove
函数执行,然后再释放sharedblob空间
Cache
基类Onode
与Buffer
最终都加入Cache,进行全局热度识别和应用淘汰策略。在BlueStore中的2Q实现,这两类数据分别应用了不同的淘汰策略:针对管理用户数据的单元Onode采用LRU,针对用户数据单元buffer使用2Q算法。本文研究nginx提供的缓存功能,下面是实操记录。 这篇博文基于前面文章的基础上搭建,至始至终都是root用户操作 http://blog.csdn.net/tao_627/article/details/78953800 缓存清除功能需要借助第三方模块ngx_cache_purge,其链接如下 https://github...
下面是参考文献[1]的翻译 简介 ATS既可以用作HTTP代理,也可以用作HTTP缓存,ATS能够缓存任何字节流,虽然它当前只支持HTTP协议传输的字节流,当这样的流缓存时,会带一个HTTP协议头部,会命名为缓存中的一个对象object。每个对象通过一个名为cache key的全局唯一值识别。 该文档的目的是描述ATS缓...
对Squid使用的几点总结 1.cache_dir 在Linux环境下用aufs类型的cache_dir比较稳定,速度也比较快。cache_dir所在文件系统如果用noatime选项来mount,可以避 免访问cache文件时经常要更新access time的操作。 一般cache容量和被加速内容的比值...
策略模式作为行为型设计模式中的一种,主要封装相同功能的不同实现算法,用于在用户程序内部灵活切换。对用户来说能够快速替换对应的算法,能够让算法的实现独立于使用的用户。 基本的UML类图如下: 用户使用Stratey的实例能够快速得在不同的Cache算法之间灵活切换(直接使用对应的Cache实例来设置到Strategy之中即可。),...