草庐IT

affinity

全部标签

linux - sched_getcpu() 在 Linux 上可靠吗?

我正在尝试调试Linux上pthreads的一些性能问题,我认为sched_getcpu()可能是在骗我。它报告每个线程的CPU不变,而分析实验似乎表明线程实际上在其生命周期内从一个内核迁移到另一个内核。我想知道sched_cpu()是否只报告线程开始运行的第一个CPU,而忽略了线程迁移?有没有其他人注意到这一点,或者看到任何证据表明sched_getcpu()的返回值可能会改变?如果它不可靠,是否有任何其他方法可以跟踪当前CPU(可能使用CPUID?)? 最佳答案 http://man7.org/linux/man-pages/m

linux - sched_getcpu() 在 Linux 上可靠吗?

我正在尝试调试Linux上pthreads的一些性能问题,我认为sched_getcpu()可能是在骗我。它报告每个线程的CPU不变,而分析实验似乎表明线程实际上在其生命周期内从一个内核迁移到另一个内核。我想知道sched_cpu()是否只报告线程开始运行的第一个CPU,而忽略了线程迁移?有没有其他人注意到这一点,或者看到任何证据表明sched_getcpu()的返回值可能会改变?如果它不可靠,是否有任何其他方法可以跟踪当前CPU(可能使用CPUID?)? 最佳答案 http://man7.org/linux/man-pages/m

linux - 如何同时设置 niceness 和 process affinity?

有没有办法同时设置进程的nice值和它的affinity?例如:taskset-c0,1nice-20proc更新:它是这样工作的。我认为它必须是我更复杂的东西。 最佳答案 使用基于PID的调度工具许多CPU调度工具需要PID而不是命令。以下似乎在我的系统上工作:#UsingshellexpansiontoreliablyusecorrectPID.sudonice-n18schedtool-a0,1$(sleep30&echo$!)&通过使用shell扩展来获取最后一个后台进程的PID,但这看起来很老套。恕我直言,以下内容似乎更清

linux - 如何同时设置 niceness 和 process affinity?

有没有办法同时设置进程的nice值和它的affinity?例如:taskset-c0,1nice-20proc更新:它是这样工作的。我认为它必须是我更复杂的东西。 最佳答案 使用基于PID的调度工具许多CPU调度工具需要PID而不是命令。以下似乎在我的系统上工作:#UsingshellexpansiontoreliablyusecorrectPID.sudonice-n18schedtool-a0,1$(sleep30&echo$!)&通过使用shell扩展来获取最后一个后台进程的PID,但这看起来很老套。恕我直言,以下内容似乎更清

c++ - 如何防止子派生进程继承 CPU 亲和性?

我有一个服务器进程,它派生出许多子进程。服务器进程与CPU核心具有亲和性,但我不希望子进程继承这种亲和性(操作系统应该处理运行这些进程的位置)。有没有一种方法可以根据cpu亲和性解除父子进程的链接? 最佳答案 您可以调用sched_setaffinity(2)在fork(2)之后在CPU掩码中设置所有位在execve(2)之前. 关于c++-如何防止子派生进程继承CPU亲和性?,我们在StackOverflow上找到一个类似的问题: https://stack

c++ - 如何防止子派生进程继承 CPU 亲和性?

我有一个服务器进程,它派生出许多子进程。服务器进程与CPU核心具有亲和性,但我不希望子进程继承这种亲和性(操作系统应该处理运行这些进程的位置)。有没有一种方法可以根据cpu亲和性解除父子进程的链接? 最佳答案 您可以调用sched_setaffinity(2)在fork(2)之后在CPU掩码中设置所有位在execve(2)之前. 关于c++-如何防止子派生进程继承CPU亲和性?,我们在StackOverflow上找到一个类似的问题: https://stack

linux - 为 linux 内核设置 cpu 亲和性,而不是进程

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion我很难找到有关如何为linux内核(及其所有加载的模块)设置cpu亲和力的信息,而不是针对特定进程。这是因为我希望内核一直在CPU0上运行以处理I/O的东西,而不做任何切换以在其他3个CPU上运行,因为它可能会污染L1和L2缓存。提前致谢。努里克

linux - 为 linux 内核设置 cpu 亲和性,而不是进程

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion我很难找到有关如何为linux内核(及其所有加载的模块)设置cpu亲和力的信息,而不是针对特定进程。这是因为我希望内核一直在CPU0上运行以处理I/O的东西,而不做任何切换以在其他3个CPU上运行,因为它可能会污染L1和L2缓存。提前致谢。努里克

Linux查找超线程核心id

我今天早上花了很多时间试图找出如何确定哪个处理器ID是超线程核心,但没有成功。我希望找到此信息并使用set_affinity()将进程绑定(bind)到超线程或非超线程以分析其性能。 最佳答案 我发现了一个简单的技巧来完成我需要的事情。cat/sys/devices/system/cpu/cpu0/topology/thread_siblings_list如果第一个数字等于CPU编号(本例中为0),则它是一个真正的内核,否则它就是一个超线程内核。真实核心示例:#cat/sys/devices/system/cpu/cpu1/topo

Linux查找超线程核心id

我今天早上花了很多时间试图找出如何确定哪个处理器ID是超线程核心,但没有成功。我希望找到此信息并使用set_affinity()将进程绑定(bind)到超线程或非超线程以分析其性能。 最佳答案 我发现了一个简单的技巧来完成我需要的事情。cat/sys/devices/system/cpu/cpu0/topology/thread_siblings_list如果第一个数字等于CPU编号(本例中为0),则它是一个真正的内核,否则它就是一个超线程内核。真实核心示例:#cat/sys/devices/system/cpu/cpu1/topo