Reviews NanoPi R3S เราต์เตอร์บอร์ดอเนกประสงค์รุ่นเล็ก ประสิทธิภาพเยี่ยมตัวเริ่มต้นกับราคาน่ารัก
Table of contents
Intro
สวัสดีครับ บทความนี้เป็นการรีวิว NanoPi R3S ที่มีผู้ฝากสั่งซื้อเพื่อเอามาใช้ทำ VPN Server
สิ่งที่น่าสนใจกับเจ้า NanoPi R3S คือขนาดและราคา โดยมีราคาประมาณ 1,300 - 1,500 บาท ที่มาพร้อม CPU A55 (RK3566) ที่ส่วนตัวมองว่าเป็น CPU รุ่นที่ดีตัวนึง เนื่องจากนอกจะได้ A55 แล้ว แถมยังเป็นรุ่นที่ไม่ได้ร้อนมาก และไม่ช้าเกินไปรองรับการรัน App ต่าง ๆ ที่สถาปัตยกรรม ARMv8 (ARM64) เพราะถ้าต่ำกว่านี้ก็จะเป็น ARMv7 (32-bit) หรือสูงกว่านี้ก็จะร้อนเกินไป และยังให้ประสิทธิภาพเพียงพอสำหรับใช้งานขนาดเล็กและเป็นตัวเริ่มต้นที่ดีมาก
ที่จริงส่วนตัวใช้ NanoPi R5S อยู่แล้ว (ไม่ได้รีวิวไว้) ซึ่ง NanoPi R3S ที่ได้รับมาก็มีรายละเอียดของ specs ที่แตกต่างจาก NanoPi R5S พอสมควร อีกทั้งราคาก็ต่างกันพอสมควรด้วยโดย NanoPi R3S ก็ถือเป็น SBC ตัวเล็กเริ่มต้นราคาถูกที่น่าสนใจสำหรับผู้ที่สนใจ
What's SBC ?
NanoPi R3S คือ Single Board Computer (SBC) ที่มีขนาดเล็กพอ ๆ กับขนาดของบัตรเครดิต (ที่เรียกว่า Ultra-small form factor)
SBC หรือ Single Board Computer คือคอมพิวเตอร์ขนาดเล็กที่รวมทุกองค์ประกอบสำคัญของคอมพิวเตอร์ไว้ในบอร์ดเดียว เช่น CPU, RAM, Storage และพอร์ตการเชื่อมต่อต่าง ๆ โดยมีการออกแบบให้มีขนาดกะทัดรัด เหมาะสำหรับการใช้งานเฉพาะทาง เช่น IoT, เซิร์ฟเวอร์ขนาดเล็ก หรือระบบอัตโนมัติในบ้าน
NanoPi R3S เอามาทำอะไรได้บ้าง ?
NanoPi R3S จริง ๆ เขาตั้งใจออกแบบมาเป็นเราต์เตอร์บอร์ด โดยใช้ชิป Rockchip RK3566 ซึ่งมีประสิทธิภาพดีและใช้พลังงานต่ำ สามารถนำไปใช้ในหลาย ๆ งานได้ ขึ้นอยู่กับความต้องการ
การประยุกต์ใช้งานที่เหมาะกับ NanoPi R3S:
- ✅ เราต์เตอร์หลัก / Firewall – ใช้ OpenWrt หรือ FriendlyWrt เพื่อควบคุมอินเทอร์เน็ต, บล็อกโฆษณา (AdGuard Home), VPN, QoS, Load Balancing ฯลฯ
- ✅ WireGuard / OpenVPN Server – ตั้ง VPN ส่วนตัวให้ปลอดภัยเวลาออกนอกบ้าน
- ✅ NAS (Network Attached Storage) – แชร์ไฟล์ผ่าน Samba, FTP, หรือใช้ Nextcloud
- ✅ AdBlock / DNS Server – ตั้งค่า Pi-hole หรือ AdGuard Home ตัดโฆษณาทั้งเครือข่าย
- ✅ Proxy Server – ใช้เป็น SOCKS5 หรือ HTTP Proxy เพื่อปรับแต่งทราฟฟิก
- ✅ Home Automation Hub – รัน Home Assistant ควบคุมอุปกรณ์ IoT ในบ้าน
- ✅ Docker Server เล็กๆ – รันคอนเทนเนอร์สำหรับแอปต่างๆ เช่น Unbound, Nginx, MariaDB
NanoPi R3S Hardware specs
Specs - NanoPi R3S Hardware specs
- CPU: Rockchip RK3566, Quad-core Cortex-A55
- RAM: 2GB LPDDR4X
- Ethernet: one Native Gigabit Ethernet, and one PCIe Gigabit Ethernet
- USB3.0 Host: Type-A x1
- Storage: MicroSD Slot x 1, and on-board 32GB eMMC
- Debug Serial Port: 3.3V TTL, 3-pin 2.54mm pitch connector, 1500000 bauds
- LED: LED x 3
- RTC: One low-power RTC, support backup battery input
- Buttons: 1x User BUtton, 1x MASK button for eMMC flashing via USB-C
- Display: 1x MIPI-DSI 30-Pin FPC connector
- PCB Size: 57 x 57 x 1.2 mm
- Power supply: USB-C 5V/2A input
- Temperature measuring range: 0℃ to 80℃
- OS/Software: U-boot,Ubuntu-Core,Debian-Core,OpenMediaVault, OpenWrt
Specs - OS
ระบบปฏิบัติการ (OS) ที่ใช้ได้กับ NanoPi R3S แบ่งออกได้ 2 ประเภท คือ Official image และ Unofficial image
โดย Official image คือ ระบบปฏิบัติการที่ได้รับการปรับแต่งซึ่งมีการรวมไดรเวอร์ที่จำเป็นที่ถูก Build มาแล้วจาก FriendlyELEC (ผู้ผลิต) เช่น Ubuntu Core, Debian Core, OpenMediaVault และ FriendlyWrt โดย Download ได้จาก Official image
ส่วน Unofficial image คือ ระบบปฏิบัติการที่ได้รับการปรับแต่งจากนักพัฒนาอื่น ๆ (Community) เช่น Armbian, DietPi (กำลังพัฒนา)
ระบบปฏิบัติการที่มาพร้อมกับ R3S ใน eMMC คือ OpenWrt เวอร์ชันหนึ่งที่ได้รับการปรับแต่งและเรียกว่า FriendlyWrt ซึ่งมีการรวมไดรเวอร์ที่จำเป็นทั้งหมดและมี device-tree ที่เหมาะสมสำหรับการรองรับ SoC
นี่คือตัวอย่างผลลัพธ์จากคำสั่งแสดงข้อมูลระบบจาก Terminal:
___ _ _ _ __ __ _
| __| _(_)___ _ _ __| | |_ \ \ / / _| |_
| _| '_| / -_) ' \/ _` | | || \ \/\/ / '_| _|
|_||_| |_\___|_||_\__,_|_|\_, |\_/\_/|_| \__|
|__/
-----------------------------------------------------
FriendlyWrt 23.05.4, r24012-d8dd03c46f
-----------------------------------------------------
root@FriendlyWrt:~# uname
Linux
root@FriendlyWrt:~# cat /etc/os-release
NAME="OpenWrt"
VERSION="23.05.4"
ID="openwrt"
ID_LIKE="lede openwrt"
PRETTY_NAME="OpenWrt 23.05.4"
VERSION_ID="23.05.4"
HOME_URL="https://openwrt.org/"
BUG_URL="https://bugs.openwrt.org/"
SUPPORT_URL="https://forum.openwrt.org/"
BUILD_ID="r24012-d8dd03c46f"
OPENWRT_BOARD="rockchip/armv8"
OPENWRT_ARCH="aarch64_generic"
OPENWRT_TAINTS="busybox"
OPENWRT_DEVICE_MANUFACTURER="OpenWrt"
OPENWRT_DEVICE_MANUFACTURER_URL="https://openwrt.org/"
OPENWRT_DEVICE_PRODUCT="Generic"
OPENWRT_DEVICE_REVISION="v0"
OPENWRT_RELEASE="OpenWrt 23.05.4 r24012-d8dd03c46f"
Specs - SoC
ภายใน SoC นั้นใช้ CPU Rockchip RK3566 แบบ Quad Core Cortex-A55 บน FriendlyWrt เมื่อเรียกดูความถี่ CPU info ได้ output ดังนี้:
root@FriendlyWrt:~# cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq
1800000
1800000
1800000
1800000
Specs - Network interfaces
NanoPi R3S นั้นมี 2 network interfaces โดยที่:
- eth0 (WAN) คือ SoC’s native 1Gbps network adapter เป็น PCI ที่ mapped บน CPU กับ port
- eth1 (LAN) คือ 1Gbps โดยเชื่อมต่อแบบ PHY บน PCIe bus
PCIe devices:
root@FriendlyWrt:~# lspci
00:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3568 Remote Signal Processor (rev 01)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 15)
*1Gbps interfaces คือ PCIe based on RTL8111/RTL8211
ทีนี้มาลองดูผลลัพธ์จากคำสั่ง ip a
ได้ดังนี้:
ip a คือคำสั่งแสดงข้อมูล แสดง Interfaces และ IP Addresses ทั้งหมด
root@FriendlyWrt:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 7e:8f:12:41:a5:02 brd ff:ff:ff:ff:ff:ff permaddr d6:a6:04:df:4d:60
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br-lan state UP group default qlen 1000
link/ether 7e:8f:12:41:a5:03 brd ff:ff:ff:ff:ff:ff permaddr a2:1c:c3:7b:1b:6c
4: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 7e:0f:82:6f:f4:64 brd ff:ff:ff:ff:ff:ff
5: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
6: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
7: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
9: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 7e:8f:12:41:a5:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.1/24 brd 192.168.2.255 scope global br-lan
valid_lft forever preferred_lft forever
inet6 fd00:ab:cd::1/60 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::7c8f:12ff:fe41:a503/64 scope link
valid_lft forever preferred_lft forever
ผลลัพธ์ (ยกเว้น) eth0-1 เราจะเห็น Virtual interfaces ที่ใช้ใน FriendlyWrt สำหรับการตั้งค่า WAN และ LAN interconnections
- erspan0 คือ Virtual interface ที่ใช้สําหรับการเชื่อมต่อ port mirroring
- gre0 และ gretap0 คือ GRE tunnel GRE tunnel คือ IP-over-IP tunnels ที่สามารถ encapsulate IPv4/IPv6 และ unicast/multicast traffic
- eth0 และ eth1 คือ WAN และ LAN interfaces
- br-lan คือ bridge network สำหรับ LAN
และนี่คือ การเชื่อมต่อ IRQ สําหรับแต่ละ interface ไปยังแต่ละ core
root@FriendlyWrt:~# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
13: 6730 9110 6860 6500 GICv3 26 Level arch_timer
14: 16496 10893 10775 17663 GICv3 141 Level rk_timer
20: 0 0 0 0 GICv3 284 Edge debug-signal
21: 0 0 0 0 GICv3 150 Level debug
22: 0 0 0 0 GICv3 147 Level rockchip_thermal
23: 0 0 0 0 GICv3 260 Level arm-pmu
24: 0 0 0 0 GICv3 261 Level arm-pmu
25: 0 0 0 0 GICv3 262 Level arm-pmu
26: 0 0 0 0 GICv3 263 Level arm-pmu
27: 1 0 0 0 GICv3 167 Level rockchip_usb2phy
28: 0 0 0 0 GICv3 107 Level pcie-sys
30: 0 0 0 0 GICv3 46 Level fe530000.dma-controller
31: 0 0 0 0 GICv3 45 Level fe530000.dma-controller
32: 0 0 0 0 GICv3 48 Level fe550000.dma-controller
33: 0 0 0 0 GICv3 47 Level fe550000.dma-controller
34: 0 0 0 0 GICv3 183 Level fde4b000.iommu
35: 0 0 0 0 GICv3 170 Level fdea0800.iommu
36: 0 0 0 0 GICv3 93 Level fded0480.iommu
37: 0 0 0 0 GICv3 95 Level fdee0800.iommu
38: 0 0 0 0 GICv3 88 Level fdef0800.iommu, fdef0000.iep
39: 0 0 0 0 GICv3 173 Level fdf40f00.iommu
40: 0 0 0 0 GICv3 174 Level fdf40f00.iommu
41: 0 0 0 0 GICv3 124 Level fdf80800.iommu
42: 0 0 0 0 GICv3 180 Level fe043e00.iommu, fe040000.vop
43: 0 0 3383627 0 GICv3 64 Level eth0
44: 0 0 0 0 GICv3 61 Level eth0
45: 0 0 0 0 rockchip_gpio_irq 19 Level stmmac-0:01
46: 0 0 0 0 GICv3 202 Level xhci-hcd:usb1
47: 765 0 0 0 GICv3 78 Level fdd40000.i2c
48: 0 0 0 0 rockchip_gpio_irq 3 Level rk817
49: 0 0 0 0 rk817 0 Edge rk805_pwrkey_fall
50: 0 0 0 0 rk817 1 Edge rk805_pwrkey_rise
54: 0 0 0 0 rk817 5 Edge RTC alarm
73: 32 0 0 0 GICv3 79 Level fe5a0000.i2c
74: 0 0 0 0 rockchip_gpio_irq 27 Level hym8563
75: 0 0 0 0 GICv3 40 Level rockchip-mipi-csi2-hw
76: 0 0 0 0 GICv3 41 Level rockchip-mipi-csi2-hw
77: 0 0 0 0 GICv3 181 Edge fe600000.watchdog
78: 0 0 0 0 GICv3 130 Level dw-mci
79: 25594 0 0 0 GICv3 51 Level mmc2
80: 4 0 0 0 GICv3 125 Level fe720000.saradc
81: 0 0 0 0 GICv3 84 Level i2s
82: 0 0 0 0 GICv3 122 Level rga2
84: 0 0 0 0 GICv3 172 Level fdf40000.rkvenc
85: 0 0 0 0 GICv3 171 Level fdea0400.vdpu
86: 0 0 0 0 GICv3 96 Level fdee0000.vepu
87: 0 0 0 0 GICv3 94 Level fded0000.jpegd
88: 0 0 0 0 GICv3 123 Level fdf80200.rkvdec
89: 0 0 0 0 GICv3 77 Level fe0a0000.hdmi, dw-hdmi-cec
91: 0 0 0 0 ITS-MSI 0 Edge PCIe PME
92: 1 0 0 0 GICv3 72 Level fde60000.gpu
93: 1 0 0 0 GICv3 73 Level fde60000.gpu
94: 1 0 0 0 GICv3 71 Level fde60000.gpu
95: 59 0 0 0 GICv3 42 Level dmc
96: 0 0 0 0 rockchip_gpio_irq 18 Edge K1
97: 0 21442 0 0 ITS-MSI 524288 Edge eth1
IPI0: 1917 1982 2225 1993 Rescheduling interrupts
IPI1: 8210 12255 10304 10385 Function call interrupts
IPI2: 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 CPU stop (for crash dump) interrupts
IPI4: 2219 2610 4109 5987 Timer broadcast interrupts
IPI5: 10602 5876 5514 5474 IRQ work interrupts
IPI6: 0 0 0 0 CPU wake-up interrupts
Err: 0
จะเห็นว่า eth0(native) IRQ ถูก map ไปที่ CPU2 และ eth1 ถูก map ไปที่ CPU1
Specs - Storage
รุ่นที่ใช้รีวิวมี internal 32GB eMMC (mmcblk2) และ SD card slot (mmcblk0) ไม่ได้ใช้งาน
นี่คือ Layout ของ storage devices:
root@FriendlyWrt:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk2 179:0 0 29.1G 0 disk
├─mmcblk2p1 179:1 0 4M 0 part
├─mmcblk2p2 179:2 0 4M 0 part
├─mmcblk2p3 179:3 0 4M 0 part
├─mmcblk2p4 179:4 0 16M 0 part
├─mmcblk2p5 179:5 0 40M 0 part
├─mmcblk2p6 179:6 0 32M 0 part
├─mmcblk2p7 179:7 0 32M 0 part
├─mmcblk2p8 179:8 0 640M 0 part
└─mmcblk2p9 179:9 0 28.4G 0 part
mmcblk2boot0 179:32 0 4M 1 disk
mmcblk2boot1 179:64 0 4M 1 disk
คุณจะเห็นว่า mmcblk2 มี 9 partitions และมี 2 boot partitions
root@FriendlyWrt:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 512K 0 512K 0% /dev
tmpfs 196M 748K 195M 1% /run
overlay 28G 728K 27G 1% /
tmpfs 979M 21M 959M 3% /tmp
คุณจะเห็นว่า root filesystem มี 28G และ /tmp มี 979M
FriendlyWrt
___ _ _ _ __ __ _
| __| _(_)___ _ _ __| | |_ \ \ / / _| |_
| _| '_| / -_) ' \/ _` | | || \ \/\/ / '_| _|
|_||_| |_\___|_||_\__,_|_|\_, |\_/\_/|_| \__|
|__/
-----------------------------------------------------
FriendlyWrt 23.05.4, r24012-d8dd03c46f
-----------------------------------------------------
root@NanoPi-R3S:~#
FriendlyWrt คือเวอร์ชันปรับแต่งของ OpenWrt ที่พัฒนาโดย FriendlyELEC เพื่อให้ทำงานได้ดีขึ้นกับฮาร์ดแวร์ของพวกเขา เช่น NanoPi และบอร์ดอื่น ๆ ที่พวกเขาผลิต
ความแตกต่างระหว่าง FriendlyWrt และ OpenWrt
- ✅ รองรับฮาร์ดแวร์ของ FriendlyELEC โดยเฉพาะ – มีไดรเวอร์และการตั้งค่าที่เหมาะกับอุปกรณ์ของพวกเขา เช่น NanoPi R2S, R4S, R3S
- ✅ มาพร้อม UI และฟีเจอร์ที่ปรับแต่งแล้ว – บางเวอร์ชันอาจมี Web UI หรือเครื่องมือเสริมที่ไม่มีใน OpenWrt มาตรฐาน
- ✅ ประสิทธิภาพดีขึ้นในบางจุด – อาจมีการตั้งค่าล่วงหน้าเพื่อให้เหมาะกับการทำงานของฮาร์ดแวร์ FriendlyELEC
ข้อเสียของ FriendlyWrt
- ❌ อาจไม่อัปเดตบ่อยเท่า OpenWrt ดั้งเดิม
- ❌ ใช้ได้ดีแค่กับอุปกรณ์ FriendlyELEC เท่านั้น – ถ้าคุณใช้ OpenWrt บนอุปกรณ์อื่น อาจต้องใช้เวอร์ชันมาตรฐานแทน
การติดตั้ง FriendlyWrt
อย่างที่ได้บอกไปในหัวข้อ Specs - OS ระบบปฏิบัติการตัวเริ่มต้นที่มาพร้อมกับ R3S ใน eMMC คือ OpenWrt เวอร์ชันหนึ่งที่ได้รับการปรับแต่งและเรียกว่า FriendlyWrt โดยจริง ๆ แล้วมีวิธีติดตั้งได้ 2 วิธี
- ติดตั้งบน eMMC
- ติดตั้งบน SD card
การติดตั้งลงบน eMMC จะมีข้อดีคือ I/O ทำงานได้รวดเร็วกว่า
ขั้นตอนติดตั้ง FriendlyWrt
- Download Image ที่ https://download.friendlyelec.com/NanoPiR3S
- เลือก Image ที่มีชื่อไฟล์ "SD-to-eMMC" (สำหรับ eMMC) หรือ "SD" (สำหรับ SD card)
- Download image จากนั้นเขียน Image ลง SD card ด้วยโปรแกรม BalenaEtcher หรือ Rufus
- ใส่ SD card ลง NanoPi R3S จากนั้นเปิดเครื่อง
- รอจนกระทั้ง LAN LED Green (ขึ้น), WAN LED Green (ขึ้น), SYS LED Red (กระพริบ) ก็เป็นการติดตั้งสําเร็จ
การใช้งาน FriendlyWrt เบื้องต้น
การใช้งาน FriendlyWrt อย่างที่บอกไปก่อนหน้าเพราะ FriendlyWrt ก็คือ OpenWrt ดังนั้นรายละเอียดจะเป็นการใช้งาน OpenWrt ซึ่งจะแบ่งออกเป็น 2 ส่วนคือ
- การตั้งค่า
- การใช้งาน
โดยบทความนี้จะไม่ได้สอนการใช้งานโดยตรงเนื่องจาก OpenWrt จะมีรายละเอียดการตั้งค่าค่อนข้างเยอะ ดังนั้นบทความจะพาดูเพียงส่วนการตั้งค่าคร่าว ๆ เท่านั้น
หน้าหลัก
หน้าหลักคือหน้า Status - Overview สำหรับการตรวจสอบสถานะของระบบ
- System: จะแสดงเวอร์ชันของระบบปฏิบัติการ และเวอร์ชันของ OpenWrt
- Memory: จะแสดงสถิติการใช้งานของ RAM
- Storage: จะแสดงสถิติการใช้งานของ Storage
- Port status: จะแสดงสถานะการเชื่อมต่อ และ Bandwidth
- Network: จะแสดงสถานะการเชื่อมต่อของ Network Interfaces
- Active DHCP: จะแสดงสถานะการใช้งานของ DHCP Server (IPv4 และ IPv6)
เมนู
FriendlyWrt ที่ถูกปรับแต่งแล้วจะมีเมนูแตกต่างจาก OpenWrt แต่จะมีเมนูที่สำคัญดังนี้
- System: เมนูสำหรับจัดการระบบ เช่น System (สำหรับจัดการข้อมูลระบบ), Administration (สำหรับ Router Password และ SSH Access), Software (สำหรับการติดตั้งและอัปเดต Packages)
- Network: Interfaces, Routing, Firewall, DHCP and DNS, Firewall
การตั้งค่า Interfaces
ในหน้าการตั้งค่า Network interfaces ปกติแล้วจะมี 2 ส่วนที่สำคัญคือ
- Interfaces: คือการตั้งค่าเพื่อเพิ่มการเชื่อมต่อของเครื่องด้วย Protocols ต่าง ๆ เช่น DHCPv4 และ DCHPv6 Client, PPPoE, VPN และ อื่น ๆ สามารถลงเพิ่มได้
- Devices: คือการจัดการรายการ Interface devices (Physical devices) ที่เชื่อมต่อไปยังเครื่อง เช่น ถ้ามี USB to LAN ก็สามารถลงเพิ่มได้
การจัดการ Interfaces จะมีหน้าต่างเช่นต่อไปนี้
การจัดการ Interfaces ตัวอย่าง Lan สําหรับการตั้งค่า จะมีรายละเอียดแตกต่างกันตาม Protocols ที่ใช้ในการเชื่อมต่อ
หน้าข้อมูล Statistics
หน้าข้อมูล Statistics จะแสดงสถิติการทํางานของระบบปฏิบัติการ โดยแสดงจํานวนการทํางานของเครื่อง และจํานวนการรับส่งข้อมูลของเครื่อง
- Processor: สำหรับการตรวจสอบการทํางานของ CPU
- Interfaces: สําหรับการตรวจสอบการทํางานของ Network
- System load: สําหรับการตรวจสอบการทํางานของระบบ
- Memory: สําหรับการตรวจสอบการทํางานของ RAM
- Thermal: สําหรับการตรวจสอบการทํางานของ Temperature
Test case 1 - Performance (Testing a single port)
Test case ในรูปแบบ Single port
Test case 1.1 - Macbook Pro <=> NanoPi R3S (LAN)
Scenario:
Macbook Pro with USB-C 2.5Gbps <=> NanoPi R3S (LAN)
Configuration:
- MacBook Pro: 192.168.2.10
- NanoPi R3S: 192.168.2.1
Host | Command |
---|---|
Macbook Pro with USB-C 2.5Gbps | iperf3 -s |
NanoPi R3S (LAN) | iperf3 -c 192.168.2.10 -t 30 -d -P 2 |
send_results
{
"cpu_util_total": 24.20746863113029,
"cpu_util_user": 2.5382590925673441,
"cpu_util_system": 21.66917622510331,
"sender_has_retransmits": 1,
"congestion_used": "cubic",
"streams": [{
"id": 1,
"bytes": 1516634112,
"retransmits": 0,
"jitter": 0,
"errors": 0,
"omitted_errors": 0,
"packets": 0,
"omitted_packets": 0,
"start_time": 0,
"end_time": 30.002005
}, {
"id": 3,
"bytes": 2005532672,
"retransmits": 0,
"jitter": 0,
"errors": 0,
"omitted_errors": 0,
"packets": 0,
"omitted_packets": 0,
"start_time": 0,
"end_time": 30.002039
}]
}
get_results
{
"cpu_util_total": 7.32303572104032,
"cpu_util_user": 0.355655713351853,
"cpu_util_system": 6.9673700096830684,
"sender_has_retransmits": -1,
"streams": [{
"id": 1,
"bytes": 1516634112,
"retransmits": -1,
"jitter": 0,
"errors": 0,
"omitted_errors": 0,
"packets": 0,
"omitted_packets": 0,
"start_time": 0,
"end_time": 30.005937
}, {
"id": 3,
"bytes": 2005532672,
"retransmits": -1,
"jitter": 0,
"errors": 0,
"omitted_errors": 0,
"packets": 0,
"omitted_packets": 0,
"start_time": 0,
"end_time": 30.005938
}]
}
interval_len 1.000915 bytes_transferred 39714816
interval forces keep
interval_len 1.000786 bytes_transferred 77725696
interval forces keep
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 29.00-30.00 sec 37.9 MBytes 317 Mbits/sec 0 311 KBytes
[ 7] 29.00-30.00 sec 74.1 MBytes 621 Mbits/sec 0 574 KBytes
[SUM] 29.00-30.00 sec 112 MBytes 939 Mbits/sec 0
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-30.00 sec 1.41 GBytes 404 Mbits/sec 0 sender
[ 5] 0.00-30.01 sec 1.41 GBytes 404 Mbits/sec receiver
[ 7] 0.00-30.00 sec 1.87 GBytes 535 Mbits/sec 0 sender
[ 7] 0.00-30.01 sec 1.87 GBytes 535 Mbits/sec receiver
[SUM] 0.00-30.00 sec 3.28 GBytes 939 Mbits/sec 0 sender
[SUM] 0.00-30.01 sec 3.28 GBytes 939 Mbits/sec receiver
Receiver threads stopped
iperf Done.
- สรุปผลการทดสอบ
- โหมดการทดสอบ: Dual Mode (
-d
)- ทดสอบทั้ง Upload (จากเครื่อง B ไปยังเครื่อง A) และ Download (จากเครื่อง A ไปยังเครื่อง B) พร้อมกัน
- จำนวน Streams: 2 streams (
-P 2
)- มีการเชื่อมต่อพร้อมกัน 2 ช่องทาง
- ระยะเวลา: 30 วินาที (
-t 30
)
- โหมดการทดสอบ: Dual Mode (
- ผลลัพธ์โดยรวม
- แบนด์วิดท์รวม (Bitrate):
- Sender: 939 Mbps
- Receiver: 939 Mbps
- จำนวนข้อมูลที่ถ่ายโอน (Total Transfer):
- Sender: 3.28 GB
- Receiver: 3.28 GB
- Retransmissions (การส่งซ้ำ): 0 ครั้ง (ไม่มีการสูญเสียข้อมูลระหว่างการส่ง)
- แบนด์วิดท์รวม (Bitrate):
- รายละเอียดสำหรับแต่ละ Stream
Stream ID Transfer Bitrate Retransmissions Stream 1 1.41 GB 404 Mbps 0 Stream 2 1.87 GB 535 Mbps 0 - การใช้ CPU
- Sender:
- การใช้งาน CPU ทั้งหมด: 24.2%
- User: 2.54%
- System: 21.67%
- Receiver:
- การใช้งาน CPU ทั้งหมด: 7.32%
- User: 0.36%
- System: 6.97%
- Sender:
บทวิเคราะห์
- แบนด์วิดท์:
- ค่าแบนด์วิดท์รวมที่ 939 Mbps ใกล้เคียงกับความสามารถสูงสุดของเครือข่าย 1 Gbps LAN
- ประสิทธิภาพ:
- ไม่มีการสูญเสียแพ็กเก็ต (Packet Loss = 0%) และไม่มีการส่งซ้ำ (Retransmits = 0)
- ถือว่าเครือข่ายมีความเสถียรและประสิทธิภาพดี
- การใช้ CPU:
- การใช้งาน CPU ฝั่ง Sender สูงกว่า Receiver (24.2% vs 7.32%) เนื่องจากการส่งข้อมูลต้องใช้ทรัพยากรประมวลผลมากกว่า
- การรับส่งข้อมูลแบบ Parallel Streams:
- Stream 1 และ Stream 2 ทำงานร่วมกันได้ดี โดยแบ่งโหลดระหว่างกัน
Test case 1.2 - NanoPi R3S <-> Macbook Pro
Scenario:
NanoPi R3S (LAN) <=> Macbook Pro with USB-C 2.5Gbps
Configuration:
- MacBook Pro: 192.168.2.10
- NanoPi R3S: 192.168.2.1
Host | Command |
---|---|
Macbook Pro with USB-C 2.5Gbps | iperf3 -c 192.168.2.1 -t 30 -d -P 2 |
NanoPi R3S (LAN) | iperf3 -s |
send_results
{
"cpu_util_total": 4.6668189384060819,
"cpu_util_user": 0.157259721775875,
"cpu_util_system": 4.5095625486157518,
"sender_has_retransmits": 0,
"streams": [{
"id": 1,
"bytes": 1766457344,
"retransmits": -1,
"jitter": 0,
"errors": 0,
"omitted_errors": 0,
"packets": 0,
"omitted_packets": 0,
"start_time": 0,
"end_time": 30.001116
}, {
"id": 3,
"bytes": 1766719488,
"retransmits": -1,
"jitter": 0,
"errors": 0,
"omitted_errors": 0,
"packets": 0,
"omitted_packets": 0,
"start_time": 0,
"end_time": 30.001121
}]
}
get_results
{
"cpu_util_total": 56.219001599142274,
"cpu_util_user": 1.8650327122734796,
"cpu_util_system": 54.354232194231244,
"sender_has_retransmits": -1,
"congestion_used": "cubic",
"streams": [{
"id": 1,
"bytes": 1763966976,
"retransmits": -1,
"jitter": 0,
"errors": 0,
"omitted_errors": 0,
"packets": 0,
"omitted_packets": 0,
"start_time": 0,
"end_time": 30.002727
}, {
"id": 3,
"bytes": 1764229120,
"retransmits": -1,
"jitter": 0,
"errors": 0,
"omitted_errors": 0,
"packets": 0,
"omitted_packets": 0,
"start_time": 0,
"end_time": 30.002747
}]
}
Reading new State from the Server - current state is 13-EXCHANGE_RESULTS
State change: client received and changed State to 14-DISPLAY_RESULTS
interval_len 0.999012 bytes_transferred 58720256
interval forces keep
interval_len 0.999016 bytes_transferred 59506688
interval forces keep
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 29.00-30.00 sec 56.0 MBytes 470 Mbits/sec
[ 7] 29.00-30.00 sec 56.8 MBytes 477 Mbits/sec
[SUM] 29.00-30.00 sec 113 MBytes 947 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-30.00 sec 1.65 GBytes 471 Mbits/sec sender
[ 5] 0.00-30.00 sec 1.64 GBytes 470 Mbits/sec receiver
[ 7] 0.00-30.00 sec 1.65 GBytes 471 Mbits/sec sender
[ 7] 0.00-30.00 sec 1.64 GBytes 470 Mbits/sec receiver
[SUM] 0.00-30.00 sec 3.29 GBytes 942 Mbits/sec sender
[SUM] 0.00-30.00 sec 3.29 GBytes 941 Mbits/sec receiver
State change: State set to 16-IPERF_DONE (from 14-DISPLAY_RESULTS)
Receiver threads stopped
iperf Done.
- สรุปผลการทดสอบ
- โหมดการทดสอบ: Dual Mode (
-d
)- ทดสอบทั้ง Upload (จากเครื่อง B ไปยังเครื่อง A) และ Download (จากเครื่อง A ไปยังเครื่อง B) พร้อมกัน
- จำนวน Streams: 2 streams (
-P 2
)- มีการเชื่อมต่อพร้อมกัน 2 ช่องทาง
- ระยะเวลา: 30 วินาที (
-t 30
)
- โหมดการทดสอบ: Dual Mode (
- ผลลัพธ์รวม (Summary)
- แบนด์วิดท์รวม (Bitrate):
- Sender: 942 Mbps
- Receiver: 941 Mbps
- จำนวนข้อมูลที่ถ่ายโอน (Total Transfer):
- Sender: 3.29 GB
- Receiver: 3.29 GB
- Retransmissions (การส่งซ้ำ): 0 ครั้ง (ไม่มีการสูญเสียข้อมูลระหว่างการส่ง)
- แบนด์วิดท์รวม (Bitrate):
- การใช้ CPU
- Sender:
- การใช้งาน CPU ทั้งหมด: 4.67%
- User: 0.16%
- System: 4.51%
- Receiver:
- การใช้งาน CPU ทั้งหมด: 56.22%
- User: 1.87%
- System: 54.35%
- Sender:
- การเปรียบเทียบกับค่าคาดหวังของ Ethernet 1 Gbps
Parameter ค่าเฉลี่ยที่คาดหวัง ผลการทดสอบ แบนด์วิดท์รวม (Bitrate) ~1 Gbps 941 Mbps การถ่ายโอนข้อมูลรวม ~3.29 GB 3.29 GB Retransmissions 0 0 การใช้ CPU (Sender) ต่ำ (< 5%) 4.67% การใช้ CPU (Receiver) สูง (56.22%) 56.22%
บทวิเคราะห์
- แบนด์วิดท์:
- ผลการทดสอบแสดงว่าแบนด์วิดท์ใกล้เคียงกับความสามารถสูงสุดของ Ethernet 1 Gbps โดยได้ประมาณ 941 Mbps ซึ่งถือว่าเป็นผลลัพธ์ที่ดี
- ประสิทธิภาพการส่งข้อมูล:
- ไม่มีการสูญเสียข้อมูล (Retransmits = 0) แสดงให้เห็นถึงการส่งข้อมูลที่มีเสถียรภาพ
- การใช้ CPU:
- Sender: การใช้งาน CPU ค่อนข้างต่ำที่ 4.67% ซึ่งถือว่าอยู่ในระดับปกติสำหรับการทดสอบที่ส่งข้อมูล
- Receiver: การใช้งาน CPU สูงถึง 56.22%, ซึ่งเป็นสัญญาณว่าเครื่องรับข้อมูลอาจมีภาระการประมวลผลสูงในการรับข้อมูลจากแบนด์วิดท์สูง
Test case 1.3 - Packet generation capabilities
Packet generation capabilities คือการประเมินความสามารถของระบบหรืออุปกรณ์ในการสร้างและส่งข้อมูลในรูปแบบแพ็กเก็ตจำนวนมากในช่วงเวลาที่กำหนด ซึ่งใช้วัดประสิทธิภาพด้านต่าง ๆ ดังนี้:
- ความเร็วในการส่งแพ็กเก็ต (Packets per Second, PPS): วัดจำนวนแพ็กเก็ตที่ระบบสามารถสร้างและส่งออกได้ในหนึ่งวินาที
- การจำลองสถานการณ์เครือข่ายจริง: ใช้ในการทดสอบว่าอุปกรณ์ เช่น router, switch, firewall หรือ network interface card สามารถรองรับปริมาณ traffic ที่เข้ามาได้มากน้อยเพียงใด
- การประเมินประสิทธิภาพของระบบ: รวมถึงการวัด latency, jitter และ packet loss เมื่อระบบต้องจัดการกับการส่งแพ็กเก็ตในปริมาณสูง
- การใช้งานในงาน stress test: เพื่อจำลองสถานการณ์ที่เครือข่ายถูกใช้งานหนักและตรวจสอบว่าระบบสามารถรักษาความเสถียรและประสิทธิภาพได้หรือไม่
การทดสอบนี้เน้นที่การวัดความสามารถของระบบในการสร้างและส่งแพ็กเก็ตด้วยความเร็วสูง และเป็นการจำลองสภาพการใช้งานจริงในเครือข่าย
Scenario:
Macbook Pro with USB-C 2.5Gbps -> NanoPi R3S (LAN)
Configuration:
- MacBook Pro: 192.168.2.10
- NanoPi R3S: 192.168.2.1
Host | Command |
---|---|
Macbook Pro with USB-C 2.5Gbps | iperf3 -s |
NanoPi R3S (LAN) | iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length {size} |
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 16
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 125 MBytes 35.0 Mbits/sec 0.000 ms 0/8198490 (0%) sender
[SUM] 0.0-30.0 sec 1248 datagrams received out-of-order
[ 5] 0.00-30.00 sec 56.2 MBytes 15.7 Mbits/sec 0.005 ms 4512335/8198652 (55%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 100
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 861 MBytes 241 Mbits/sec 0.000 ms 0/9029158 (0%) sender
[SUM] 0.0-30.0 sec 86 datagrams received out-of-order
[ 5] 0.00-30.00 sec 222 MBytes 62.1 Mbits/sec 0.005 ms 6702902/9030752 (74%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 300
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 2.19 GBytes 627 Mbits/sec 0.000 ms 0/7836860 (0%) sender
[SUM] 0.0-30.0 sec 4068 datagrams received out-of-order
[ 5] 0.00-30.00 sec 1.16 GBytes 333 Mbits/sec 0.039 ms 3678717/7838082 (47%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 500
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 3.08 GBytes 882 Mbits/sec 0.000 ms 0/6615360 (0%) sender
[SUM] 0.0-30.0 sec 7591 datagrams received out-of-order
[ 5] 0.00-30.00 sec 1.96 GBytes 560 Mbits/sec 0.005 ms 2413202/6615800 (36%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 700
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.01 sec 3.19 GBytes 913 Mbits/sec 0.000 ms 0/4894603 (0%) sender
[SUM] 0.0-30.0 sec 10219 datagrams received out-of-order
[ 5] 0.00-30.00 sec 2.74 GBytes 786 Mbits/sec 0.019 ms 684924/4894542 (14%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 900
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 1.93 GBytes 553 Mbits/sec 0.000 ms 0/2302032 (0%) sender
[SUM] 0.0-30.0 sec 5111 datagrams received out-of-order
[ 5] 0.00-30.00 sec 1.93 GBytes 552 Mbits/sec 0.008 ms 1338/2300685 (0.058%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 1100
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 3.29 GBytes 943 Mbits/sec 0.000 ms 0/3215631 (0%) sender
[SUM] 0.0-30.0 sec 6707 datagrams received out-of-order
[ 5] 0.00-30.00 sec 2.60 GBytes 746 Mbits/sec 0.132 ms 673107/3215725 (21%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 1300
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 3.32 GBytes 951 Mbits/sec 0.000 ms 0/2742092 (0%) sender
[SUM] 0.0-30.0 sec 4686 datagrams received out-of-order
[ 5] 0.00-30.00 sec 2.10 GBytes 601 Mbits/sec 0.020 ms 1007794/2742377 (37%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 1472
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 3.25 GBytes 930 Mbits/sec 0.000 ms 0/2369709 (0%) sender
[SUM] 0.0-30.0 sec 7030 datagrams received out-of-order
[ 5] 0.00-30.00 sec 3.25 GBytes 930 Mbits/sec 0.004 ms 1797/2369914 (0.076%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 1500
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 3.21 GBytes 919 Mbits/sec 0.000 ms 0/2296386 (0%) sender
[SUM] 0.0-30.0 sec 9102 datagrams received out-of-order
[ 5] 0.00-30.00 sec 2.31 GBytes 660 Mbits/sec 0.020 ms 646517/2296568 (28%) receiver
รายละเอียดคำสั่ง
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length 1500
- iperf3 -u: ทดสอบประสิทธิภาพเครือข่ายด้วยโปรโตคอล UDP
- -c 192.168.2.10: ใช้งานเครื่องที่ IP
192.168.2.10
เป็นเซิร์ฟเวอร์ - -t 30: ทดสอบเป็นเวลา 30 วินาที
- -R: ทำการทดสอบย้อนกลับ (Reverse Mode)
- -O 5: ข้ามการเก็บข้อมูลในช่วง 5 วินาทีแรก
- -f m: แสดงผลลัพธ์ในหน่วย Megabits
- -b 1024M: ตั้งค่า Bandwidth สูงสุดไว้ที่ 1024 Mbps
- --length: ขนาดของแพ็กเก็ต UDP (หน่วยเป็นไบต์)
บทวิเคราะห์
วิเคราะห์และสรุปผลการทดสอบ iperf3 ด้วย UDP และขนาดแพ็กเก็ตต่าง ๆ
สรุปผลการทดสอบ
ขนาดแพ็กเก็ต | Bitrate (Sender) | Bitrate (Receiver) | Lost (%) | Jitter (ms) | Datagrams Received Out-of-Order |
---|---|---|---|---|---|
16 bytes | 35.0 Mbps | 15.7 Mbps | 55% | 0.005 | 1248 |
100 bytes | 241 Mbps | 62.1 Mbps | 74% | 0.005 | 86 |
300 bytes | 627 Mbps | 333 Mbps | 47% | 0.039 | 4068 |
500 bytes | 882 Mbps | 560 Mbps | 36% | 0.005 | 7591 |
700 bytes | 913 Mbps | 786 Mbps | 14% | 0.019 | 10219 |
900 bytes | 553 Mbps | 552 Mbps | 0.058% | 0.008 | 5111 |
1100 bytes | 943 Mbps | 746 Mbps | 21% | 0.132 | 6707 |
1300 bytes | 951 Mbps | 601 Mbps | 37% | 0.020 | 4686 |
1472 bytes | 930 Mbps | 930 Mbps | 0.076% | 0.004 | 7030 |
1500 bytes | 919 Mbps | 660 Mbps | 28% | 0.020 | 9102 |
ข้อสังเกต
-
ขนาดแพ็กเก็ตมีผลต่อประสิทธิภาพ:
- เมื่อขนาดแพ็กเก็ตเล็ก (< 500 bytes) พบการสูญหาย (Lost) มากกว่า 50% และ Bandwidth ที่ Receiver ต่ำ
- เมื่อเพิ่มขนาดแพ็กเก็ต (700-1472 bytes) อัตราสูญหายลดลงอย่างชัดเจน และ Bandwidth ใกล้เคียงกับค่าที่ตั้งไว้ (1024 Mbps)
-
แพ็กเก็ตขนาด 1472 bytes ให้ผลดีที่สุด:
- Bitrate สูงสุดที่ Sender และ Receiver ใกล้เคียงกัน (930 Mbps)
- การสูญหายต่ำสุด (0.076%)
- Jitter ต่ำมาก (0.004 ms)
-
ปัญหาของแพ็กเก็ตที่ใหญ่เกินไป (1500 bytes):
- Bitrate ลดลงที่ Receiver (660 Mbps)
- อัตราการสูญหายเพิ่มขึ้น (28%)
- มี Datagrams Received Out-of-Order สูงสุด (9102)
-
ผลกระทบของ Out-of-Order Datagrams:
- พบ Out-of-Order Datagrams ในทุกขนาดของแพ็กเก็ต
- แพ็กเก็ตขนาด 16-300 bytes มี Out-of-Order ต่ำที่สุด (<5000)
- แพ็กเก็ตขนาดใหญ่ (>700 bytes) มี Out-of-Order สูงขึ้น
สรุป
- ขนาดแพ็กเก็ต 1472 bytes เหมาะสมที่สุดในแง่ของการใช้งาน Bandwidth และความเสถียร
- การตั้งค่า Bandwidth สูง (1024 Mbps) อาจไม่ได้ถูกใช้งานเต็มประสิทธิภาพหากขนาดแพ็กเก็ตไม่เหมาะสม
- การตรวจสอบและปรับขนาดแพ็กเก็ต UDP ให้เหมาะสมกับระบบเครือข่ายเป็นสิ่งสำคัญในการลดการสูญหายและเพิ่มประสิทธิภาพ
Test case 1.4 - Packet generation capabilities (สลับ Receiver และ Sender)
Scenario:
NanoPi R3S (LAN) -> MacBook Pro with USB-C 2.5Gbps
Configuration:
- MacBook Pro: 192.168.2.10
- NanoPi R3S: 192.168.2.1
Host | Command |
---|---|
Macbook Pro with USB-C 2.5Gbps | iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length {size} |
NanoPi R3S (LAN) | iperf3 -s |
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 16
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 30.0 MBytes 8.37 Mbits/sec 0.000 ms 0/1962863 (0%) sender
[ 5] 0.00-30.00 sec 29.9 MBytes 8.37 Mbits/sec 0.026 ms 0/1962527 (0%) receiver
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 100
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 184 MBytes 51.5 Mbits/sec 0.000 ms 0/1932570 (0%) sender
[ 5] 0.00-30.00 sec 184 MBytes 51.5 Mbits/sec 0.022 ms 0/1932521 (0%) receiver
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 300
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 460 MBytes 129 Mbits/sec 0.000 ms 0/1609437 (0%) sender
[ 5] 0.00-30.00 sec 460 MBytes 129 Mbits/sec 0.024 ms 0/1609169 (0%) receiver
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 500
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 898 MBytes 251 Mbits/sec 0.000 ms 0/1884213 (0%) sender
[ 5] 0.00-30.00 sec 898 MBytes 251 Mbits/sec 0.018 ms 0/1883905 (0%) receiver
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 700
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 1.22 GBytes 350 Mbits/sec 0.000 ms 0/1874100 (0%) sender
[ 5] 0.00-30.00 sec 1.22 GBytes 350 Mbits/sec 0.022 ms 0/1873754 (0%) receiver
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 900
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 1.55 GBytes 443 Mbits/sec 0.000 ms 0/1844726 (0%) sender
[ 5] 0.00-30.00 sec 1.55 GBytes 443 Mbits/sec 0.022 ms 0/1844410 (0%) receiver
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 1100
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 1.86 GBytes 531 Mbits/sec 0.000 ms 0/1810786 (0%) sender
[ 5] 0.00-30.00 sec 1.85 GBytes 531 Mbits/sec 0.023 ms 0/1810483 (0%) receiver
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 1300
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 2.15 GBytes 614 Mbits/sec 0.000 ms 0/1772048 (0%) sender
[ 5] 0.00-30.00 sec 2.15 GBytes 614 Mbits/sec 0.021 ms 0/1771739 (0%) receiver
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 1472
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 2.45 GBytes 701 Mbits/sec 0.000 ms 0/1785496 (0%) sender
[ 5] 0.00-30.00 sec 2.45 GBytes 701 Mbits/sec 0.023 ms 0/1785198 (0%) receiver
iperf3 -u -c 192.168.2.1 -t 30 -R -O 5 -f m -b 1024M --length 1500
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 1.76 GBytes 504 Mbits/sec 0.000 ms 0/1259568 (0%) sender
[ 5] 0.00-30.00 sec 1.76 GBytes 504 Mbits/sec 0.023 ms 0/1259361 (0%) receiver
บทวิเคราะห์
วิเคราะห์และเปรียบเทียบผลการทดสอบ
สรุปผลการทดสอบ
ขนาดแพ็กเก็ต (bytes) | Bitrate (Sender) | Bitrate (Receiver) | Lost (%) | Jitter (ms) | Datagrams Lost |
---|---|---|---|---|---|
16 | 8.37 Mbps | 8.37 Mbps | 0% | 0.026 | 0 |
100 | 51.5 Mbps | 51.5 Mbps | 0% | 0.022 | 0 |
300 | 129 Mbps | 129 Mbps | 0% | 0.024 | 0 |
500 | 251 Mbps | 251 Mbps | 0% | 0.018 | 0 |
700 | 350 Mbps | 350 Mbps | 0% | 0.022 | 0 |
900 | 443 Mbps | 443 Mbps | 0% | 0.022 | 0 |
1100 | 531 Mbps | 531 Mbps | 0% | 0.023 | 0 |
1300 | 614 Mbps | 614 Mbps | 0% | 0.021 | 0 |
1472 | 701 Mbps | 701 Mbps | 0% | 0.023 | 0 |
1500 | 504 Mbps | 504 Mbps | 0% | 0.023 | 0 |
เปรียบเทียบผลการทดสอบ
เปรียบเทียบกับ Test case 1.3
-
ประสิทธิภาพการส่งข้อมูล (Bitrate)
- การทดสอบในเครือข่าย 192.168.2.1 ให้ผล Bitrate ที่สูงกว่าในเครือข่าย 192.168.2.10 อย่างชัดเจน:
- 192.168.2.1 (Sender/Receiver): สูงสุด 701 Mbps (แพ็กเก็ตขนาด 1472 bytes)
- 192.168.2.10 (Sender/Receiver): สูงสุด 930 Mbps (แพ็กเก็ตขนาด 1472 bytes)
- สำหรับเครือข่าย 192.168.2.1 แพ็กเก็ตขนาด 1472 bytes มีประสิทธิภาพสูงสุด แต่ยังต่ำกว่า 192.168.2.10
-
Packet Loss
- การทดสอบใน 192.168.2.1 ไม่มี Packet Loss ในทุกขนาดแพ็กเก็ต (0%) ซึ่งแสดงถึงความเสถียรของเครือข่าย
- การทดสอบใน 192.168.2.10 มี Packet Loss สูงในบางขนาดแพ็กเก็ต (สูงสุด 74% สำหรับขนาด 100 bytes)
-
Jitter
- ค่า Jitter ในทั้งสองเครือข่ายต่ำมาก (<0.05 ms) ในทุกขนาดแพ็กเก็ต
- เครือข่าย 192.168.2.1 มี Jitter น้อยกว่าบางกรณีเมื่อเทียบกับ 192.168.2.10
-
ผลกระทบของขนาดแพ็กเก็ต
- ทั้งสองเครือข่ายมีประสิทธิภาพดีที่สุดเมื่อใช้แพ็กเก็ตขนาด 1472 bytes:
- เครือข่าย 192.168.2.1: Bitrate สูงสุดที่ 701 Mbps
- เครือข่าย 192.168.2.10: Bitrate สูงสุดที่ 930 Mbps
- ในเครือข่าย 192.168.2.1 การลดขนาดแพ็กเก็ตต่ำกว่า 300 bytes ทำให้ Bitrate ลดลงอย่างมาก (ต่ำกว่า 150 Mbps)
สรุป
-
เครือข่าย 192.168.2.1:
- มีความเสถียรสูงกว่า (ไม่มี Packet Loss)
- Bitrate ต่ำกว่า 192.168.2.10 ซึ่งอาจเกิดจากข้อจำกัดของอุปกรณ์หรือเครือข่าย
-
เครือข่าย 192.168.2.10:
- Bitrate สูงกว่าแต่มี Packet Loss สูงในบางขนาดแพ็กเก็ต
- อาจจำเป็นต้องปรับแต่งเครือข่ายหรืออุปกรณ์เพื่อเพิ่มความเสถียร
-
ความคิดเห็น:
- ใช้ขนาดแพ็กเก็ต 1472 bytes สำหรับประสิทธิภาพสูงสุด
- ตรวจสอบอุปกรณ์เครือข่ายเพื่อวิเคราะห์ข้อจำกัดที่ส่งผลต่อ Bitrate
- ใช้การทดสอบ Bitrate และ Packet Loss เป็นตัวบ่งชี้ความเสถียรของเครือข่าย
Test case 1.5 - Packet generation capabilities
Scenario:
NanoPi R3S (LAN) -> MacBook Pro with USB-C 2.5Gbps
Configuration:
- MacBook Pro: 192.168.2.10
- NanoPi R3S: 192.168.2.1
Host | Command |
---|---|
Macbook Pro with USB-C 2.5Gbps | iperf3 -s |
NanoPi R3S (LAN) | iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length {size} |
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 16
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 34.9 MBytes 9.76 Mbits/sec 0.000 ms 0/2287207 (0%) sender
[ 5] 0.00-30.00 sec 34.9 MBytes 9.76 Mbits/sec 0.014 ms 0/2287005 (0%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 100
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 218 MBytes 60.9 Mbits/sec 0.000 ms 0/2283556 (0%) sender
[ 5] 0.00-30.00 sec 218 MBytes 60.9 Mbits/sec 0.015 ms 0/2283268 (0%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 300
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 652 MBytes 182 Mbits/sec 0.000 ms 0/2279374 (0%) sender
[ 5] 0.00-30.00 sec 652 MBytes 182 Mbits/sec 0.015 ms 0/2279078 (0%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 500
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 1.05 GBytes 301 Mbits/sec 0.000 ms 0/2259769 (0%) sender
[ 5] 0.00-30.00 sec 1.05 GBytes 301 Mbits/sec 0.016 ms 0/2259471 (0%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 700
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 1.45 GBytes 414 Mbits/sec 0.000 ms 0/2219403 (0%) sender
[ 5] 0.00-30.00 sec 1.45 GBytes 414 Mbits/sec 0.018 ms 0/2219119 (0%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 900
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 1.81 GBytes 519 Mbits/sec 0.000 ms 0/2160600 (0%) sender
[ 5] 0.00-30.00 sec 1.81 GBytes 519 Mbits/sec 0.019 ms 0/2160318 (0%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 1100
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 2.18 GBytes 624 Mbits/sec 0.000 ms 0/2126619 (0%) sender
[ 5] 0.00-30.00 sec 2.18 GBytes 624 Mbits/sec 0.019 ms 0/2126360 (0%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 1300
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 2.17 GBytes 623 Mbits/sec 0.000 ms 0/1796306 (0%) sender
[ 5] 0.00-30.00 sec 2.17 GBytes 623 Mbits/sec 0.021 ms 0/1796074 (0%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 1472
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 2.87 GBytes 822 Mbits/sec 0.000 ms 0/2093777 (0%) sender
[ 5] 0.00-30.00 sec 2.87 GBytes 822 Mbits/sec 0.022 ms 0/2093503 (0%) receiver
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length 1500
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 1.98 GBytes 568 Mbits/sec 0.000 ms 0/1420887 (0%) sender
[ 5] 0.00-30.00 sec 1.98 GBytes 568 Mbits/sec 0.026 ms 0/1420707 (0%) receiver
บทวิเคราะห์
เคราะห์และเปรียบเทียบผลการทดสอบ
สรุปผลการทดสอบ
ขนาดแพ็กเก็ต (bytes) | Bitrate (Sender) | Bitrate (Receiver) | Lost (%) | Jitter (ms) | Datagrams Lost |
---|---|---|---|---|---|
16 | 9.76 Mbps | 9.76 Mbps | 0% | 0.014 | 0 |
100 | 60.9 Mbps | 60.9 Mbps | 0% | 0.015 | 0 |
300 | 182 Mbps | 182 Mbps | 0% | 0.015 | 0 |
500 | 301 Mbps | 301 Mbps | 0% | 0.016 | 0 |
700 | 414 Mbps | 414 Mbps | 0% | 0.018 | 0 |
900 | 519 Mbps | 519 Mbps | 0% | 0.019 | 0 |
1100 | 624 Mbps | 624 Mbps | 0% | 0.019 | 0 |
1300 | 623 Mbps | 623 Mbps | 0% | 0.021 | 0 |
1472 | 822 Mbps | 822 Mbps | 0% | 0.022 | 0 |
1500 | 568 Mbps | 568 Mbps | 0% | 0.026 | 0 |
เปรียบเทียบกับผลก่อนหน้า
เปรียบเทียบกับ Test case 1.3
iperf3 -u -c 192.168.2.10 -t 30 -R -O 5 -f m -b 1024M --length {size}
ตัวเลือก -R ทำให้การทดสอบเป็นแบบ reverse (ย้อนกลับ) โดยหมายความว่า server (MacBook Pro ที่ 192.168.2.10) จะส่งข้อมูลไปยัง client (NanoPi R3S) แทนที่จะให้ client ส่งข้อมูลไปยัง server
iperf3 -u -c 192.168.2.10 -t 30 -O 5 -f m -b 1024M --length {size}
ไม่มีตัวเลือก -R ซึ่งหมายความว่า test จะทำงานในโหมดปกติ โดย client (NanoPi R3S) จะส่งข้อมูลไปยัง server (MacBook Pro)
สรุป:
- -R ในคำสั่งแรก ใช้สำหรับทดสอบการรับข้อมูล (ดาวน์โหลด) โดยให้ server ส่งข้อมูลไปให้ client
- ไม่มี -R ในคำสั่งที่สอง ทำให้เป็นการทดสอบการส่งข้อมูล (อัปโหลด) จาก client ไปยัง server
ภาพรวมของการทดสอบ
- โหมด Reverse (-R): ในโหมดนี้ Server (MacBook Pro) เป็นผู้ส่งข้อมูลไปยัง Client (NanoPi R3S) โดยผลลัพธ์จะแสดงข้อมูลแยกสำหรับ “sender” (server) และ “receiver” (client)
- โหมดปกติ (ไม่มี -R): ในกรณีนี้ Client เป็นผู้ส่งข้อมูลไปยัง Server ผลลัพธ์ที่แสดงจะเหมือนกันสำหรับ sender และ receiver (และไม่มีการสูญหายของแพ็กเก็ต)
ด้านล่างนี้คือตารางเปรียบเทียบผลการทดสอบ UDP ด้วยคำสั่ง iperf3 ในโหมด Reverse (-R) และโหมดปกติ (ไม่มี -R) ตามขนาด UDP payload (parameter --length):
Payload (bytes) | Reverse Mode Sender (Mbit/s) | Reverse Mode Receiver (Mbit/s) | Reverse Mode Loss (%) | Normal Mode Throughput (Mbit/s) | Normal Mode Loss (%) |
---|---|---|---|---|---|
16 | 35.0 | 15.7 | 55 | 9.76 | 0 |
100 | 241 | 62.1 | 74 | 60.9 | 0 |
300 | 627 | 333 | 47 | 182 | 0 |
500 | 882 | 560 | 36 | 301 | 0 |
700 | 913 | 786 | 14 | 414 | 0 |
900 | 553 | 552 | 0.058 | 519 | 0 |
1100 | 943 | 746 | 21 | 624 | 0 |
1300 | 951 | 601 | 37 | 623 | 0 |
1472 | 930 | 930 | 0.076 | 822 | 0 |
1500 | 919 | 660 | 28 | 568 | 0 |
หมายเหตุ:
- ในโหมด Reverse (ใช้ -R) จะพบว่า sender ส่งข้อมูลได้ในอัตราที่สูงกว่า แต่ receiver สูญเสียแพ็กเก็ตในบางขนาด payload
- ในโหมดปกติ (ไม่มี -R) ทั้ง sender และ receiver มี throughput ที่ตรงกันและไม่มี packet loss
- การเลือก UDP payload ที่เหมาะสม (เช่น 900 หรือ 1472 bytes) ช่วยลดการสูญหายและเพิ่มประสิทธิภาพในการรับส่งข้อมูล
สรุป:
- โหมด Reverse (-R): ประสิทธิภาพและความถูกต้องของการรับส่งข้อมูลขึ้นอยู่กับการเลือก UDP payload size โดยขนาดที่เล็กเกินไปทำให้เกิด packet loss สูง ในขณะที่ขนาดที่เหมาะสม (900–1472 bytes) จะให้ throughput สูงและสูญหายน้อย
- โหมดปกติ (ไม่มี -R): ส่งข้อมูลในทิศทางเดียว (client → server) ได้ผลลัพธ์ที่เสถียรโดยไม่มี packet loss โดย throughput จะเพิ่มขึ้นตามขนาด payload แต่ต้องระวังไม่ให้เกินขีดจำกัดของ MTU
ในเครือข่ายที่ใช้ MTU มาตรฐาน (1500 bytes) การตั้งค่า UDP payload ให้มีขนาด 1472 bytes เป็นการปรับแต่งที่เหมาะสม เพราะจะลดปัญหาการ fragment ของแพ็กเก็ต (1500 - 20 bytes (IP header) - 8 bytes (UDP header) = 1472 bytes) ซึ่งสามารถนำไปใช้จริงในหลายกรณี ดังนี้:
-
ระบบสตรีมมิ่งวิดีโอหรือเสียงแบบ Real-time:
เช่น กล้องวงจรปิดหรือแอป VoIP ที่ต้องการลด latency และ jitter การใช้ payload ขนาด 1472 bytes ช่วยให้ส่งข้อมูลได้ครบในแต่ละแพ็กเก็ตโดยไม่ต้องถูกแบ่งย่อย ทำให้คุณภาพของสัญญาณคงที่และลดความล่าช้า
-
เกมออนไลน์:
สำหรับเกมออนไลน์ที่มีความไวต่อ latency การส่งข้อมูลแบบ UDP ด้วย payload 1472 bytes ช่วยให้ข้อมูลส่งได้รวดเร็วและลดความเสี่ยงจากการ fragment ซึ่งอาจก่อให้เกิด delay หรือ packet loss ในระหว่างการเล่น
-
การทดสอบประสิทธิภาพเครือข่าย:
ในการวัดประสิทธิภาพผ่านเครื่องมือ iperf3 การใช้ payload 1472 bytes เป็นแนวทางที่ดีในการทดสอบ throughput และ packet loss ที่เกิดขึ้นจริงในเครือข่ายที่มี MTU 1500 เนื่องจากจะได้ผลลัพธ์ที่ใกล้เคียงกับการใช้งานจริงในสภาพแวดล้อมที่ไม่มี fragmentation
สรุปแล้ว การใช้งานจริงของการตั้ง UDP payload ที่ 1472 bytes คือการทำให้แต่ละแพ็กเก็ตสามารถส่งผ่านเครือข่ายได้อย่างเต็มที่โดยไม่ต้องถูกแบ่งย่อย ซึ่งเหมาะกับงานที่ต้องการความเสถียรและประสิทธิภาพสูงในระบบเครือข่ายที่ใช้ MTU มาตรฐานในปัจจุบัน
เมื่อนำไปใช้ร่วมกับ WireGuard VPN
WireGuard เป็น VPN ที่ใช้ UDP เป็น transport protocol ซึ่งหมายความว่าการส่งข้อมูลใน WireGuard จะถูก encapsulate อยู่ใน UDP packet ทำให้มี overhead เพิ่มขึ้นจาก header ต่าง ๆ (เช่น IP, UDP, และ WireGuard headers) เมื่อเทียบกับการส่ง UDP ปกติ
ตัวอย่างเช่น ในเครือข่ายที่มี MTU 1500 bytes การทดสอบพบว่า UDP payload ที่ดีที่สุดสำหรับการส่งข้อมูลโดยตรง (ไม่ผ่าน VPN) คือ 1472 bytes (1500 - 20 IP header - 8 UDP header) ซึ่งช่วยหลีกเลี่ยงการ fragment ของ packet แต่เมื่อใช้ WireGuard ตัวเองจะเพิ่ม header และข้อมูลการเข้ารหัสเข้าไป ทำให้พื้นที่สำหรับ payload จริง ๆ ลดลง
ดังนั้นในการตั้งค่า WireGuard ควรปรับ MTU ให้ต่ำลง (เช่นประมาณ 1420 bytes หรือต่ำกว่า) เพื่อป้องกันไม่ให้เกิดการ fragment เมื่อมีการ encapsulate ข้อมูลใน VPN tunnel การเลือกค่า MTU ที่เหมาะสมจะช่วยให้ประสิทธิภาพของ VPN ดีขึ้น ลด latency และลดปัญหาการสูญเสีย packet
สรุปคือ แนวคิดของการเลือก payload ที่เหมาะสมใน UDP ทดสอบ (1472 bytes) นั้นนำมาประยุกต์ใช้ในสภาพแวดล้อม VPN เช่น WireGuard โดยต้องคำนึงถึง overhead ที่เพิ่มเข้ามาจากการ encapsulation เพื่อให้ได้การตั้งค่า MTU ที่เหมาะสมกับการใช้งานจริงใน VPN tunnel
Test case 2 - All ports
Test case 2.1 - Workstation -> R3S -> Macbook
ข้ามการทดสอบ
Test case 2.2 - Workstation <- R3S <- Macbook
ข้ามการทดสอบ
Test case 2.3 - Workstation <-> R3S <-> Macbook
ข้ามการทดสอบ
สรุป
NanoPi R3S เป็นเราต์เตอร์ที่ดี ราคาก็น่ารัก เหมาะสำหรับผู้เริ่มต้นศึกษา หรือเอามาใช้โปรเจคเล็ก ๆ หรือจะเอามารัน Docker ที่เป็น Containers สำหรับโปรเจคเล็ก ๆ ก็ได้ อีกทั้งเครือข่ายยังมีประสิทธิภาพในการทดสอบที่ดี
แต่ถ้าเปรียบเทียบกับ Raspberry Pi ก็มีจุดประสงค์และการออกแบบที่แตกต่างกันพอสมควร แม้ว่าทั้งคู่จะเป็นบอร์ดคอมพิวเตอร์ขนาดเล็ก แต่ NanoPi R3S ถูกออกแบบมาเป็นเราต์เตอร์โดยเฉพาะ ในขณะที่ Raspberry Pi ถูกออกแบบให้เป็นคอมพิวเตอร์ขนาดเล็กอเนกประสงค์ที่จะประยุกต์ใช้งานได้หลากหลาย
รุ่น | ราคา | Specs |
---|---|---|
NanoPi R2S Plus | $36.00 | - Rockchip RK3328, Quad-core Cortex-A53 - 1GB LPDDR4 - Ethernet 2 ports (1Gbps) - รองรับ eMMC, MicroSD |
NanoPi R3S | $40.00 | - Rockchip RK3566, Quad-core Cortex-A55 - 2GB LPDDR4X - Ethernet 2 ports (1Gbps) - รองรับ eMMC, MicroSD |
NanoPi R4S | $62.00 | - Rockchip RK3399, Dual-Core Cortex-A72 + Quad-Core Cortex-A53 - 4GB LPDDR4 - Ethernet 2 ports (1Gbps) - รองรับ eMMC, MicroSD |
NanoPi R5S | $78.00 | - Rockchip RK3568B2, Quad-core Cortex-A55 - 4GB LPDDR4X - Ethernet 3 ports (1x1Gbps Native, 2x2.5Gbps PHY) - รองรับ eMMC, MicroSD - เป็นรุ่น LTS |
NanoPi R5C | $64.00 | - Rockchip RK3568B2, Quad-core Cortex-A55 - 4GB LPDDR4X - Ethernet 2 ports (2x2.5Gbps PHY) - รองรับ eMMC, MicroSD |
จุดเด่น
- ได้ CPU A55 มีประสิทธิภาพดีกว่า A53 และไม่ได้ร้อนจนเกินไป เพราะถ้าสูงกว่านี้ดีกว่าก็จริงแต่ก็จะร้อนมาก ๆ
- ตัว Case ออกแบบมาเป็นแบบ Fanless ทำให้ไม่มีเสียงดังขณะทำงาน
- รองรับ eMMC และ MicroSD โดยเฉพาะ eMMC จะมีความเร็วสูงกว่า MicroSD
- ขนาด Form Factor ที่เล็ก และสวยงาม (เล็กพอ ๆ กับบัตรเครดิต)
- ราคาไม่ได้สูง เหมาะสำหรับผู้ต้องการเริ่มต้นเอามาศึกษา และใช้งานสำหรับโปรเจคส่วนตัว
- Bandwidth ที่สูง และใกล้เคียงกับ 1Gbps และสามารถใช้งานได้ดีเมื่อเครือข่ายมีความหนาแน่น
- รองรับ OS ที่หลากหลาย
จุดด้อย
- ไม่รองรับการเชื่อมต่อกับ M.2 ทำให้ไม่สามารถเชื่อมต่อ WiFi Module เพิ่มได้ (อาจจะต้องมองรุ่นอื่นเป็นตัวเลือก เช่น R5S, R5C)
- Ethernet 2 ports 1Gbps ถ้าจำเป็นต้องเชื่อมต่อกับอุปกรณ์อื่นที่เป็นแบบ 2.5Gbps อาจจะต้องดูรุ่นที่สูงกว่า
Gallery
https://seafile.2my.xyz/d/5a3c59b49c4b4affa8ac/
Refs:
- Stupid Projects. (2022). Benchmarking the NanoPi R5S. Retrieved March 10, 2025, from https://www.stupid-projects.com/posts/benchmarking-the-nanopi-r5s/
- FriendlyElec. (n.d.). NanoPi R3S Hardware Specification. Retrieved March 10, 2025, from https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R3S#Hardware_Spec
- FriendlyElec. (n.d.). NanoPi R3S Product Page. Retrieved March 10, 2025, from https://www.friendlyelec.com/index.php?route=product/product&product_id=303