Erlang node suffers high cpu -
i use perf detect node's process
perf command: perf record -g -p 13586 sleep 10
result:
# events: 7k cpu-clock # # overhead command shared object symbol # ........ ....... .................. .................................... # 17.02% beam beam [.] copy_struct | --- copy_struct 12.38% beam beam [.] size_object | --- size_object 11.85% beam beam [.] db_prog_match | --- db_prog_match 7.78% beam beam [.] db_select_hash | --- db_select_hash 6.90% beam beam [.] process_main | --- process_main 4.70% beam beam [.] do_minor | --- do_minor 4.23% beam beam [.] element_2 | --- element_2 3.30% beam beam [.] sweep_one_area | --- sweep_one_area 1.53% beam beam [.] cmp | --- cmp 1.39% beam beam [.] copy_shallow | --- copy_shallow
as can see, copy_struct
, size_object
cost much.
are schedulers busy in copying messages?
fyi, sorted reductions desc , fetched top 10 processes on node, seems normal.
as have 6 nodes on 1 system, smp disabled. shall open on?
copy struct used whenever term in general has copies, not messages.
since db_* quite high imagine copy structs come copying data , ets tables.
regarding if should use smp or not, might make system perform better, should try , measure results system vary depending on system does.
Comments
Post a Comment