Linux 内核在压力下有更好的响应时间

标签 linux performance linux-kernel latency

我有一个我无法理解的奇怪行为: 出于性能测量目的,我使用“旧”并行端口接口(interface)在 debian 内核 3.2.0-4-amd64 上生成 IRQ(我使用连接到 ACK 引脚的外部信号发生器)。

我编写了自己的内核模块(仅上半部分)来处理中断并将外部信号发送回并行端口并在示波器上显示这两个信号,以便我可以测量内核响应时间。 一切都按预期工作,我可以看到平均 70 µs 的时间响应和一些 20µs 的“突发”。我在“Intel(R) Core(TM) i3-3240 CPU @ 3.40GHz”上运行。

现在,“无法解释”的部分。 如果我使用“压力”程序加载 CPU、内存和 I/O,我预计平均时间会最差,但恰恰相反:我的平均响应时间下降到 20µs。 我尝试了 3 个不同的内核: vanilla、PREEMT-RT 和 NO_HZ 选项设置为 false 的 vanilla。 有人可以解释一下这其中的魔力吗?

我将 'governor' 配置更改为 'performance' 但没有改变任何东西。

最佳答案

您的中断处理程序的优先级高于压力程序。 所以压力程序的唯一影响就是阻止CPU休眠,这避免了CPU在中断到来时从休眠状态唤醒所需的延迟。

关于Linux 内核在压力下有更好的响应时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19793426/

相关文章:

linux - 从 SOAPUI 访问服务器 (PUTTY) 上的日志

css - 我应该使用哪个? (表现)

linux - 使用 Linux 字符设备驱动程序的 'write' 函数中的参数之一

linux - Amazon EC2 上的 zfs 安装问题 Ubuntu 12.04

linux - Mercurial 忽略 LInux 上的创建/修改日期更改

linux - 如何阻止 squid 中的用户通过邮件上传超过 10 mb 的文件

Linux 内核构建 : Perform "make localmodconfig" non-interactive way

jquery - IE9 中的动画在兼容模式下比标准模式下明显更快?

html - 一个http请求可以调用多个css文件吗?

assembly - 为什么switch_to使用push+jmp+ret来改变EIP,而不是直接jmp?