前言

做rgw测试的时候,经常会有删除文件的操作,而用默认的参数的时候,rgw是通过gc回收机制来处理删除对象的,这个对于生产环境是有好处的,把删除对业务系统的压力分摊到不同的时间点,但是测试的时候,可能需要反复的写入删除,而这种情况下,可能希望能够迅速的回收对象,那么就需要修改几个参数了

参数

主要调整下面的几个参数

rgw_gc_obj_min_wait = 30
rgw_gc_processor_max_time = 180
rgw_gc_processor_period = 2

删除的步骤如下

1、删除以后进入gc队列
2、等待rgw_gc_obj_min_wait时间后开始处理
3、执行rgw_gc_processor_max_time时间的gc操作
4、等待rgw_gc_processor_period时间进入下一次gc操作

调整以后,删除就能够很快的回收了

查询删除以后执行gc的时间

[root@lab201 ~]# radosgw-admin gc list --include-all|grep time;date
"time": "2020-09-08 17:26:20.0.873326s",
Tue Sep 8 17:25:52 CST 2020

可以看到上面执行删除操作后,通过命令查询下一次gc的时间与当前的时间差就是30s左右

上面的gc相关的参数是哪里控制的

做了一个实验,通过给不同的rgw网关配置不同的gc参数,然后通过不同的网关去删除数据,可以看到,这个删除是由网关决定的,下面的是默认的参数做了删除操作以后查看删除的时间,可以看到是两个小时以后才开始删除,也就是rgw_gc_obj_min_wait = 7200

[root@lab201 ~]# radosgw-admin gc list --include-all|grep time;date
"time": "2020-09-08 19:31:01.0.24764s",
Tue Sep 8 17:31:10 CST 2020

那么这里实际上是可以给不同的网关配置不同的参数的,如果想要立刻回收空间的时候,可以配置回收快的参数,然后通过这个网关的端口去删除

控制删除线程的参数

rgw_gc_max_concurrent_io = 10

大量删除的时候可以考虑增大这个参数

变更记录

Why Who When
创建 武汉-运维-磨渣 2020-09-08

rgw配置删除快速回收对象的更多相关文章

  1. TCP的TIME_WAIT快速回收与重用

    声明一点: Linux中是无法修改tcp的TIME_WAIT值的,除非重新编译,起码我是没有找到怎么改.值得注意的是,net.ipv4.tcp_fin_timeout这个参数是FIN_WAIT_2的值 ...

  2. JVM 垃圾回收机制( 一) 回收对象的判定

    关于JVM 的垃圾回收机制,我们一般都没过多深入,因为JAVA 和 C++ 的一个很大区别就是,JAVA 帮我们做了垃圾回收,而不用像C++ 那么样手动进行回收,当然任何自动的东西都存在一定弊端,比如 ...

  3. 记一次性能优化,限制tcp_timewait数量,快速回收和重用

    前言 这篇文章的主题是记录一次Python程序的性能优化,在优化的过程中遇到的问题,以及如何去解决的.为大家提供一个优化的思路,首先要声明的一点是,我的方式不是唯一的,大家在性能优化之路上遇到的问题都 ...

  4. vue3 element-plus 配置json快速生成table列表组件,提升生产力近500%(已在公司使用,持续优化中)

    ️本文为博客园首发文章,未获授权禁止转载 大家好,我是aehyok,一个住在深圳城市的佛系码农‍♀️,如果你喜欢我的文章,可以通过点赞帮我聚集灵力️. 个人github仓库地址: https:gith ...

  5. vue3 element-plus 配置json快速生成form表单组件,提升生产力近600%(已在公司使用,持续优化中)

    ️本文为博客园社区首发文章,未获授权禁止转载 大家好,我是aehyok,一个住在深圳城市的佛系码农‍♀️,如果你喜欢我的文章,可以通过点赞帮我聚集灵力️. 个人github仓库地址: https:gi ...

  6. php删除多重数组对象属性,重新赋值的方法

    php删除多重数组对象属性,重新赋值的方法 实例:sphinx搜索出来的结果,要去掉某个属性值:$cl = new SphinxClient ();$query = $cl->Query ( $ ...

  7. (转)Java回收对象的标记 和 对象的二次标记过程

    Java回收对象的标记 和 对象的二次标记过程 二次标记 针对这个问题,虚拟机的做法是进行两次标记,即第一次标记不在“关系网”中的对象.第二次的话就要先判断该对象有没有实现finalize()方法了, ...

  8. time_wait的快速回收和重用

    TCP四次挥手: Time_wait产生原因及作用: 1. time_wait状态如何产生? 由上面的变迁图,首先调用close()发起主动关闭的一方,在发送最后一个ACK之后会进入time_wait ...

  9. json 删除、添加对象

    1. 定义json对象    var entryJson = []; 2. 删除.添加对象 entryJson.pop();     //删除最后一个对象   entryJson.push({ //往 ...

随机推荐

  1. 【数位DP】SCOI2014 方伯伯的商场之旅

    题目内容 方伯伯有一天去参加一个商场举办的游戏.商场派了一些工作人员排成一行.每个人面前有几堆石子. 说来也巧,位置在 \(i\) 的人面前的第 \(j\) 堆的石子的数量,刚好是 \(i\) 写成 ...

  2. 最近集训的图论(思路+实现)题目汇总(内容包含tarjan、分层图、拓扑、差分、奇怪的最短路):

    (集训模拟赛2)抢掠计划(tarjan强) 题目:给你n个点,m条边的图,每个点有点权,有一些点是"酒吧"点,终点只能在"酒吧",起点给定,路可以重复经过,但点 ...

  3. lumen laravel response对象返回数据

    Route::get('home', function () { $content = "内容"; $status = 301; $value = 'text/html'; // ...

  4. PHP SPL标准库-接口

    PHP SPL标准库有一下接口: Countable OuterIterator RecursiveIterator SeekableIterator SplObserver SplSubject A ...

  5. C# 判断当前目录是否存在不存在则创建

    /// <summary> /// 判断目录是否存在不存在则创建 /// </summary> /// <param name="Path">& ...

  6. vue学习笔记(一)---- vue指令( v-bind 属性绑定 )

    看栗子: <body> <div id="app"> <input type="button" value="按钮&qu ...

  7. Android测试工具 UIAutomator介绍

    UI Automator 测试工具定义以及用途 UI Automator 测试框架提供了一组 API,用于构建在用户应用和系统应用上执行交互的界面测试.通过 UI Automator API,您可以执 ...

  8. Java 中的 3 个双引号是什么语法?Java 15 刷新你的认知!

    Java 中的 3 个双引号 """ 是什么语法? 这是 Java 15 新出的,刷新你的认知! 一.前言 在 Java 15 的推出的时候,Text Blocks 正式 ...

  9. vue-router入门随笔

    下面整理根据官方文档以及自我理解整理,如有不足,请指教. 下面是来自一段官方的原话. Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得 ...

  10. WinSocket01

    启动windows平台下的Socket 1 #define WIN32_LEAN_AND_MEAN 2 #include<windows.h> 3 #include<WinSock2 ...