Memory leaking when using RediSearch and lots of updates

We have a dataset of roughly 200k documents that are frequently updated.
On average there are ~300 document updates per second (and very rare inserts).

After inserting all 200k documents into empty Redis, total memory usage is ~400MB.
Then it just starts infinitely growing.

The CPU usage also grows over time as well as FT.SEARCH latency. (The system doesn’t allow me to attach more screenshots)

FT.INFO results (after the start & ~3 hours later):
Number of docs: 203463 (max 425517) | Number of records: 5659112 | Number of terms: 80659
Number of docs: 203503 (max 1064325) | Number of records: 5567962 | Number of terms: 80670

We are using the following Redis & RediSearch configuration:

25:S 12 Apr 2022 21:43:51.469 * <search> Redis version found by RedisSearch : 6.2.4 - oss 25:S 12 Apr 2022 21:43:51.469 * <search> RediSearch version 2.0.15 (Git=v2.0.9-85-g41b8baa) 25:S 12 Apr 2022 21:43:51.469 * <search> Low level api version 1 initialized successfully 25:S 12 Apr 2022 21:43:51.469 * <search> concurrent writes: OFF, gc: ON, prefix min length: 2, prefix max expansions: 200, query timeout (ms): 500, timeout policy: return, cursor read size: 1000, cursor max idle (ms): 300000, max doctable size: 250000, max number of search results: 1000000, search pool size: 20, index pool size: 8, 

We have a sentinel cluster with one master instance & 2 read-only replicas.

Hi Bashalex,
Please change flag FORK_GC_CLEAN_NUMERIC_EMPTY_NODES to TRUE.
Cheers,
Ariel

Thanks for the reply!

I’ll try that flag & report back.
Is there any available documentation on what exactly the flag does?

I did enable the flag, but unfortunately the memory seems to be growing at the same pace:

@bashalex can you please post full FT.INFO reply for the index?
Also, did you try v2.2.10?

This is ~22 hours after restart.

127.0.0.1:6379> FT.INFO index_v3 1) index_name 2) index_v3 3) index_options 4) 1) "NOFREQS" 5) index_definition 6) 1) key_type 2) HASH 3) prefixes 4) 1) asset: 5) language_field 6) __language 7) default_score 8) "1" 9) score_field 10) __score 11) payload_field 12) __payload 7) fields 8) 1) 1) name 2) type 3) TEXT 4) WEIGHT 5) "1" 6) NOSTEM 2) 1) name_root 2) type 3) TAG 4) SEPARATOR 5) , 3) 1) name_root_length 2) type 3) NUMERIC 4) 1) name_fragments 2) type 3) TAG 4) SEPARATOR 5) , 5) 1) symbol 2) type 3) TAG 4) SEPARATOR 5) , 6) 1) symbol_length 2) type 3) NUMERIC 7) 1) chains 2) type 3) TAG 4) SEPARATOR 5) , 8) 1) addresses 2) type 3) TAG 4) SEPARATOR 5) , 9) 1) type 2) type 3) TAG 4) SEPARATOR 5) , 10) 1) tags 2) type 3) TAG 4) SEPARATOR 5) , 11) 1) verified 2) type 3) NUMERIC 12) 1) market_cap_usd 2) type 3) NUMERIC 4) SORTABLE 13) 1) price_eth 2) type 3) NUMERIC 4) SORTABLE 14) 1) relative_price_change_eth_0d 2) type 3) NUMERIC 4) SORTABLE 15) 1) relative_price_change_eth_1d 2) type 3) NUMERIC 4) SORTABLE 16) 1) relative_price_change_eth_30d 2) type 3) NUMERIC 4) SORTABLE 17) 1) relative_price_change_eth_90d 2) type 3) NUMERIC 4) SORTABLE 18) 1) relative_price_change_eth_365d 2) type 3) NUMERIC 4) SORTABLE 19) 1) price_btc 2) type 3) NUMERIC 4) SORTABLE 20) 1) relative_price_change_btc_0d 2) type 3) NUMERIC 4) SORTABLE 21) 1) relative_price_change_btc_1d 2) type 3) NUMERIC 4) SORTABLE 22) 1) relative_price_change_btc_30d 2) type 3) NUMERIC 4) SORTABLE 23) 1) relative_price_change_btc_90d 2) type 3) NUMERIC 4) SORTABLE 24) 1) relative_price_change_btc_365d 2) type 3) NUMERIC 4) SORTABLE 25) 1) price_usd 2) type 3) NUMERIC 4) SORTABLE 26) 1) relative_price_change_usd_0d 2) type 3) NUMERIC 4) SORTABLE 27) 1) relative_price_change_usd_1d 2) type 3) NUMERIC 4) SORTABLE 28) 1) relative_price_change_usd_30d 2) type 3) NUMERIC 4) SORTABLE 29) 1) relative_price_change_usd_90d 2) type 3) NUMERIC 4) SORTABLE 30) 1) relative_price_change_usd_365d 2) type 3) NUMERIC 4) SORTABLE 31) 1) price_eur 2) type 3) NUMERIC 4) SORTABLE 32) 1) relative_price_change_eur_0d 2) type 3) NUMERIC 4) SORTABLE 33) 1) relative_price_change_eur_1d 2) type 3) NUMERIC 4) SORTABLE 34) 1) relative_price_change_eur_30d 2) type 3) NUMERIC 4) SORTABLE 35) 1) relative_price_change_eur_90d 2) type 3) NUMERIC 4) SORTABLE 36) 1) relative_price_change_eur_365d 2) type 3) NUMERIC 4) SORTABLE 37) 1) price_krw 2) type 3) NUMERIC 4) SORTABLE 38) 1) relative_price_change_krw_0d 2) type 3) NUMERIC 4) SORTABLE 39) 1) relative_price_change_krw_1d 2) type 3) NUMERIC 4) SORTABLE 40) 1) relative_price_change_krw_30d 2) type 3) NUMERIC 4) SORTABLE 41) 1) relative_price_change_krw_90d 2) type 3) NUMERIC 4) SORTABLE 42) 1) relative_price_change_krw_365d 2) type 3) NUMERIC 4) SORTABLE 43) 1) price_rub 2) type 3) NUMERIC 4) SORTABLE 44) 1) relative_price_change_rub_0d 2) type 3) NUMERIC 4) SORTABLE 45) 1) relative_price_change_rub_1d 2) type 3) NUMERIC 4) SORTABLE 46) 1) relative_price_change_rub_30d 2) type 3) NUMERIC 4) SORTABLE 47) 1) relative_price_change_rub_90d 2) type 3) NUMERIC 4) SORTABLE 48) 1) relative_price_change_rub_365d 2) type 3) NUMERIC 4) SORTABLE 49) 1) price_gbp 2) type 3) NUMERIC 4) SORTABLE 50) 1) relative_price_change_gbp_0d 2) type 3) NUMERIC 4) SORTABLE 51) 1) relative_price_change_gbp_1d 2) type 3) NUMERIC 4) SORTABLE 52) 1) relative_price_change_gbp_30d 2) type 3) NUMERIC 4) SORTABLE 53) 1) relative_price_change_gbp_90d 2) type 3) NUMERIC 4) SORTABLE 54) 1) relative_price_change_gbp_365d 2) type 3) NUMERIC 4) SORTABLE 55) 1) price_aud 2) type 3) NUMERIC 4) SORTABLE 56) 1) relative_price_change_aud_0d 2) type 3) NUMERIC 4) SORTABLE 57) 1) relative_price_change_aud_1d 2) type 3) NUMERIC 4) SORTABLE 58) 1) relative_price_change_aud_30d 2) type 3) NUMERIC 4) SORTABLE 59) 1) relative_price_change_aud_90d 2) type 3) NUMERIC 4) SORTABLE 60) 1) relative_price_change_aud_365d 2) type 3) NUMERIC 4) SORTABLE 61) 1) price_cad 2) type 3) NUMERIC 4) SORTABLE 62) 1) relative_price_change_cad_0d 2) type 3) NUMERIC 4) SORTABLE 63) 1) relative_price_change_cad_1d 2) type 3) NUMERIC 4) SORTABLE 64) 1) relative_price_change_cad_30d 2) type 3) NUMERIC 4) SORTABLE 65) 1) relative_price_change_cad_90d 2) type 3) NUMERIC 4) SORTABLE 66) 1) relative_price_change_cad_365d 2) type 3) NUMERIC 4) SORTABLE 67) 1) price_inr 2) type 3) NUMERIC 4) SORTABLE 68) 1) relative_price_change_inr_0d 2) type 3) NUMERIC 4) SORTABLE 69) 1) relative_price_change_inr_1d 2) type 3) NUMERIC 4) SORTABLE 70) 1) relative_price_change_inr_30d 2) type 3) NUMERIC 4) SORTABLE 71) 1) relative_price_change_inr_90d 2) type 3) NUMERIC 4) SORTABLE 72) 1) relative_price_change_inr_365d 2) type 3) NUMERIC 4) SORTABLE 73) 1) price_jpy 2) type 3) NUMERIC 4) SORTABLE 74) 1) relative_price_change_jpy_0d 2) type 3) NUMERIC 4) SORTABLE 75) 1) relative_price_change_jpy_1d 2) type 3) NUMERIC 4) SORTABLE 76) 1) relative_price_change_jpy_30d 2) type 3) NUMERIC 4) SORTABLE 77) 1) relative_price_change_jpy_90d 2) type 3) NUMERIC 4) SORTABLE 78) 1) relative_price_change_jpy_365d 2) type 3) NUMERIC 4) SORTABLE 79) 1) price_nzd 2) type 3) NUMERIC 4) SORTABLE 80) 1) relative_price_change_nzd_0d 2) type 3) NUMERIC 4) SORTABLE 81) 1) relative_price_change_nzd_1d 2) type 3) NUMERIC 4) SORTABLE 82) 1) relative_price_change_nzd_30d 2) type 3) NUMERIC 4) SORTABLE 83) 1) relative_price_change_nzd_90d 2) type 3) NUMERIC 4) SORTABLE 84) 1) relative_price_change_nzd_365d 2) type 3) NUMERIC 4) SORTABLE 85) 1) price_try 2) type 3) NUMERIC 4) SORTABLE 86) 1) relative_price_change_try_0d 2) type 3) NUMERIC 4) SORTABLE 87) 1) relative_price_change_try_1d 2) type 3) NUMERIC 4) SORTABLE 88) 1) relative_price_change_try_30d 2) type 3) NUMERIC 4) SORTABLE 89) 1) relative_price_change_try_90d 2) type 3) NUMERIC 4) SORTABLE 90) 1) relative_price_change_try_365d 2) type 3) NUMERIC 4) SORTABLE 91) 1) price_zar 2) type 3) NUMERIC 4) SORTABLE 92) 1) relative_price_change_zar_0d 2) type 3) NUMERIC 4) SORTABLE 93) 1) relative_price_change_zar_1d 2) type 3) NUMERIC 4) SORTABLE 94) 1) relative_price_change_zar_30d 2) type 3) NUMERIC 4) SORTABLE 95) 1) relative_price_change_zar_90d 2) type 3) NUMERIC 4) SORTABLE 96) 1) relative_price_change_zar_365d 2) type 3) NUMERIC 4) SORTABLE 97) 1) price_cny 2) type 3) NUMERIC 4) SORTABLE 98) 1) relative_price_change_cny_0d 2) type 3) NUMERIC 4) SORTABLE 99) 1) relative_price_change_cny_1d 2) type 3) NUMERIC 4) SORTABLE 100) 1) relative_price_change_cny_30d 2) type 3) NUMERIC 4) SORTABLE 101) 1) relative_price_change_cny_90d 2) type 3) NUMERIC 4) SORTABLE 102) 1) relative_price_change_cny_365d 2) type 3) NUMERIC 4) SORTABLE 103) 1) price_chf 2) type 3) NUMERIC 4) SORTABLE 104) 1) relative_price_change_chf_0d 2) type 3) NUMERIC 4) SORTABLE 105) 1) relative_price_change_chf_1d 2) type 3) NUMERIC 4) SORTABLE 106) 1) relative_price_change_chf_30d 2) type 3) NUMERIC 4) SORTABLE 107) 1) relative_price_change_chf_90d 2) type 3) NUMERIC 4) SORTABLE 108) 1) relative_price_change_chf_365d 2) type 3) NUMERIC 4) SORTABLE 9) num_docs 10) "204564" 11) max_doc_id 12) "6489965" 13) num_terms 14) "80966" 15) num_records 16) "2229781" 17) inverted_sz_mb 18) "52.246162414550781" 19) total_inverted_index_blocks 20) "4654610" 21) offset_vectors_sz_mb 22) "21.758495330810547" 23) doc_table_size_mb 24) "813.35198974609375" 25) sortable_values_size_mb 26) "13827.2978515625" 27) key_table_size_mb 28) "7.7384700775146484" 29) records_per_doc_avg 30) "10.900163650512695" 31) bytes_per_record_avg 32) "24.56926155090332" 33) offsets_per_term_avg 34) "10.232119560241699" 35) offset_bits_per_record_avg 36) "8.0000171661376953" 37) hash_indexing_failures 38) "0" 39) indexing 40) "0" 41) percent_indexed 42) "1" 43) gc_stats 44) 1) bytes_collected 2) "6012024283" 3) total_ms_run 4) "31704382" 5) total_cycles 6) "11700" 7) average_cycle_time_ms 8) "2709.7762393162393" 9) last_run_time_ms 10) "5400" 11) gc_numeric_trees_missed 12) "10586" 13) gc_blocks_denied 14) "98885898" 45) cursor_stats 46) 1) global_idle 2) (integer) 0 3) global_total 4) (integer) 0 5) index_capacity 6) (integer) 128 7) index_total 8) (integer) 0 47) stopwords_list 48) (empty array) 

Is there anything particular about the 2.2.10 version that might help?
I see the latest version available is 2.4.3 – would it make sense to update straight to it?


UPD: updated to 2.2.10 – memory is still leaking

2.4.3 is not GA yet.
Can you post your full ft.info stats?

I did post the stats, but apparently my post was automatically deleted and should be approved by some stuff member to be returned.

I’ll try to post again though.

Here go the stats after 3 days of running the application with the following configuration.
MAXDOCTABLESIZE: "250000"
FORK_GC_RUN_INTERVAL: "1"
FORK_GC_CLEAN_NUMERIC_EMPTY_NODES: "true"

127.0.0.1:6379> FT.INFO index_v4 1) index_name 2) index_v4 3) index_options 4) 1) "NOFREQS" 5) index_definition 6) 1) key_type 2) HASH 3) prefixes 4) 1) asset: 5) default_score 6) "1" 7) attributes 8) 1) 1) identifier 2) name 3) attribute 4) name 5) type 6) TEXT 7) WEIGHT 8) "1" 9) NOSTEM 2) 1) identifier 2) name_root 3) attribute 4) name_root 5) type 6) TAG 7) SEPARATOR 8) , 3) 1) identifier 2) name_root_length 3) attribute 4) name_root_length 5) type 6) NUMERIC 4) 1) identifier 2) name_fragments 3) attribute 4) name_fragments 5) type 6) TAG 7) SEPARATOR 8) , 5) 1) identifier 2) symbol 3) attribute 4) symbol 5) type 6) TAG 7) SEPARATOR 8) , 6) 1) identifier 2) symbol_length 3) attribute 4) symbol_length 5) type 6) NUMERIC 7) 1) identifier 2) chains 3) attribute 4) chains 5) type 6) TAG 7) SEPARATOR 8) , 8) 1) identifier 2) addresses 3) attribute 4) addresses 5) type 6) TAG 7) SEPARATOR 8) , 9) 1) identifier 2) type 3) attribute 4) type 5) type 6) TAG 7) SEPARATOR 8) , 10) 1) identifier 2) tags 3) attribute 4) tags 5) type 6) TAG 7) SEPARATOR 8) , 11) 1) identifier 2) verified 3) attribute 4) verified 5) type 6) NUMERIC 12) 1) identifier 2) market_cap_usd 3) attribute 4) market_cap_usd 5) type 6) NUMERIC 7) SORTABLE 13) 1) identifier 2) updated_at 3) attribute 4) updated_at 5) type 6) NUMERIC 7) SORTABLE 14) 1) identifier 2) price_eth 3) attribute 4) price_eth 5) type 6) NUMERIC 7) SORTABLE 15) 1) identifier 2) relative_price_change_eth_0d 3) attribute 4) relative_price_change_eth_0d 5) type 6) NUMERIC 7) SORTABLE 16) 1) identifier 2) relative_price_change_eth_1d 3) attribute 4) relative_price_change_eth_1d 5) type 6) NUMERIC 7) SORTABLE 17) 1) identifier 2) relative_price_change_eth_30d 3) attribute 4) relative_price_change_eth_30d 5) type 6) NUMERIC 7) SORTABLE 18) 1) identifier 2) relative_price_change_eth_90d 3) attribute 4) relative_price_change_eth_90d 5) type 6) NUMERIC 7) SORTABLE 19) 1) identifier 2) relative_price_change_eth_365d 3) attribute 4) relative_price_change_eth_365d 5) type 6) NUMERIC 7) SORTABLE 20) 1) identifier 2) price_btc 3) attribute 4) price_btc 5) type 6) NUMERIC 7) SORTABLE 21) 1) identifier 2) relative_price_change_btc_0d 3) attribute 4) relative_price_change_btc_0d 5) type 6) NUMERIC 7) SORTABLE 22) 1) identifier 2) relative_price_change_btc_1d 3) attribute 4) relative_price_change_btc_1d 5) type 6) NUMERIC 7) SORTABLE 23) 1) identifier 2) relative_price_change_btc_30d 3) attribute 4) relative_price_change_btc_30d 5) type 6) NUMERIC 7) SORTABLE 24) 1) identifier 2) relative_price_change_btc_90d 3) attribute 4) relative_price_change_btc_90d 5) type 6) NUMERIC 7) SORTABLE 25) 1) identifier 2) relative_price_change_btc_365d 3) attribute 4) relative_price_change_btc_365d 5) type 6) NUMERIC 7) SORTABLE 26) 1) identifier 2) price_usd 3) attribute 4) price_usd 5) type 6) NUMERIC 7) SORTABLE 27) 1) identifier 2) relative_price_change_usd_0d 3) attribute 4) relative_price_change_usd_0d 5) type 6) NUMERIC 7) SORTABLE 28) 1) identifier 2) relative_price_change_usd_1d 3) attribute 4) relative_price_change_usd_1d 5) type 6) NUMERIC 7) SORTABLE 29) 1) identifier 2) relative_price_change_usd_30d 3) attribute 4) relative_price_change_usd_30d 5) type 6) NUMERIC 7) SORTABLE 30) 1) identifier 2) relative_price_change_usd_90d 3) attribute 4) relative_price_change_usd_90d 5) type 6) NUMERIC 7) SORTABLE 31) 1) identifier 2) relative_price_change_usd_365d 3) attribute 4) relative_price_change_usd_365d 5) type 6) NUMERIC 7) SORTABLE 32) 1) identifier 2) price_eur 3) attribute 4) price_eur 5) type 6) NUMERIC 7) SORTABLE 33) 1) identifier 2) relative_price_change_eur_0d 3) attribute 4) relative_price_change_eur_0d 5) type 6) NUMERIC 7) SORTABLE 34) 1) identifier 2) relative_price_change_eur_1d 3) attribute 4) relative_price_change_eur_1d 5) type 6) NUMERIC 7) SORTABLE 35) 1) identifier 2) relative_price_change_eur_30d 3) attribute 4) relative_price_change_eur_30d 5) type 6) NUMERIC 7) SORTABLE 36) 1) identifier 2) relative_price_change_eur_90d 3) attribute 4) relative_price_change_eur_90d 5) type 6) NUMERIC 7) SORTABLE 37) 1) identifier 2) relative_price_change_eur_365d 3) attribute 4) relative_price_change_eur_365d 5) type 6) NUMERIC 7) SORTABLE 38) 1) identifier 2) price_krw 3) attribute 4) price_krw 5) type 6) NUMERIC 7) SORTABLE 39) 1) identifier 2) relative_price_change_krw_0d 3) attribute 4) relative_price_change_krw_0d 5) type 6) NUMERIC 7) SORTABLE 40) 1) identifier 2) relative_price_change_krw_1d 3) attribute 4) relative_price_change_krw_1d 5) type 6) NUMERIC 7) SORTABLE 41) 1) identifier 2) relative_price_change_krw_30d 3) attribute 4) relative_price_change_krw_30d 5) type 6) NUMERIC 7) SORTABLE 42) 1) identifier 2) relative_price_change_krw_90d 3) attribute 4) relative_price_change_krw_90d 5) type 6) NUMERIC 7) SORTABLE 43) 1) identifier 2) relative_price_change_krw_365d 3) attribute 4) relative_price_change_krw_365d 5) type 6) NUMERIC 7) SORTABLE 44) 1) identifier 2) price_rub 3) attribute 4) price_rub 5) type 6) NUMERIC 7) SORTABLE 45) 1) identifier 2) relative_price_change_rub_0d 3) attribute 4) relative_price_change_rub_0d 5) type 6) NUMERIC 7) SORTABLE 46) 1) identifier 2) relative_price_change_rub_1d 3) attribute 4) relative_price_change_rub_1d 5) type 6) NUMERIC 7) SORTABLE 47) 1) identifier 2) relative_price_change_rub_30d 3) attribute 4) relative_price_change_rub_30d 5) type 6) NUMERIC 7) SORTABLE 48) 1) identifier 2) relative_price_change_rub_90d 3) attribute 4) relative_price_change_rub_90d 5) type 6) NUMERIC 7) SORTABLE 49) 1) identifier 2) relative_price_change_rub_365d 3) attribute 4) relative_price_change_rub_365d 5) type 6) NUMERIC 7) SORTABLE 50) 1) identifier 2) price_gbp 3) attribute 4) price_gbp 5) type 6) NUMERIC 7) SORTABLE 51) 1) identifier 2) relative_price_change_gbp_0d 3) attribute 4) relative_price_change_gbp_0d 5) type 6) NUMERIC 7) SORTABLE 52) 1) identifier 2) relative_price_change_gbp_1d 3) attribute 4) relative_price_change_gbp_1d 5) type 6) NUMERIC 7) SORTABLE 53) 1) identifier 2) relative_price_change_gbp_30d 3) attribute 4) relative_price_change_gbp_30d 5) type 6) NUMERIC 7) SORTABLE 54) 1) identifier 2) relative_price_change_gbp_90d 3) attribute 4) relative_price_change_gbp_90d 5) type 6) NUMERIC 7) SORTABLE 55) 1) identifier 2) relative_price_change_gbp_365d 3) attribute 4) relative_price_change_gbp_365d 5) type 6) NUMERIC 7) SORTABLE 56) 1) identifier 2) price_aud 3) attribute 4) price_aud 5) type 6) NUMERIC 7) SORTABLE 57) 1) identifier 2) relative_price_change_aud_0d 3) attribute 4) relative_price_change_aud_0d 5) type 6) NUMERIC 7) SORTABLE 58) 1) identifier 2) relative_price_change_aud_1d 3) attribute 4) relative_price_change_aud_1d 5) type 6) NUMERIC 7) SORTABLE 59) 1) identifier 2) relative_price_change_aud_30d 3) attribute 4) relative_price_change_aud_30d 5) type 6) NUMERIC 7) SORTABLE 60) 1) identifier 2) relative_price_change_aud_90d 3) attribute 4) relative_price_change_aud_90d 5) type 6) NUMERIC 7) SORTABLE 61) 1) identifier 2) relative_price_change_aud_365d 3) attribute 4) relative_price_change_aud_365d 5) type 6) NUMERIC 7) SORTABLE 62) 1) identifier 2) price_cad 3) attribute 4) price_cad 5) type 6) NUMERIC 7) SORTABLE 63) 1) identifier 2) relative_price_change_cad_0d 3) attribute 4) relative_price_change_cad_0d 5) type 6) NUMERIC 7) SORTABLE 64) 1) identifier 2) relative_price_change_cad_1d 3) attribute 4) relative_price_change_cad_1d 5) type 6) NUMERIC 7) SORTABLE 65) 1) identifier 2) relative_price_change_cad_30d 3) attribute 4) relative_price_change_cad_30d 5) type 6) NUMERIC 7) SORTABLE 66) 1) identifier 2) relative_price_change_cad_90d 3) attribute 4) relative_price_change_cad_90d 5) type 6) NUMERIC 7) SORTABLE 67) 1) identifier 2) relative_price_change_cad_365d 3) attribute 4) relative_price_change_cad_365d 5) type 6) NUMERIC 7) SORTABLE 68) 1) identifier 2) price_inr 3) attribute 4) price_inr 5) type 6) NUMERIC 7) SORTABLE 69) 1) identifier 2) relative_price_change_inr_0d 3) attribute 4) relative_price_change_inr_0d 5) type 6) NUMERIC 7) SORTABLE 70) 1) identifier 2) relative_price_change_inr_1d 3) attribute 4) relative_price_change_inr_1d 5) type 6) NUMERIC 7) SORTABLE 71) 1) identifier 2) relative_price_change_inr_30d 3) attribute 4) relative_price_change_inr_30d 5) type 6) NUMERIC 7) SORTABLE 72) 1) identifier 2) relative_price_change_inr_90d 3) attribute 4) relative_price_change_inr_90d 5) type 6) NUMERIC 7) SORTABLE 73) 1) identifier 2) relative_price_change_inr_365d 3) attribute 4) relative_price_change_inr_365d 5) type 6) NUMERIC 7) SORTABLE 74) 1) identifier 2) price_jpy 3) attribute 4) price_jpy 5) type 6) NUMERIC 7) SORTABLE 75) 1) identifier 2) relative_price_change_jpy_0d 3) attribute 4) relative_price_change_jpy_0d 5) type 6) NUMERIC 7) SORTABLE 76) 1) identifier 2) relative_price_change_jpy_1d 3) attribute 4) relative_price_change_jpy_1d 5) type 6) NUMERIC 7) SORTABLE 77) 1) identifier 2) relative_price_change_jpy_30d 3) attribute 4) relative_price_change_jpy_30d 5) type 6) NUMERIC 7) SORTABLE 78) 1) identifier 2) relative_price_change_jpy_90d 3) attribute 4) relative_price_change_jpy_90d 5) type 6) NUMERIC 7) SORTABLE 79) 1) identifier 2) relative_price_change_jpy_365d 3) attribute 4) relative_price_change_jpy_365d 5) type 6) NUMERIC 7) SORTABLE 80) 1) identifier 2) price_nzd 3) attribute 4) price_nzd 5) type 6) NUMERIC 7) SORTABLE 81) 1) identifier 2) relative_price_change_nzd_0d 3) attribute 4) relative_price_change_nzd_0d 5) type 6) NUMERIC 7) SORTABLE 82) 1) identifier 2) relative_price_change_nzd_1d 3) attribute 4) relative_price_change_nzd_1d 5) type 6) NUMERIC 7) SORTABLE 83) 1) identifier 2) relative_price_change_nzd_30d 3) attribute 4) relative_price_change_nzd_30d 5) type 6) NUMERIC 7) SORTABLE 84) 1) identifier 2) relative_price_change_nzd_90d 3) attribute 4) relative_price_change_nzd_90d 5) type 6) NUMERIC 7) SORTABLE 85) 1) identifier 2) relative_price_change_nzd_365d 3) attribute 4) relative_price_change_nzd_365d 5) type 6) NUMERIC 7) SORTABLE 86) 1) identifier 2) price_try 3) attribute 4) price_try 5) type 6) NUMERIC 7) SORTABLE 87) 1) identifier 2) relative_price_change_try_0d 3) attribute 4) relative_price_change_try_0d 5) type 6) NUMERIC 7) SORTABLE 88) 1) identifier 2) relative_price_change_try_1d 3) attribute 4) relative_price_change_try_1d 5) type 6) NUMERIC 7) SORTABLE 89) 1) identifier 2) relative_price_change_try_30d 3) attribute 4) relative_price_change_try_30d 5) type 6) NUMERIC 7) SORTABLE 90) 1) identifier 2) relative_price_change_try_90d 3) attribute 4) relative_price_change_try_90d 5) type 6) NUMERIC 7) SORTABLE 91) 1) identifier 2) relative_price_change_try_365d 3) attribute 4) relative_price_change_try_365d 5) type 6) NUMERIC 7) SORTABLE 92) 1) identifier 2) price_zar 3) attribute 4) price_zar 5) type 6) NUMERIC 7) SORTABLE 93) 1) identifier 2) relative_price_change_zar_0d 3) attribute 4) relative_price_change_zar_0d 5) type 6) NUMERIC 7) SORTABLE 94) 1) identifier 2) relative_price_change_zar_1d 3) attribute 4) relative_price_change_zar_1d 5) type 6) NUMERIC 7) SORTABLE 95) 1) identifier 2) relative_price_change_zar_30d 3) attribute 4) relative_price_change_zar_30d 5) type 6) NUMERIC 7) SORTABLE 96) 1) identifier 2) relative_price_change_zar_90d 3) attribute 4) relative_price_change_zar_90d 5) type 6) NUMERIC 7) SORTABLE 97) 1) identifier 2) relative_price_change_zar_365d 3) attribute 4) relative_price_change_zar_365d 5) type 6) NUMERIC 7) SORTABLE 98) 1) identifier 2) price_cny 3) attribute 4) price_cny 5) type 6) NUMERIC 7) SORTABLE 99) 1) identifier 2) relative_price_change_cny_0d 3) attribute 4) relative_price_change_cny_0d 5) type 6) NUMERIC 7) SORTABLE 100) 1) identifier 2) relative_price_change_cny_1d 3) attribute 4) relative_price_change_cny_1d 5) type 6) NUMERIC 7) SORTABLE 101) 1) identifier 2) relative_price_change_cny_30d 3) attribute 4) relative_price_change_cny_30d 5) type 6) NUMERIC 7) SORTABLE 102) 1) identifier 2) relative_price_change_cny_90d 3) attribute 4) relative_price_change_cny_90d 5) type 6) NUMERIC 7) SORTABLE 103) 1) identifier 2) relative_price_change_cny_365d 3) attribute 4) relative_price_change_cny_365d 5) type 6) NUMERIC 7) SORTABLE 104) 1) identifier 2) price_chf 3) attribute 4) price_chf 5) type 6) NUMERIC 7) SORTABLE 105) 1) identifier 2) relative_price_change_chf_0d 3) attribute 4) relative_price_change_chf_0d 5) type 6) NUMERIC 7) SORTABLE 106) 1) identifier 2) relative_price_change_chf_1d 3) attribute 4) relative_price_change_chf_1d 5) type 6) NUMERIC 7) SORTABLE 107) 1) identifier 2) relative_price_change_chf_30d 3) attribute 4) relative_price_change_chf_30d 5) type 6) NUMERIC 7) SORTABLE 108) 1) identifier 2) relative_price_change_chf_90d 3) attribute 4) relative_price_change_chf_90d 5) type 6) NUMERIC 7) SORTABLE 109) 1) identifier 2) relative_price_change_chf_365d 3) attribute 4) relative_price_change_chf_365d 5) type 6) NUMERIC 7) SORTABLE 9) num_docs 10) "205910" 11) max_doc_id 12) "19989068" 13) num_terms 14) "81299" 15) num_records 16) "1.844674407369898e+19" 17) inverted_sz_mb 18) "43.430500030517578" 19) total_inverted_index_blocks 20) "4460371" 21) offset_vectors_sz_mb 22) "67.800628662109375" 23) doc_table_size_mb 24) "25.689956665039062" 25) sortable_values_size_mb 26) "55.919036865234375" 27) key_table_size_mb 28) "7.8203334808349609" 29) records_per_doc_avg 30) "89586441125888" 31) bytes_per_record_avg 32) "2.468738104569046e-12" 33) offsets_per_term_avg 34) "3.8540169319811746e-12" 35) offset_bits_per_record_avg 36) "8.0000057220458984" 37) hash_indexing_failures 38) "0" 39) indexing 40) "0" 41) percent_indexed 42) "1" 43) gc_stats 44) 1) bytes_collected 2) "15493862083" 3) total_ms_run 4) "124121986" 5) total_cycles 6) "69558" 7) average_cycle_time_ms 8) "1784.4386842634924" 9) last_run_time_ms 10) "2438" 11) gc_numeric_trees_missed 12) "27524" 13) gc_blocks_denied 14) "100667976" 45) cursor_stats 46) 1) global_idle 2) (integer) 0 3) global_total 4) (integer) 0 5) index_capacity 6) (integer) 128 7) index_total 8) (integer) 0 47) stopwords_list 48) (empty array) 

I can see you have many numeric indexes which are demanding when it comes to indexing and clearing.
Can you let the system sit still for a few minutes and see if the memory drops?
Since the memory cleanup runs on a fork, any chance to the structure will make the GC skip some nodes.
Allowing the system to run GC with no updates in parallel could give the system a chance to run a full cycle.