在測試鬥地主程式的時候,發現單核cpu的執行時間總比多核cpu執行時間塊,用taskset命令一看,果然是乙個程序執行在兩個cpu上。
score of team 1
is : -1154
score of team 2
is : 148
score of team 3
is : 1006
real 4m12.768s
user 0m12.307s
sys 0m2.703s
[root@ying ~]# ps -aux | grep dou
root 30958
18.0
0.415508
4112 pts/0 s+ 09:14
0:00 ./doudizhu_platform
root 30960
0.00.0
9028
660 pts/1 r+ 09:14
0:00 grep --color=auto dou
[root@ying ~]# taskset -p 30958
pid 30958
's current affinity mask: 1
score of team 1
is : -1100
score of team 2
is : 568
score of team 3
is : 532
real 6m41.709s
user 0m7.428s
sys 0m2.776s
.93.13:~# ps -aux | grep dou
root 2314
2.50.9
177940
161356 pts/1 s+ 09:06
0:09 ./doudizhu_platform
root 26076
0.00.0
12180
704 pts/2 s+ 09:13
0:00 grep --color=auto dou
.93.13:~# taskset -p 2314
pid 2314
's current affinity mask: ff
.93.13:~# taskset -p 2314
pid 2314
's current affinity mask: ff
最後在將乙個程序固定到cpu上貌似沒啥效果,麼有找到原因。不知道和單核機器和多核機器的gcc版本有沒有關係
score of team 1
is : -182
score of team 2
is : 97
score of team 3
is : 85
real 6m44.039s
user 0m7.668s
sys 0m2.568s
.93.13:~# ps -aux | grep dou
root 16842
2.30.0
19628
2988 pts/1 s+ 09:29
0:00 ./doudizhu_platform
root 22093
0.00.0
12176
704 pts/2 s+ 09:29
0:00 grep --color=auto dou
.93.13:~# taskset -pc 0 16842
pid 16842
's current affinity list: 0-7
pid 16842
's new affinity list: 0
.93.13:~# taskset -p 16842
pid 16842
's current affinity mask: 1
但是嘗試了乙個很有意思的,將乙個程序直接全部放在cpu 1, 結果泥煤的**了
cpu1快爆了,不過cpu0倒是降下來一點
如何將網絡卡中斷繫結到特定cpu
在cpu單核的時代,網絡卡收發包處理都會有乙個cpu負責,但隨著多核cpu的出現,還按照以前網絡卡中斷有乙個cpu處理的話,明顯浪費cpu資源,基於此出現了網絡卡中斷繫結 特定cpu的技術,目的當然是為了提高cpu利用率,將網絡卡中斷均衡的分配到各個cpu.首先,簡單說一下中斷,什麼是中斷呢?就是各...
如何將程序 執行緒繫結到固定的CPU核
什麼是cpu affinity affinity 是程序的乙個屬性,這個屬性指明了程序排程器能夠把這個程序排程到哪些 cpu上。在linux 中,我們可以利用 cpu affinity 把乙個或多個程序繫結到乙個或多個 cpu上。cpu affinity分為2 種,soft affinity 和ha...
繫結執行緒到特定CPU處理器
參考這篇文章 如下 define gnu source include include include include include include void myfun void arg cpu zero get if pthread getaffinity np pthread self si...