Hello,

I am testing couch 2.3.1 in various configurations and while loading high
number of test DBs I notice a ton of memory being eaten at some point and
never recovered More than 20 gigs and going into swap at which point i kill
the machine.

So went into the remsh to see where the memory goes and it is the logging
process. Take a look at the message queue len 4671185:

(couc...@couch01.int.test)65> MQSizes2 = lists:map(fun(A) -> {_,B} =
process_info(A,message_queue_len), {B,A} end, processes()).
(couc...@couch01.int.test)66> {_,BadProcess} =
hd(lists:reverse(lists:sort(MQSizes2))).
(couc...@couch01.int.test)67> process_info(BadProcess).
[{registered_name,couch_log_server},
 {current_function,{prim_file,drv_get_response,1}},
 {initial_call,{proc_lib,init_p,5}},
 {status,running},
 {message_queue_len,4671185},
 {messages,[{'$gen_cast',{log,{log_entry,debug,<0.8973.15>,

 [79,83,32,80,114,111,99,101,115,115,32,[...]|...],
                                         "--------",

 ["2019",45,["0",51],45,"21",84,["0",50],58,"40",58|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.8973.15>,

 [79,83,32,80,114,111,99,101,115,115,32|...],
                                         "--------",

 ["2019",45,["0",51],45,"21",84,["0",50],58,[...]|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.15949.9>,

 [79,83,32,80,114,111,99,101,115,115|...],
                                         "--------",

 ["2019",45,["0",51],45,"21",84,[[...]|...],58|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.8971.15>,

 [79,83,32,80,114,111,99,101,115|...],
                                         "--------",

 ["2019",45,["0",51],45,"21",84,[...]|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.9015.15>,
                                         [79,83,32,80,114,111,99,101|...],
                                         "--------",

 ["2019",45,["0",51],45,"21",84|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.9015.15>,
                                         [79,83,32,80,114,111,99|...],
                                         "--------",

 ["2019",45,["0",51],45,[...]|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.8973.15>,
                                         [79,83,32,80,114,111|...],
                                         "--------",
                                         ["2019",45,[[...]|...],45|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.15949.9>,
                                         [79,83,32,80,114|...],
                                         "--------",
                                         ["2019",45,[...]|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.8971.15>,
                                         [79,83,32,80|...],
                                         "--------",
                                         ["2019",45|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.8973.15>,
                                         [79,83,32|...],
                                         "--------",
                                         [[...]|...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.15949.9>,
                                         [79,83|...],
                                         "--------",
                                         [...]}}},
            {'$gen_cast',{log,{log_entry,debug,<0.9015.15>,
                                         [79|...],
                                         [...],...}}},
            {'$gen_cast',{log,{log_entry,debug,<0.8971.15>,[...],...}}},
            {'$gen_cast',{log,{log_entry,debug,<0.8973.15>,...}}},
            {'$gen_cast',{log,{log_entry,debug,...}}},
            {'$gen_cast',{log,{log_entry,...}}},
            {'$gen_cast',{log,{...}}},
            {'$gen_cast',{log,...}},
            {'$gen_cast',{...}},
            {'$gen_cast',...},
            {...}|...]},
 {links,[<0.122.0>,#Port<0.2149>]},
 {dictionary,[{'$initial_call',{couch_log_server,init,1}},
              {'$ancestors',[couch_log_sup,<0.121.0>]}]},
 {trap_exit,true},
 {error_handler,error_handler},
 {priority,normal},
 {group_leader,<0.120.0>},
 {total_heap_size,10957},
 {heap_size,4185},
 {stack_size,29},
 {reductions,292947037857},
 {garbage_collection,[{max_heap_size,#{error_logger => true,kill =>
true,size => 0}},
                      {min_bin_vheap_size,46422},
                      {min_heap_size,233},
                      {fullsweep_after,65535},
                      {minor_gcs,591}]},
 {suspending,[]}]

This last line took 1 hour to finish because it was dumping the whole
mailbox into swap once again.

I can see I have debug logs enabled which exaggerates the problem, but I am
assuming this can happen with any log level over time. Is this known
behaviour and do you have any suggestions?

Reply via email to