0. 前言
你好,我是悅創。
今天受邀測評 Orange Pi AIpro開發板,我將準備用這個測試簡單的代碼來看看這塊開發版的性能體驗。
分別從:Sysbench、Stress-ng、PyPerformance、RPi.GPIO Benchmark、Geekbench 等方面來測試和分析結果。
下面就是我收到的開發板子:
香橙派 AIpro 啟動后支持用戶通過遠程登錄模式或者本機顯示模式登錄開發板推理任務,此處可根據兩種模式所需的配件,自行選擇其中一種模式準備相關硬件即可。
1. 設備介紹
2. 使用 VNC
- 安裝
sudo apt update
sudo apt install xfce4 xfce4-goodies
sudo apt install tightvncserver
安裝語言包,不然會出錯 Fatal server error:could not open default font 'fixed’
sudo apt-get install xfonts-base
- 配置密碼
vncserver
aiyc1234
- 配置開機啟動
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
vim ~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
sudo chmod +x ~/.vnc/xstartup
-
啟動和關閉
- 啟動
vncserver
- 關閉
vncserver -kill :1 vncserver -kill :2
-
連接
直接使用 VNC 軟件連接即可。
- 問題:focal vnc 灰屏
使用 ubuntu focal,vnc 登錄灰屏幕。原因是 focal 默認圖形界面是 gnome,和 ubuntu18、ubuntu16 配置不同。
解決辦法:
sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
配置 vnc:
vim ~/.vnc/xstartup
添加以下內容:
#!/bin/bash
export $(dbus-launch) # 主要是這句
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGERgnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &# [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
# [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresourcesxsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session &
- 重啟 vnc
vncserver -kill :1
vncserver -kill :2
vncserver :1 -geometry 1536x864
3. 開始測試
3.1 Sysbench
3.1.1 簡介
- 雖然 Sysbench 不是一個 Python 項目,但它是一個非常流行的多線程測試工具,可以測試 CPU、內存、文件 I/O 和數據庫性能。
- 安裝命令:
sudo apt-get install sysbench
- 使用例子:
sysbench cpu --cpu-max-prime=20000 run
來測試CPU性能。
3.1.2 實際測試
- 安裝命令:
sudo apt-get update
sudo apt-get install sysbench
- 測試 CPU 性能:
sysbench cpu --cpu-max-prime=20000 run
- 結果觀察:
- 注意觀察輸出中的
total time
,events per second
和min/avg/max latency
。這些指標顯示了 CPU 處理能力和響應時間。
我的實際輸出如下:
(base) HwHiAiUser@orangepiaipro:~$ sysbench cpu --cpu-max-prime=20000 run
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)Running the test with following options:
Number of threads: 1
Initializing random number generator from current timePrime numbers limit: 20000Initializing worker threads...Threads started!CPU speed:events per second: 817.07General statistics:total time: 10.0005stotal number of events: 8175Latency (ms):min: 1.22avg: 1.22max: 1.8595th percentile: 1.23sum: 9998.12Threads fairness:events (avg/stddev): 8175.0000/0.00execution time (avg/stddev): 9.9981/0.00
操作截圖:
3.1.3 評價
我們可以提取一些關鍵信息來評估您的香橙派(Orange Pi AI Pro)的 CPU 性能:
-
測試配置:
- 線程數量:1
- 質數上限:20000
- 測試使用單線程計算到 20000 的質數,這是一個典型的 CPU 密集型任務,用來評估處理器的計算能力。
-
性能結果:
- 事件每秒:817.07
- 這個數值表示 CPU 每秒可以處理的事件數量,也就是每秒完成了 817 次計算任務。這個數值越高,表示 CPU 的處理速度越快。
- 總時間:10.0005 秒
- 測試運行了總共 10 秒,這是 Sysbench 默認的測試時間。
- 總事件數量:8175
- 在 10 秒內,系統完成了 8175 次計算任務。
- 事件每秒:817.07
-
延遲(Latency):
- 最小延遲:1.22毫秒
- 平均延遲:1.22毫秒
- 最大延遲:1.85毫秒
- 95th 百分位延遲:1.23毫秒
- 延遲指的是完成一次計算所需要的時間。這里的延遲非常低,說明 CPU 響應速度快,能夠迅速處理計算任務。最大延遲略高,可能是由于偶發的系統調度或其他非 CPU 密集型進程的干擾。
-
線程公平性:
- 平均事件數量和執行時間的標準差都是 0,這表明在單線程測試中,CPU 的表現非常一致,沒有顯著的波動。
評價:
- 根據測試結果,OrangePi 設備在處理單線程計算密集型任務時表現良好,具有快速的處理速度和低延遲。這表明對于不涉及高并發的任務,OrangePi 設備能夠提供穩定的性能。
- 如果應用場景包括更多并發處理或者更高的計算需求,我建議進行多線程的 Sysbench 測試,這可以提供更多關于 CPU 在高負載下表現的信息。「有需要測試方法的,評論區交流」
根據這些結果,如果我們使用場景主要涉及單線程計算任務,這款設備應該能夠滿足基本需求。對于更復雜或需求更高的場景,考慮進行更多樣化的測試以全面評估性能。
3.2 Stress-ng
3.2.1 簡介
- Stress-ng 同樣不是 Python 工具,但它能夠對系統進行壓力測試,涵蓋超過 240 種測試方式。它可以用來測試 CPU、內存以及其他系統組件。
- 安裝命令:
sudo apt install stress-ng
- 使用例子:
stress-ng --cpu 4 --io 2 --vm 2 --vm-bytes 128M --timeout 10s
來進行綜合壓力測試。
3.2.2 實際測試
- 安裝命令:
sudo apt install stress-ng
- 運行綜合壓力測試:
stress-ng --cpu 4 --io 2 --vm 2 --vm-bytes 128M --timeout 10s
- 結果觀察:
- 結果會顯示每種資源的測試統計,包括處理速度和錯誤數。注意系統的穩定性和是否有過熱或重啟的現象。
我的實際輸出如下:
# [!code focus:5]
(base) HwHiAiUser@orangepiaipro:~$ stress-ng --cpu 4 --io 2 --vm 2 --vm-bytes 128M --timeout 10s
stress-ng: info: [11400] setting to a 10 second run per stressor
stress-ng: info: [11400] dispatching hogs: 4 cpu, 2 io, 2 vm
stress-ng: info: [11400] successful run completed in 10.20s
(base) HwHiAiUser@orangepiaipro:~$ stress-ng --cpu 4 --io 2 --vm 2 --vm-bytes 128M --timeout 10s
stress-ng: info: [11417] setting to a 10 second run per stressor
stress-ng: info: [11417] dispatching hogs: 4 cpu, 2 io, 2 vm
stress-ng: info: [11417] successful run completed in 10.14s
(base) HwHiAiUser@orangepiaipro:~$ stress-ng --cpu 4 --io 2 --vm 2 --vm-bytes 128M --timeout 10s
stress-ng: info: [11430] setting to a 10 second run per stressor
stress-ng: info: [11430] dispatching hogs: 4 cpu, 2 io, 2 vm
stress-ng: info: [11430] successful run completed in 10.15s
(base) HwHiAiUser@orangepiaipro:~$
操作截圖:
3.2.3 評價
上面我運行了 stress-ng
測試,是在同時對香橙派的 CPU、IO(輸入/輸出)和虛擬內存(VM)進行壓力測試。
- 測試參數解析:
- CPU: 使用了 4 個壓力測試線程,這意味著同時啟動了 4 個線程來盡可能多地占用 CPU 資源。
- IO: 啟動了 2 個線程進行磁盤 I/O 操作,這可能包括對文件的讀寫。
- VM: 啟動了 2 個線程,每個線程使用 128MB 的內存來執行內存壓力測試。
- 測試結果:
- 所有三次測試均在約 10 秒后完成,顯示為
10.20s
,10.14s
, 和10.15s
。這表明香橙派在持續的負載下表現出相對穩定的性能。
-
性能評價:
-
穩定性:
香橙派在三次測試中表現出良好的穩定性。持續時間的微小差異(最長10.20秒,最短10.14秒)表明即使在較高負載下,性能也保持一致。
-
響應時間:
完成時間接近設定的10秒,說明系統能夠在預定時間內有效管理和完成任務。完成時間略長于10秒可能是由于系統調度或者在執行結束時清理資源所需的額外時間。
-
系統負載承受能力:
通過此測試,我們可以看出,香橙派能夠同時處理較大的 CPU 和內存負載,以及進行 I/O 操作,而沒有出現崩潰或重大錯誤,這是對其多任務處理能力的一個積極指標。
-
看到這里你肯定在想更大的負載測試命令怎么寫呢?我這里也為你提供了一下:
stress-ng --cpu 8 --io 4 --vm 4 --vm-bytes 256M --hdd 2 --timeout 60s
- 參數解釋:
--cpu 8
: 使用 8 個線程執行 CPU 壓力測試,這會更加強烈地測試 CPU 的處理能力。--io 4
: 使用 4 個線程進行 IO 操作,增加對文件系統的壓力。--vm 4 --vm-bytes 256M
: 每個 VM 線程嘗試使用 256MB 內存,共 1GB 內存,增加內存使用和管理的壓力。--hdd 2
: 進行兩個磁盤寫入線程,以測試磁盤的寫入速度和穩定性。--timeout 60s
: 設置測試運行時間為 60 秒,較長的測試時間可以更全面地評估香橙派(OrangePi)在持續高負載下的性能表現。
- 參數解釋:
-
-
建議:
-
監控溫度和功耗、穩定性: 在進行此類測試時,建議監控設備的溫度和電源使用情況,以確保沒有過熱或電源不足的問題發生。并且在增加測試負載的時候,可能會導致香橙派溫度升高。我們需要確保良好的散熱措施,并密切觀察是否有性能下降或系統不穩定的跡象。
我在測試的時候,排插借口部分,就有些過熱。不僅僅要注意用電安全,還要注意運行狀況等。機身因為有散熱風扇的存在,所以整體溫度還好,但是如果再高估計就不行了。
-
長時間運行測試: 考慮長時間運行測試(如數小時),觀察在長期高負載下香橙派的表現,檢查是否有性能下降或穩定性問題。
-
電源要求:確保使用足夠的電源供應,因為高負載可能增加電力消耗。
-
數據安全:高強度的磁盤寫入測試可能對 SD 卡壽命產生影響,如果是在生產環境中使用,需要謹慎進行。
-
比較不同配置: 如果可能,試著改變壓力測試的配置(如增加內存用量,增加CPU或IO壓力測試的線程數),這可以幫助了解在不同負載下設備的性能極限。
-
總的來說香橙派在這項基準測試中表現良好,沒有表現出性能問題,這表明香橙派可以處理相當復雜的任務和壓力。如果我的粉絲有興趣,可以查看你們自己的系統日志和硬件監控數據。
3.3 PyPerformance
3.3.1 簡介
PyPerformance 是一個 Python 基準測試套件,用于測量 Python 實現的性能。雖然它主要是測試 Python 解釋器的性能,但也間接反映了運行它的硬件性能。
安裝命令:python3 -m pip install pyperformance
運行測試:pyperformance run -b [benchmark]
3.3.2 實際測試
- 安裝命令:
python3 -m pip install pyperformance
- 運行 Python 性能測試:
pyperformance run --benchmarks all
- 結果觀察:
測試完成后,將生成一份報告,顯示不同測試的運行時間和比較。這有助于評估 Python 環境在當前硬件上的執行效率。
這個測試需要非常久,需要你有耐心。我測試了將近 3h 左右(預估),我一開始也沒想到會這么久。
[74/74] xml_etree...
# /home/HwHiAiUser/venv/cpython3.9-bafaf170d952-compat-af96b9431081/bin/python -u /home/HwHiAiUser/.local/lib/python3.9/site-packages/pyperformance/data-files/benchmarks/bm_xml_etree/run_benchmark.py --output /tmp/tmpl3ifzqoj --inherit-environ PYPERFORMANCE_RUNID
.....................
xml_etree_parse: Mean +- std dev: 575 ms +- 4 ms
.....................
xml_etree_iterparse: Mean +- std dev: 460 ms +- 5 ms
.....................
xml_etree_generate: Mean +- std dev: 421 ms +- 6 ms
.....................
xml_etree_process: Mean +- std dev: 340 ms +- 9 ms
# [!code focus:50]
Performance version: 1.11.0
Report on Linux-5.10.0+-aarch64-with-glibc2.35
Number of logical CPUs: 4
Start date: 2024-06-04 19:12:13.216928
End date: 2024-06-04 22:09:04.695813### 2to3 ###
Mean +- std dev: 1.34 sec +- 0.00 sec### async_generators ###
Mean +- std dev: 1.52 sec +- 0.02 sec### async_tree_none ###
Mean +- std dev: 3.18 sec +- 0.16 sec### async_tree_cpu_io_mixed ###
Mean +- std dev: 4.32 sec +- 0.16 sec...
...
...### unpickle_list ###
Mean +- std dev: 15.0 us +- 0.1 us### unpickle_pure_python ###
Mean +- std dev: 1.53 ms +- 0.01 ms### xml_etree_parse ###
Mean +- std dev: 575 ms +- 4 ms### xml_etree_iterparse ###
Mean +- std dev: 460 ms +- 5 ms### xml_etree_generate ###
Mean +- std dev: 421 ms +- 6 ms### xml_etree_process ###
Mean +- std dev: 340 ms +- 9 ms
3.3.3 評價
從上面的 PyPerformance 測試結果中,我們可以觀察到一系列不同類型的 Python 任務及其執行時間,這有助于我們評估香橙派「OrangePi AI Pro」的性能特征。這些測試結果覆蓋了從 I/O 操作到 CPU 密集型任務的各種場景,以及不同的 Python 功能,如異步編程、數據處理和加密等。
-
總體分析:
-
CPU 密集型任務:
- 例如,
nbody
,fannkuch
,pidigits
,這些涉及大量數學計算和算法邏輯,執行時間在幾百毫秒到幾秒鐘之間。香橙派在處理這些任務時的表現中等偏上,表明其對于教育和一般編程任務足夠強大。
- 例如,
-
內存和數據處理:
- 測試如
json_dumps
,pickle
,unpickle
顯示較低的延遲(微秒級到毫秒級),這說明香橙派處理較小數據量的序列化和反序列化操作是高效的。
- 測試如
-
I/O操作:
asyncio_tcp
,asyncio_tcp_ssl
,asyncio_websockets
展示了香橙派處理網絡 I/O 的能力。SSL連接較普通TCP連接耗時更長,這可能是由于加密解密操作增加了額外的計算負擔。
-
異步編程:
- 測試結果如
async_generators
,async_tree_none
,async_tree_cpu_io_mixed
表示在處理異步編程時,香橙派可以有效地處理并發任務,盡管在混合型任務中耗時較長。
- 測試結果如
-
文件和文本處理:
chameleon
,genshi_text
,html5lib
等測試涉及HTML和文本的解析,執行速度較快,顯示香橙派能夠有效處理模板渲染和HTML解析任務。
-
科學計算和數值分析:
scimark
系列(如scimark_fft
,scimark_lu
等)反映出香橙派在執行科學計算基準測試時的表現。這些測試通常需要較好的CPU和內存性能,結果顯示香橙派在此類應用中的適用性較為有限,更適合教育和入門級科學項目。
-
-
結論:
香橙派在我上面測試中表現出了處理各種任務的能力,尤其是在 I/O 操作、輕量級數據處理和一些網絡通信任務中表現良好。對于更復雜的科學計算和高密度的 CPU 任務,香橙派的性能可能會受限,但仍足以支持教育和一般編程用途。
目前測試看來,對于預算有限且空間受限的環境,香橙派依然是一個極具價值的選擇。