twb*_*mer 10 performance rhel interrupt smp
我正在运行一个测试程序,它生成大量线程和异步 I/O。我在 /proc/interrupts 中看到这些中断的数量非常多,程序无法扩展超过某个点,因为 CPU 的软中断处理已 100% 饱和。
根据: http: //www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html CAL代表“远程函数调用中断”,但这就是我在谷歌上可以找到的所有信息。那么...这是什么意思?我为我的 I/O 适配器卡分配了 smp_affinity,这些适配器卡不是占用大量 CAL 中断的 CPU。这是否表明我的程序正在以不正确的 SMP 亲和力运行?
远程函数调用中断属于处理器间中断系列,即由一个处理器发送到系统中任何其他处理器的中断信号,并且不通过 IRQ 线传递,而是直接作为连接本地 APIC 的总线上的消息传递所有 CPU 的。
\n远程函数调用中断通常发送到除发送方之外的所有处理器,强制这些处理器运行发送方传递的函数。在 Linux x86 内核下:
\n相应的中断处理程序被命名为call_function_interrupt()。
\n中断通常通过smp_call_function( )设施函数发送。
典型用例包括关闭时停止所有 cpu、校准时钟、刷新 TLB\xe2\x80\xa6等。
\n当然,不同的 smp 亲和性设置可以间接影响 TLB 刷新的数量,但由于这种影响是间接的,并且 TLB 的刷新不是函数调用中断的唯一原因,因此不应首先单独使用它们的速率判断效率或亲和力设置。
\nsmp-affinity 设置的相关性的第一个判断是上下文切换的次数。越低越好。
\n 归档时间: |
|
查看次数: |
4450 次 |
最近记录: |