樹莓派集群,若要達到與伺服器相同的性能,需要多少個樹莓派?

我想搭一套樹莓派集群,用來做網站的前端,網站採用php編寫,沒有資料庫。

我想知道,要想達到與一台E3伺服器(或者其他pc伺服器)相同的性能,需要多少個樹莓派,有人做過類似的測試嗎?


首先咱們用個比較理想化的招兒算算經濟賬,網上有人做過樹莓派和幾個桌面級cpu間的浮點性能比較測試(Linpack Benchmark Results),貼下結果:

PC:

Double Precision 100x100 compiled at 32 bits

Opt No opt
CPU MHz MFLOPS MFLOPS
Celeron C2 M 2000 1092.56 121.25
Core 2 Duo 1 CP 2400 1315.42 195.13
Phenom II 3000 1412.83 244.43
Core i7 930 **** 1764.75 428.00
Core i7 860 #### 2004.31 381.97
Core i7 3930K 2529.73 746.01
Core i7 4820K $$$1 2671.15 892.04
Core i7 4820K $$$2 2684.05 895.54
Core i7 3930K OC 3112.94 926.92

樹莓派:

Raspberry Pi DP SP
CPU MHz Linux MFLOPS MFLOPS

ARM 1176 700 3.6.11 42 58
ARM 1176 1000 3.6.11 68 88

Raspberry Pi 2

ARM V7A 900 3.18.5 120 156
ARM V7A 1000 3.18.5 134 175
gcc 4.8
ARM V7A 900 3.18.5 154 156
ARM V7A 1000 3.18.5 169 176

e3-1230的性能大概和i7-4820k差不多(這個粗略看的,如有不對請指正)。

那麼不考慮調度消耗,愚蠢的用除法算下,大概沒超頻的樹莓派要用63個,超到1g的要39個,樹莓派2 1g主頻最好情況也要15個。

至於整數性能,情況應該也差不多,因為沒有數據只能猜測一下。

一個e3-1230的cpu大概1400,攢出個能用的主機大概也就3k-3k3吧,而即使用性價比高點的樹莓派2 淘寶也差不多240一個,15個則要3k6,這個還不算15個pi需要的額外的電源、線纜、放系統用的sd卡等的花費算下來都要比e3的機器高。況且引入集群,部署、維護、調試都是麻煩事。

而且實際上,一個e3的單核性能是完全碾爆樹莓派的,這點無法依靠堆砌機器彌補,所以搭樹莓派集群實現功能基本也就是玩票的做法。


#include &
int main(int argc, char *argv[]) {
int array[10],size=sizeof(array)/sizeof(array[0]),c,i,j,temp;
for (c=0;c&<10000000;c++) { for (i=0;i&

RaspberryPi 2B的CPU是Broadcom(博通)的BCM2709,架構為armv7l,四核,頻率為900MHz.

同樣的C語言程序:

Raspbian(基於Debian ARM): 1千萬次冒泡排序,樹莓派2B(BCM2709)需要花費6.8秒.

Ubuntu(基於Debian x86): 1億次冒泡排序,i5-3230M需要花費6.3秒.

另一個測試從1到1億的累加求和結果也是如此.

也就是說,BCM2709(ARM)跟i5-3230M(x86)的單核計算性能相差十幾倍.

所以說拿ARM當計算壓力大的伺服器沒什麼優勢.

另一個測試,PHP讀寫Linux內存文件系統上的SQLite資料庫.

&exec($ddl);
} else {
$db = new PDO("sqlite:".$file);
}
$user_id = time();
$stmt = $db-&>prepare("INSERT INTO queue(user_id) VALUES(?)");
$stmt-&>execute(array($user_id));
echo "rowCount:".$stmt-&>rowCount()."
";
echo "lastInsertId:".$db-&>lastInsertId()."
";
$stmt = $db-&>query("SELECT * FROM queue WHERE id = ".$db-&>lastInsertId());
var_export($stmt-&>fetchAll(PDO::FETCH_ASSOC));

php -S 127.0.0.1:8080 -t ./www &>/dev/null 2&>1
ab -c100 -n5000 http://127.0.0.1:8080/

單進程PHP服務,ab並發100,Ubuntu(i5-3230M)上RPS達到2660,而樹莓派(BCM2709)上只有185. 同樣的邏輯,如果SQLite不在內存上而在SD卡上RPS會降到30,SD卡比內存慢了6倍,這時就是SD卡讀寫的瓶頸. 跟i5-3230M比,BCM2709慢了十幾倍,這時就是CPU的性能瓶頸.

所以說,高並發伺服器方面,ARM在x86面前也幾乎沒有任何優勢.

樹莓派這種ARM板子的優勢是提供小流量服務時比x86省電低功耗.

比如ARM它處理一個普通請求可能需要20毫秒,x86需要2毫秒,沒什麼並發的情況下,對用戶而言,根本感受不到區別.沒必要為了那2毫秒讓x86的風扇在那裡轉.


這個東西大部分時間是用來學習的,能以比較低的成本搭載一個真實的多節點環境,而不是跑那些虛擬機去模擬。通過一步步配置網路參數,更換硬體,調試軟體,解決bug從而構建一個完整的知識體系以及處理問題才是真諦,對吧 @楊慎懷


1. 不同的平台,其實沒有什麼可比性。就像你用屠龍刀和指甲刀作比較,是沒有意義的。

2. 如果單從浮點數上比較,真的是有點兒耍流氓了。另外,比較集群的性能用浮點數比較就結束了么?集群的最大特點是分散式運算的能力吧,如果一台主機去PK 有64片樹莓派組成的集群,那我們可不可以比較說你單台主機還有單點故障的隱患呢?分散式做運算也不是用一個php網頁測試就測的出來的,這種測試就不要拿出來誤導大家了。

3. 一個ARM級的單片機,就算是優化的再好,性能也不能和伺服器級的性能做比較,完全不是一個量級的。

4. 如果從成本算的話,你還要考慮的成本更多了,從電源管理,到網路,甚至到TF卡的性能,全部都有可能是制約樹莓派的瓶頸,樹莓派的網卡速度完全不能和伺服器的網卡速度PK,磁碟性能更是沒有可比性。樹莓派集群其實並不會幫你省太多的錢在硬體上,可能能省錢的部分就只有電費了。樹莓派5v2.5A是針對於Raspberry Pi 3 Model B型號的,對於這樣的平台,在平時正常使用不接入任何外接設備的情況下,電流消耗在0.7A到1A左右,但是一個集群64個,64x5= 320w,DL380 G7配置雙冗餘750W電源,滿配情況下是750w,標配350W左右,標配一般是電源最大功率的一半少一點,也就電費稍微省了一些,微不足道,如果算上集群使用的交換機,網線,支架,其實從成本上根本不能和單個伺服器比較的。

5.樹莓派集群,我覺得適合於一些想在家嘗試實驗或者學慣用途,有時候也可以作為低功耗的測試平台來用,如果作為商用的平台,路途還很遙遠,記住樹莓派的創始人創造它的初衷是為了讓兒童能夠使用樹莓派來學習編程~~

所以,別太較真了,想做集群,可以,玩兒玩兒就算了。如果太認真,那你就輸了~


如果是浮點計算 樹莓派必敗

如果是玩io 吞吐 樹莓派很有希望

我們用cubieboard 做過測試


樹莓派的乙太網口是用USB轉的,沒有千兆乙太網是樹莓派集群最大的瓶頸,你搭的越多,這個瓶頸就越明顯。


試試國內的香橙派,集成千兆網口、6核全志H5,售價不過128元

orangepi pc2 全志H5 開發板 四核64位 arm 超 raspberry 樹莓派

我不是在賣廣告


用樹莓派做好流量分發的話並發數會非常可觀

但要是玩計算,抱歉…


阻礙我搭建樹莓派集群最大的障礙是PoE……


學習之用,費用有限時可練手


樹莓派在設計上來說就不適合高性能環境的, 但是換個場景, 基於 arm 方案做伺服器還是很有前景的


樹莓派的性能並沒有它宣傳的那麼好,我自己的測試結果是:樹莓派運行一個phpinfo,都能感覺到明顯的延遲,而在我之前廢棄的安卓手機上,同樣512M內存,運行wordpress都十分流暢。

感覺cpu頻率和磁碟i/o是硬傷。tf卡這種東西,實在快不起來。


集群優勢在於處理大量運算的時候。單純的http請求是體現不出來集群的,反而會變得更慢。還不如一個樹莓派的速度。


比較浮點性能是耍流氓——又不是超級計算機

想達到同等性能,幾個都沒戲——rPi的IO性能太糟糕了


轉發

1. Raspberry Pi 2 B Cluster

原po在微博上叫 鄧草原 乾貨巨多


其實如果做集群,用阿里雲或騰訊雲做更好些,做完刪掉,也很便宜,而且更方便,騰訊雲更便宜一些。用樹莓派模擬硬體部署,除了少部分人,應該沒有太大意義。樹莓派似乎就是個給孩子的啟蒙玩具,由大人帶著玩,很合適。


舉個例子可以看出樹莓派的應用特點,這兩天正好準備增加一個視頻抓拍功能:

1、javacv掉ffmpeg抓一幀

2、轉為jpg保存到內存文件系統/dev/shm

3、通過rest介面顯示到web頁面

延遲要0.5秒。人臉檢測則要1.5秒。

也就是說,如果不想深度優化,而只想利用現有部件進行快速集成,視頻這樣的高計算資源開銷的處理在樹莓派上比較困難。

樹莓派如果不進行深度優化,可能主要還是用在低負載、低實時性,高集成性的場合,智能家居可以,但工控可能還不行


推薦閱讀:

IT 公司需要前後端都懂的人嗎?
PHP 開發中有效防禦 SQL 注入攻擊有哪些好方法?
同時學三門編程語言是什麼體驗?
你會在框架中用到orm嗎?
求助。php無限極分類。遞歸。怎麼數出來。每一個分類下面的小分類個數啊。希望有個demo?謝謝!?

TAG:PHP | 伺服器 | 網站 | 高並發 | 樹莓派RaspberryPi |