我有一个 Java 服务器运行在一个强大的服务器机器(许多内核、64Gb RAM 等)上,我在测试场景中向它提交了一些工作负载;我提交一个工作量,完全相同,每次测试连续 10 次。一个特定的工作负载,我观察到在 10 次运行的中间,完成所需的时间要长得多(即运行 1-2 - 10 秒、3 - 12 秒、4 - 25 秒、5 - 10 秒等)。在来自服务器的挂起时间的 yourkit 配置文件中,我发现在减速期间 IO、GC、网络或几乎任何东西都没有增加;没有特定方法会增加所花费时间的比例 - 每种方法都比较慢,大致成比例。我所看到的是平均 CPU 使用率下降(大概是因为相同的工作分散在更多时间),但内核CPU 使用率增加 - 从较快工作负载的 0-2% 到较慢工作负载的 9-12%。内核使用率从前一个工作负载的末尾缓慢爬升,稍慢,保持高位,然后在缓慢和下一个工作负载之间下降(有一个暂停)。我无法将此内核 CPU 映射到来自 yourkit 的任何调用。有谁知道这可能是什么?或者建议进一步的调查场所,以显示内核时间的去向?