linux中CFS调度下的响应时间

当我linux有多个任务,采用CFS调度时,如何求一个任务在受其他任务影响下的响应时间?

基于Monster 组和GPT的调写:
可以使用以下步骤:

  • 让该任务和其他任务同时运行,让它们在 CFS 调度器上竞争 CPU 时间。
  • 对于该任务,记录下它开始执行时的时间戳。
  • 等到该任务执行完毕,记录下它结束执行时的时间戳。
  • 计算该任务的响应时间,即结束时间减去开始时间。如果该任务被其他任务抢占了 CPU 时间,则需要考虑这部分时间。
  • 如果你需要求该任务在受多个其他任务影响下的响应时间,可以将以上步骤重复多次,每次让不同的一组任务同时运行。这样可以得到多个响应时间,从而更加全面地评估该任务的响应时间。
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 看下这篇博客,也许你就懂了,链接:为什么Linux CFS调度器没有带来惊艳的碾压效果
  • 除此之外, 这篇博客: Linux优先级时间片调度中的 Linux上的CFS算法主要有以下步骤 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    1. 计算每个进程的vruntime,通过update_curr()函数更新进程的vruntime。
    2. 选择具有最小vruntime的进程投入运行。
    3. 进程运行完后,更新进程的vruntime,转入步骤2.

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^