Cpu

哪裡可以找到自啟動以來執行的上下文切換的總數?

  • January 21, 2021

我發現一個程序執行的上下文切換的數量可以在/proc/$$/status. 我一直在嘗試查找自啟動以來執行的上下文切換的總數。

我試著做grep context * | grep switchwhile in /proc,並得到以下輸出

...
kallsyms:0000000000000000 t xen_end_context_switch
kallsyms:0000000000000000 T paravirt_start_context_switch
kallsyms:0000000000000000 T paravirt_end_context_switch
kallsyms:0000000000000000 T nr_context_switches
kallsyms:0000000000000000 T rcu_note_context_switch
kallsyms:0000000000000000 r __ksymtab_rcu_note_context_switch
kallsyms:0000000000000000 r __kstrtab_rcu_note_context_switch
kallsyms:0000000000000000 D event_context_switch
kallsyms:0000000000000000 D event_class_ftrace_context_switch
kallsyms:0000000000000000 t ftrace_define_fields_context_switch
kallsyms:0000000000000000 T __event_context_switch
...

打開時無法理解此文件。我也試過grep -s -r context | grep switch了,但似乎花費了太多時間。找不到 的man條目kallsyms

那麼,我在哪裡可以找到自啟動以來進行的上下文切換的總數,以及我可以自己做些什麼來找到它?

每個處理器執行的切換次數可以在 中找到proc/sched_debug

的輸出grep nr_switches *

...
sched_debug:  .nr_switches                   : 2652089
sched_debug:  .nr_switches                   : 2677660
sched_debug:  .nr_switches                   : 2778421
sched_debug:  .nr_switches                   : 2467321
sched_debug:  .nr_switches                   : 2527589
sched_debug:  .nr_switches                   : 2511760
sched_debug:  .nr_switches                   : 2528093
sched_debug:  .nr_switches                   : 2584352
sched_debug:  .nr_switches                   : 2570571
sched_debug:  .nr_switches                   : 2678180
sched_debug:  .nr_switches                   : 2381052
sched_debug:  .nr_switches                   : 2535081
...

列印的此類行數顯然取決於您機器上的邏輯核心數。

引用自:https://unix.stackexchange.com/questions/630017