@@ -2662,31 +2662,52 @@ async def test_replication_timeout_on_full_sync_heartbeat_expiry(
26622662
26632663@pytest .mark .parametrize (
26642664 "element_size, elements_number" ,
2665- [(16 , 20000 ), (20000 , 16 )],
2665+ [(16 , 30000 ), (30000 , 16 )],
26662666)
2667+ @dfly_args ({"proactor_threads" : 1 })
26672668async def test_big_containers (df_factory , element_size , elements_number ):
2668- master = df_factory .create (proactor_threads = 4 )
2669- replica = df_factory .create (proactor_threads = 4 )
2669+ master = df_factory .create ()
2670+ replica = df_factory .create ()
26702671
26712672 df_factory .start_all ([master , replica ])
26722673 c_master = master .client ()
26732674 c_replica = replica .client ()
26742675
26752676 logging .debug ("Fill master with test data" )
26762677 seeder = StaticSeeder (
2677- key_target = 10 ,
2678+ key_target = 50 ,
26782679 data_size = element_size * elements_number ,
26792680 collection_size = elements_number ,
26802681 variance = 1 ,
2681- samples = 5 ,
2682- types = ["LIST" , "SET" , "ZSET" , "HASH" ],
2682+ samples = 1 ,
2683+ types = ["LIST" , "SET" , "ZSET" , "HASH" , "STREAM" ],
26832684 )
26842685 await seeder .run (c_master )
26852686
2687+ async def get_memory (client , field ):
2688+ info = await client .info ("memory" )
2689+ return info [field ]
2690+
2691+ await asyncio .sleep (1 ) # wait for heartbeat to update rss memory
2692+ used_memory = await get_memory (c_master , "used_memory_rss" )
2693+
26862694 logging .debug ("Start replication and wait for full sync" )
26872695 await c_replica .execute_command (f"REPLICAOF localhost { master .port } " )
26882696 await wait_for_replicas_state (c_replica )
26892697
2698+ peak_memory = await get_memory (c_master , "used_memory_peak_rss" )
2699+
2700+ logging .info (f"Used memory { used_memory } , peak memory { peak_memory } " )
2701+ assert peak_memory < 1.1 * used_memory
2702+
2703+ await c_replica .execute_command ("memory decommit" )
2704+ await asyncio .sleep (1 )
2705+ replica_peak_memory = await get_memory (c_replica , "used_memory_peak_rss" )
2706+ replica_used_memory = await get_memory (c_replica , "used_memory_rss" )
2707+
2708+ logging .info (f"Replica Used memory { replica_used_memory } , peak memory { replica_peak_memory } " )
2709+ assert replica_peak_memory < 1.1 * replica_used_memory
2710+
26902711 # Check replica data consisten
26912712 replica_data = await StaticSeeder .capture (c_replica )
26922713 master_data = await StaticSeeder .capture (c_master )
0 commit comments