前言
做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 |