시작 이후 수행된 총 컨텍스트 전환 수는 어디에서 확인할 수 있나요?

시작 이후 수행된 총 컨텍스트 전환 수는 어디에서 확인할 수 있나요?

프로세스가 수행한 컨텍스트 전환 횟수는 /proc/$$/status. 저는 시작 이후 수행된 컨텍스트 전환의 총 횟수를 찾으려고 노력해 왔습니다.

grep context * | grep switch나는 동안 실행을 시도했고 /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.

그렇다면 부팅 이후 발생한 전체 컨텍스트 전환 수는 어디에서 확인할 수 있으며, 이를 직접 찾으려면 어떻게 해야 할까요?

답변1

각 프로세서가 수행하는 스위치 수는 에서 확인할 수 있습니다 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
...

인쇄되는 줄 수는 분명히 컴퓨터의 논리 코어 수에 따라 달라집니다.

관련 정보