我写了一个简单的udp_recv测试演示,我发现了一个奇怪的事情
如果我将CPU亲和力设置为cpu0,则cpu使用率为5%,但在设置与其他cpu的亲和性后,cpu使用率增加到9%~12%,特别设置为cpu20,cpu使用率超过25%!
我perf -e cpu-lock top -p xxxx用来检查火锅功能.
当我设置亲和力时cpu0,cpu使用率是5%,我得到了这个:
Samples: 20K of event 'cpu-clock', Event count (approx.): 742033834
20.41% [kernel] [k] fget_light
11.84% [kernel] [k] copy_user_enhanced_fast_string
8.63% [kernel] [k] sock_recvmsg
6.49% [kernel] [k] _raw_spin_unlock_irqrestore
5.81% [kernel] [k] aa_revalidate_sk
3.93% [kernel] [k] SYSC_recvfrom
3.85% [kernel] [k] sockfd_lookup_light
3.47% [kernel] [k] udp_recvmsg
Run Code Online (Sandbox Code Playgroud)
然后我设置CPU亲和力cpu5,CPU使用率是10%,我得到了这个:
Samples: 1K of event 'cpu-clock', Event count (approx.): 286637653
13.33% [kernel] [k] copy_user_enhanced_fast_string
10.51% [kernel] [k] _raw_spin_unlock_irqrestore
7.02% [kernel] …Run Code Online (Sandbox Code Playgroud)