title: Erlang node suffers high cpu
body: <p>I use perf to detect the node's process</p>
  
  <p>Perf command: <code>perf record -g -p 13586 sleep 10</code></p>
  
  <p>Result:</p>
  
  <pre><code># 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
  </code></pre>
  
  <p>As you can see, the <code>copy_struct</code> and <code>size_object</code> cost much.</p>
  
  <p>Are the schedulers are busy in copying messages?</p>
  
  <p>FYI, I sorted reductions desc and fetched top 10 processes on the node, it seems normal.</p>
  
  <p>As we have about 6 nodes on one system, so smp is disabled. Shall we open it on?</p>