cmm03 刀片 和 cmm02刀片的 cpu的型號是一樣的:
2顆6核的物理CPU,開啟了超線程
CPU型號: Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
cmm03和cmm02的操作系統是一樣的,都是SLC 6.6:
[zengtx@cmm02node02 ~]$lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: ScientificCERNSLC Description: Scientific Linux CERN SLC release 6.6 (Carbon) Release: 6.6 Codename: Carbon
[zengtx@cmm02node02 ~]$uname -a
Linux cmm02node02 2.6.32-504.el6.x86_64 #1 SMP Tue Oct 14 19:40:41 CEST 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@cmm03node01 ~]# lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: ScientificCERNSLC
Description: Scientific Linux CERN SLC release 6.6 (Carbon)
Release: 6.6
Codename: Carbon
[root@cmm03node01 ~]# uname -a
Linux cmm03node01 2.6.32-504.el6.x86_64 #1 SMP Tue Oct 14 19:40:41 CEST 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@cmm03node01 ~]#
cmm03上有10Gb, 56Gb 兩張網卡, cmm02上有40Gb的網卡。
用iperf測試三種網卡的性能,由於2KB包長是最后江門取數的典型包長,下面的三組測試都是在2KB包長下,不同線程數時的帶寬。
10Gb的網卡。在4個線程時,網卡性能達到最大值9.4Gb/s。
56Gb的網卡,在8個線程時達到27.62Gb/s,沒有達到網卡的最大帶寬,然后帶寬隨着線程數的增加逐漸降低。
40Gb的網卡,在8個線程時帶寬達到36.4Gb/s,線程數繼續增加時,帶寬逐漸降低。
上面三組測試結果能得出以下結論:
1. 同樣的CPU,對不同的網卡,10Gb的網卡達到了極限性能,CPU有余;56Gb的網卡未達到極限性能,CPU不夠用;40Gb的網卡在現有CPU能力下能到36.4Gb/s,接近網卡的最大性能。
2. 線程數超過8以后,多線程的開銷增加會導致帶寬的降低。
由以上的結論可知:
1. 應該將ROS布置在cmm02刀片上,能發揮網卡和CPU的最大能力,得到較好的性能;
2. 若采用單線程+select的接收數據的模型, 單個節點上ROS布置的個數為8較為合適(這是不考慮除了ROS線程以外的其他線程的情況下),考慮到還有發送數據到SFI的線程(還有其他線程嗎?), 單個節點上布置的ROS個數應該小於8。