我刚刚开始研究多核架构,并有一个问题。我有一个测试应用程序,它将线程数作为参数,创建这些线程,设置亲和性(在sched_setaffinity的帮助下),然后在每个线程任务中执行一个繁忙循环(while (1))。我使用的是Fedora 19 VM (3.11.9-200.fc19.x86_64)和4个处理器。现在,当我创建4个线程,将它们的亲和性设置为4个不同的处理器时,CPU利用率并不均匀。就像,
PID USER PR NI VIRT RES SHR S%CPU%MEM TIME+命令
2113根20 000 00 R 92.90 0.000 18:22.91多核重测
2114根20 000 00 R 92.23 0.000 18:07.29多核重测
2112根20 000 00 R 49.28 0.000 9:41.48多核重测
2111root 20 000 00 R 48.61 0.000 9:42.17多核重测
2110root 20 0 0 0 Z 0.000 0.000 0:00.00多核重测
谁能给我一个解释,为什么第三个和第四个内核没有前两个那么忙,虽然它们有相同的线程功能?
这真的会有很大帮助。
谢谢
发布于 2014-04-09 20:43:41
对于这种行为,我至少能想到几个可能的原因:
https://stackoverflow.com/questions/22961396
复制相似问题