perf 中断花费了太长时间但未安装 perf

Mar*_* B. 9 kernel-panic perf

我刚刚检查了我的,dmesg 因为我的服务器时不时地开始崩溃。在那里我读到以下行:

perf interrupt took too long (2528 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
Run Code Online (Sandbox Code Playgroud)

这出现了几次。
我记得 perf 是一个性能分析工具,但不记得安装了它。所以我检查了:

~$ dpkg -l *perf*
dpkg-query: no packages found matching *perf*
Run Code Online (Sandbox Code Playgroud)

我的问题:

  • 这是风暴即将来临的征兆吗?因为这一行出现了几次,然后有以rcu_sched detected stalls
  • 这些是从哪里来的?

Ort*_*kni 5

该消息来自Linux内核。更准确地说,它来自perf_duration functionlinux/kernel/events/core.c

static void perf_duration_warn(struct irq_work *w)
{
    printk_ratelimited(KERN_INFO
        "perf: interrupt took too long (%lld > %lld), lowering "
        "kernel.perf_event_max_sample_rate to %d\n",
        __report_avg, __report_allowed,
        sysctl_perf_event_sample_rate);
}
Run Code Online (Sandbox Code Playgroud)

我不知道你的确切意思是:

这是暴风雨即将来临的征兆吗?

但我怀疑您的一台设备有问题。

PS:如果你仔细阅读,你会发现代码中的消息是,perf: interrupt took too long但你的消息是perf interrupt took too long。冒号是在内核版本 4.6 中添加的。