gpt4 book ai didi

linux - Erlang SMP 在多核服务器上启用选项

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:50 27 4
gpt4 key购买 nike

我们在以下主机上运行 Erlang 14B03:

HP Proliant G6 服务器,有 2 个 Intel 处理器,每个处理器有 2.4GHz 速度,8MB 缓存,每个处理器有 4 个内核。服务器有 20 GB RAM。

我们如何应用-smp 模拟器选项来充分利用服务器的超线程功能。在每个处理器的每个核心上使用一个调度程序(使它们总共有 8 个调度程序),我们可以获得哪些性能优势?

最佳答案

默认情况下,如果使用 SMP 编译,Erlang 应该为您启动 8 个调度器。您可以在启动标题中看到这一点:

Erlang R14B03 (erts-5.8.4) [source] [64-bit] [smp:8:8] [rq:2] [async-threads:0]
[hipe] [kernel-poll:false] ^^^^^^^^^

这相当于给 -smp auto 作为标志。 -smp enable 只会强制 SMP 模式,即使在单核系统上也是如此(这通常会稍微降低性能)。

使用 +S 标志,您可以控制应该创建多少个调度器(以及多少个应该在线)。例如:

$ erl +S16:16
Erlang R14B03 (erts-5.8.4) [source] [64-bit] [smp:16:16] [rq:16]
[async-threads:0] [hipe] [kernel-poll:false]

更进一步,您可以使用 +sct 标志来准确定义哪些调度程序应该驻留在哪个确切的内核上。查看erlang manual获取对该标志的描述,因为它非常复杂。

但是请注意,如果操作系统公开了它们,Erlang 应该已经为每个内核启动一个调度程序(即使它们是超线程)。确保您没有在超线程已经可见的双四核系统上运行(使其总共有 8 个虚拟内核)。

关于linux - Erlang SMP 在多核服务器上启用选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7090425/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com