打造超省 CentOS 家用伺服器
11 |
身為一個程式魔人,在家裡跑個伺服器也是很合理滴~
最近玩了 ASP.NET Core、CentOS,驚喜發現 .NET Core 跨到 Linux 平台後硬體要求大降,1GB RAM 就跑得動,CPU 要求也不高,便有在家裡弄台伺服器跑家用小程式(像是救救菜英文)的衝動。在家裡架站的念頭想存在已久,但始終卡在耗電這關。依當年實測(參考:電器耗電知多少?),桌上型電腦耗電 110 瓦起跳(不含螢幕),筆電耗電約十分之一,但有鍵盤螢幕拿來當伺服器有點浪費,C/P 值不佳。此外,我不愛散熱風扇,長年 24 小時運轉,風扇要耗電有噪音會集塵易損壞,雖然都不是嚴重問題,但就跟手機螢幕刮痕一樣,其實不影響日常使用,純粹是奇蒙子問題。在 CPU 門檻降低之後,克服顧慮的理想選項出現了 - 無風扇的低耗電迷你電腦。
對迷你電腦的認識來自 Andrew 兩年前的文章 [敗家] 對岸的迷你 PC (i5-5250U), 當自用 server 的好選擇,在那之後我便有持續關注,經過一番評估,耗電只有 6W 的四核賽揚 - N3150 深得我心,其耗電跟電視機上盒相近,甚至不及一顆省電燈泡的用量,長期無風扇使用應沒問題。至於 N3150 迷你電腦,不含記憶體、SSD 及 WiFi,在淘寶台幣 2,600 元就能入手,最後我選了 4G RAM + 64G SSD + WiFi 組合,含集運費用約 4,600。這台在台灣網拍也找得到,但空機價就要 4000,自己淘寶還是便宜一些。註:迷你電腦沒有淘寶官方直送,走民間集運時要勾選特貨(包含電池、粉末),否則查到要罰錢。
Andrew 的敗家經驗踩到一些雷,我這回選套餐也是想避開前車之鑑,開箱插上電就能開機,還預先灌好簡體版 XP,好壞立曉,省事很多。檢查 CPU、記憶體、SSD、網路規格無誤,開始動手改造。
機體內部構造如下圖。1) 是 CPU 的鋁製散熱鰭片,上面加了一塊鋁塊,再與上蓋 2) 的導熱矽膠相貼,將熱導到鋁製底板。3) 是 SanDisk 64 GB SSD 4) 為 M.2 介面無線網卡 5) 是 4GB RAM,最大可擴充到 8GB,但應該不需再擴充。6) 附有 SATA 接頭,可再擴充 SATA 硬碟或 SSD。拆機是為了移除網卡,伺服器會走有線,二話不說把網卡連同天線座都拆了,省點電也少點輻射,還多兩個孔通風。
下一步是重灌作業系統,作業系統當然是 CentOS 囉~ 下載 CentOS Minimal ISO,用 Rufus 製作開機 USB 碟。沒做好功課,這裡試了幾次才成功,Partition scheme 要選 GPT、Target system 記得選 UEFI,不然 USB 碟雖然可開機,會卡在"/dev/root does not exist"。
順利裝好 CentOS,來做個壓測觀察耗電與溫度。作業系統我選擇最小安裝,需要一些額外手續將管理工具補齊:
- 最小安裝未含 ifconfig
yum install net-tools - mpstat 等工具
yum install sysstat 參考:Sysstat是一个非常方便的工具 详细介绍 - 比 top 更詳細的 CPU/RAM 觀察工具 - atop
yum install epel-release
yum install atop
參考:
在 CentOS 7 上加入 EPEL repository 來安裝 atop
Linux系统与程序监控工具atop教程
Atop Command Tutorial With Examples To Monitor Linux System Meterics - CPU 溫度監控
yum install lm_sensors
sensors-detect
sensors
參考: How to get CPU temperature information on a CentOS/RHEL 7 Linux - 壓力測試工具 stress
yum install stress
參考:在 CentOS 上使用 stress 模擬系統資源吃緊的狀況 (CPU/記憶體/磁碟 I/O)
一切就緒,開始壓力測試。無負載時 CPU 溫度約 41 - 42度,用 stress --vm 4 --vm-bytes 512M 開四條 Worker 各吃 512MB 記憶體,順利把四核的 CPU% 推到 95% 之上,CPU 溫度從 42 度上升到近 50 度,外殼 34 度,散熱鰭片 37 度。觀察十來分鐘,都沒超過 50 度,就此打住。評估散熱系統還有改善空間(換散熱膏、改銅製散熱器、加大導熱矽膠...),但依這溫度與設備價值,沒必要在上面多花功夫。
至於耗電量,無負載狀況耗電 6-7W,CPU 滿載時耗電不到 11W,若以 7W 經常用電 1000 度夏日費率級距計算,一天 24h 耗電 0.168 度,每月電費可控制在 30 元以下,還可以接受。
就醬,一台省錢又省電的家用伺服器誕生,可以寫些好玩的應用。 至於耐用性及可靠度如何,後面再跟大家報告,請持續觀注本部落格順手訂閱並按下旁邊的小鈴噹 。
Survey of mini PC to run CentOS as ASP.NET Core server.
Comments
# by 機房頹廢雜工
占美的n3150小主機嗎? 我已經讓他在線上不關機將近三年了
# by Jeffrey
to 機房頹廢雜工,正是,感謝經驗分享,讓我信心大增。
# by HiTeQ
關於 [CPU溫度] 有疑問 雖然,一般來說 CPU 負載很少會跑到 80% 以上, 可是,夏天室內溫度在沒開冷氣的情況下, 普遍來說應該是 35度 起跳跑不掉, 如此推測,屆時 CPU 運作溫度應該會比現在高一點, 會不會因此容易發生機器溫度過高的情況?
# by Jeffrey
to HiTeQ, 我認為不用擔心,主要有幾個考量點:1) 實測ASP.NET Core+Nginx耗用CPU極低,幾乎都在10%以下 2) 以本次CPU 滿載測試結果:氣溫25度核心50度外殼34度推算,即便室溫超過35,核心也很難超過60 3) N3150 承受上限為90度。由於CPU幾無滿載可能,就算滿載核心也難超越60,即使到了60也離CPU受極限有一大段距離。基於以上分析,我認為用來跑網站因溫度過高故障的機率微乎其微。
# by Deric
不怕Meltdown + Spectre?
# by Jeffrey
to Deric, 我手邊的PC筆電都是Intel CPU,怕也沒用,及時更新修補漏洞才是辦法。
# by Deric
他們不可能提供BIOS更新吧....
# by Jeffrey
to Deric, Meltdown + Spectre 要靠作業系統更新修補 https://support.microsoft.com/zh-tw/help/4073757/protect-your-windows-devices-against-spectre-meltdown 、 https://www.oschina.net/news/92159/centos-6-and-7-update
# by Samond
给Po主提供个好玩的小东西信息,斐讯N1,之前矿难的产物。由于一些原因,只有拼多多APP有售,大概70 RMB包邮。 ARMv8(S905X 28nm四核) 8G emmc 千兆网口,2个USB 2.0接口,2G Ram,可以刷armbian当server dlna、局域网共享等 安装entware后可以安装onmp一键脚本搭建web,也可以用entware安装Aria2 transmission 等离线下载工具。 当然,arm可以跑的东西它都可以跑,例如FRP内网穿透https://github.com/fatedier/frp ,DDNS动态更新https://github.com/NewFuture/DDNS ,代理工具ssr等。 ============================================================================= X86矿难的话,最近 可以搜索 暴风二期、星际蜗牛等,都是14nm低功耗平台的机器,都低于300RMB即可购得。
# by Samond
斐讯N1的相关教程包括刷Armbian、刷Openwrt、刷游戏机可以在这里查询 https://www.mivm.cn/phicomm-n1-linux/ https://www.right.com.cn/forum/forum.php?mod=forumdisplay&fid=158&filter=typeid&typeid=21 armbian可以在https://yadi.sk/d/pHxaRAs-tZiei 处下载最新版 S90X文件夹内的
# by May
這台可以裝 windows server 2019 嗎?謝謝。