我使用perf来检测节点的进程
Perf命令:perf record -g -p 13586 sleep 10
结果:
# 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
如您所见,copy_struct
和size_object
费用很高。
调度程序是否忙于复制邮件?
仅供参考,我对减少的desc进行了排序,并在节点上获取了前10个进程,这似乎是正常的。
由于我们在一个系统上有大约6个节点,因此禁用了smp。我们打开它吗?
答案 0 :(得分:2)
复制结构,而不仅仅是消息。
由于db_ *也非常高,我可以想象复制结构来自于从ets表复制数据。
关于你是否应该使用smp,它可能会使系统性能更好,但你真的应该尝试并测量系统的结果,因为它会根据你的系统的不同而有所不同。