问题标签 [numactl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java 进程报告“不正确”的可用处理器数量
我在 8 节点 NUMA 机器上运行 Java 1.6 进程,使用:
每个节点有 8 个 CPU,报告如下numactl --hardware
:
函数调用Runtime.getRuntime().availableProcessors()
返回64
。
尽管有限制,为什么Runtime
进程的对象报告 64 个可用处理器?cpunodebind
有没有办法获得 Java 进程可用的实际处理器数量?
multithreading - 将后续线程组中的两个线程绑定到同一个核心
在这个应用程序中,我有一组 N (POSIX) 线程。第一组开始,创建一个对象 A,然后结束。稍后,一个具有 N 个线程的新组启动,使用 A 创建一个类似的对象 B,然后结束。这种模式是重复的。该应用程序是高度内存密集型的(A 和 B 有大量 malloc'ed 数组)。我希望尽可能地在本地访问内存。我可以用它numactl --localalloc
来实现这一点,但为了让它工作,我还需要确保第一组和第二组中处理相同数据的线程绑定到同一个 NUMA 节点。我已经研究过sched_setaffinity
,但想知道是否存在更好的方法。
应用程序的逻辑使得没有单独线程组的解决方案会破坏程序逻辑。也就是说,单组线程管理第一个对象 A 和后来的对象 B(中间没有结束)的解决方案将是非常人为的,并且会消除代码的面向对象布局。
c - 在NUMA中获取内存的位置
我目前正在研究具有 2 个节点的 NUMA 系统。我有一个指向某个内存的指针,但我不知道它在哪个节点。有什么办法可以得到内存的节点号?
(获取当前线程的节点掩码不起作用的原因是,该节点的内存已满,因此即使该线程与当前节点有关联,它仍然可能在相邻节点上分配内存。因此,我正在寻找一种直接获取内存位置的方法。)
shell - How to restricit my cpu affinity to a subset of the cpus available on a given machine?
I am working on a machine with 4 sockets with another person that launch performance tests on one precise socket and does not want anybody to iterfer with this socket.
I would like to work transparently on the 3 remaining sockets. How could could I do that, something like prefixing all my commands with numactl... ??
My shell is zsh
Thanks!
linux - Linux 中的 Numa 平衡器
在最近的 Linux 版本中是否默认启用 NUMA 平衡器?如果是这样,我该如何禁用 NUMA 平衡器,请告诉我。
java - NUMA 系统上的 Spark
我正在考虑使用 Apache Spark 进行数据分析。过去,由于 NUMA 架构和对象位于单个节点的本地,我在 4 插槽服务器上经历过 Java/Scala 速度下降。解决方案是为每个 NUMA 节点启动一个单独的固定 JVM,并让它们使用 Akka 相互通信。
在 Spark 中如何处理 NUMA 以避免类似情况?
mongodb - Docker 中的 Mongodb:numactl --interleave=all 解释
我正在尝试根据https://hub.docker.com/_/mongo/Dockerfile
上的官方仓库为内存中的 MongoDB创建。
在dockerfile-entrypoint.sh
我遇到过:
基本上,如果存在,它会numactl --interleave=all
添加到原始 docker 命令之前。numactl
但我真的不明白这个 NUMA 政策的事情。您能否解释一下 NUMA 的真正含义以及--interleave=all
代表什么?
为什么我们需要使用它来创建 MongoDB 实例?
c - MPICH2 中特定等级执行的核心绑定说 sched_setaffinity: Invalid argument。
我正在研究具有 144 个内核的 HPC。
我有 24 个节点,每个节点都有 6cpus。像
节点 0:0,1,2,3,4,5
节点 1:6,7,8,9,10,11
...
使用 Mpich2。我正在像这样运行我的 c ecxecutable。 mpiexec -n 25 ./a.out
在 a.out 中,它将作为 rank 0 使 master rank 1(这是免费的)工作,而 master rank 1 使 X=6 数字(它有时会改变 3,6, 7) 执行并行。使用numaactl -l --phycpubind = %d x.out在 2,3,4,5,6,7 级别上它正在工作,但问题是我收到错误sched_setaffinity: Invalid argument。
ps -aF 在 PSR 中为 x.out 打印写入绑定。
sched_setaffinity:参数无效。将来会出问题还是现在会出问题。
谢谢你。
mongodb - MongoDB 和 NUMA
使用 NUMA 的这台机器上 MongoDB 写入性能确实很慢。我浏览了这个https://docs.mongodb.com/manual/administration/production-notes/。我禁用了区域回收并使用上述命令启动了 mongodb。NUMAnumactl --interleave=all
警告现在消失了,但我无法获得性能。当我开枪时numactl -s
,它显示
为什么我看不到策略 = 交错。我错过了什么吗?谁能帮助我如何提高我的写入性能和/或禁用此 NUMA?