【问题标题】:Erlang NUMA Technology configurationErlang NUMA 技术配置
【发布时间】:2020-05-23 04:17:46
【问题描述】:

我正在尝试在 openstack vm 上运行 erlang 应用程序并且性能非常差,在测试后我发现 NUMA 出现问题,这是我在测试中观察到的。

我的 openstack 计算主机具有 32 个内核,因此我在其上创建了 30 个 vCPU 内核 vm,它具有所有 NUMA 意识,当我在此 VM 上运行 Erlang 应用程序基准测试时性能最差,但随后我创建了具有 16 个 vCPU 内核的新 VM(在这种情况下,我的所有 VM cpu 都固定在 Numa-0 节点上),在这种情况下,基准测试结果非常好。

根据上面的测试,如果我将 VM 保留在单个 numa 节点上,那么性能会好得多,但是当我将它分散到多个 numa 区域时,它会变得更糟。

但有趣的是,当我在裸机上运行相同的 erlang 应用程序时,性能非常好,所以试图了解为什么在 VM 上运行的相同应用程序性能不佳?

在虚拟机上运行时,erlang 中是否有任何设置可以更好地适应 NUMA?

【问题讨论】:

    标签: linux performance erlang openstack numa


    【解决方案1】:

    Erlang 可能无法正确检测 VM 的 CPU 拓扑。

    您可以使用 hwloc 包中的 lscpulstopo-no-graphics 检查 VM 看到的 CPU 拓扑:

    #lscpu | egrep '^(CPU\(s\)|Thread|Core|Socket|NUMA)'
    #lstopo-no-graphics --no-io
    

    如果看起来不正确,请考虑使用诸如 hw:cpu_treads=2 hw:cpu_sockets=2 之类的 OpenStack 选项重建 VM,如 https://specs.openstack.org/openstack/nova-specs/specs/juno/implemented/virt-driver-vcpu-topology.html 中所述

    在 Erlang 方面,您可以尝试使用 Erlang VM 选项 +sct+sbt,如 http://erlang.org/doc/man/erl.html#+sbt 所述

    【讨论】:

    • 感谢您的提示,我会试一试并回复您..
    猜你喜欢
    • 1970-01-01
    • 2016-07-12
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    相关资源
    最近更新 更多