mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 08:08:53 -05:00
add test for active defrag
This commit is contained in:
parent
e3b8492e83
commit
0fb5c4ebd8
@ -35,3 +35,48 @@ start_server {tags {"memefficiency"}} {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
start_server {tags {"defrag"}} {
|
||||
if {[string match {*jemalloc*} [s mem_allocator]]} {
|
||||
test "Actove defrag" {
|
||||
r config set activedefrag no
|
||||
r config set active-defrag-threshold-lower 5
|
||||
r config set active-defrag-ignore-bytes 2mb
|
||||
r config set maxmemory 100mb
|
||||
r config set maxmemory-policy allkeys-lru
|
||||
r debug populate 700000 asdf 150
|
||||
r debug populate 170000 asdf 300
|
||||
set frag [s mem_fragmentation_ratio]
|
||||
assert {$frag >= 1.7}
|
||||
r config set activedefrag yes
|
||||
after 1500 ;# active defrag tests the status once a second.
|
||||
set hits [s active_defrag_hits]
|
||||
|
||||
# wait for the active defrag to stop working
|
||||
set tries 0
|
||||
while { True } {
|
||||
incr tries
|
||||
after 500
|
||||
set prev_hits $hits
|
||||
set hits [s active_defrag_hits]
|
||||
if {$hits == $prev_hits} {
|
||||
break
|
||||
}
|
||||
assert {$tries < 100}
|
||||
}
|
||||
|
||||
# TODO: we need to expose more accurate fragmentation info
|
||||
# i.e. the allocator used and active pages
|
||||
# instead we currently look at RSS so we need to ask for purge
|
||||
r memory purge
|
||||
|
||||
# test the the fragmentation is lower and that the defragger stopped working
|
||||
set frag [s mem_fragmentation_ratio]
|
||||
assert {$frag < 1.4}
|
||||
set misses [s active_defrag_misses]
|
||||
after 500
|
||||
set misses2 [s active_defrag_misses]
|
||||
assert {$misses2 == $misses}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user