首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为前4个核设置所有系统irq

如何为前4个核设置所有系统irq
EN

Stack Overflow用户
提问于 2017-06-09 02:29:57
回答 1查看 782关注 0票数 0

服务器:我有两个英特尔,10个核心cpus或8个核心的服务器。因此,有些有40个核心,一些有32个核心(启用英特尔HT)

背景:我正在运行我们的应用程序,这将隔离cpus,目前,我分离了该应用程序的最后32个核心(核心8-39)。4核(核心4-7)用于其他用途(通常,它将使用50%的sys cpu).我想为系统IRQ的使用分配核心0-3。由于目前,如果我运行应用程序,系统响应非常慢,我认为一些irq请求已经被争议到核心4-7,这导致低响应。你认为如果可能的话,只需使用4个核心来处理系统irq?

EN

回答 1

Stack Overflow用户

发布于 2017-06-14 07:53:06

如果你有一个以上的套接字(“石头”),这意味着你有NUMA系统。以下是获取更多信息的链接-- access

尝试在同一个套接字上使用CPU。下面我将解释为什么和如何做到这一点。

  1. 确定每个套接字上的确切CPU ids。 % numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 2 4 6 8 10 12 14 16 18 20 22 node 0 size: 24565 MB node 0 free: 2069 MB node 1 cpus: 1 3 5 7 9 11 13 15 17 19 21 23 node 1 size: 24575 MB node 1 free: 1806 MB node distances: node 0 1 0: 10 20 1: 20 10

这里“节点”的意思是“套接字”(石头)。因此,0,2,4,6 CPU位于同一节点上。将所有的IRQ移动到一个节点来使用L3缓存来设置CPU是有意义的。

  1. 隔离除0,2,4,6以外的所有CPU。

需要添加参数来启动Linux内核isolcpus= cpu_number,cpu_number,.

例如

代码语言:javascript
复制
isolcpus=1,3,5,7-31
  1. 控制在哪个CPU上运行的IRQ

cat /proc/中断

  1. 使用numactl命令启动应用程序,使其与CPU和内存对齐。(这里需要理解NUMA和aligned是什么。请跟随文章开头的连结)

numactl -membind=节点

  1. 你的问题比我这里提到的要大得多。

如果您看到系统速度慢,需要了解瓶颈。试着用top,vmstat,iostat收集原始信息,找出弱点所在。

提供一些你的系统统计,我会帮助你把它正确的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44448353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档