在当下这个全球互联的时代,高性能单板计算机正逐渐崭露头角,成为推动创新和个性化解决方案的关键力量。其中,香橙派 Kunpeng Pro作为一款集成了华为鲲鹏处理器的板卡,凭借其卓越的计算性能和广泛的应用潜力,已经吸引了全球开发者与技术爱好者的目光。它不仅为高性能服务器、人工智能和边缘计算等领域注入了新的活力,还以其对开发者友好的接口布局和广泛的软件支持,成为了DIY项目与复杂计算任务的理想选择。 近日,我有幸通过CSDN获得了香橙派 Kunpeng Pro的评测资格,这对于一个热衷于技术的开发者来说,无疑是一次难得的探索和实践机会。 随着科技的不断进步,高性能开发板在物联网设备、智能家居、自动化控制等领域的应用愈发广泛。它们作为连接现实世界与数字世界的桥梁,正推动着社会的智能化和数字化进程。香橙派 Kunpeng Pro作为其中的佼佼者,凭借其强大的计算能力和丰富的接口配置,已经在市场上获得了广泛的关注和好评。 在这篇文章中,我将详细分享我对香橙派 Kunpeng Pro的使用体验,包括其性能测试、适用场景和实际应用案例。我将从开箱开始,一步步展示其硬件特点、系统安装过程以及在实际项目中的应用效果。同时,我也将探讨这款开发板在开源硬件浪潮中的地位和作用,以及它如何为开发者提供创新的平台和可能性。 香橙派 Kunpeng Pro作为一款高性能开发板,不仅为技术爱好者提供了实验和学习的平台,更为专业开发者带来了实现复杂项目的强大工具。通过本文的分享,我希望能让更多人了解这款开发板的优势和潜力,共同探索其在各个领域的应用前景。
到手现拆,这个板子真的让人眼前一亮,狠狠喜欢上了!
在开始测试之前,请确保您的香橙派 Kunpeng Pro 已正确启动,并通过 SSH 连接到您的开发板。
sudo yum update -y
sudo yum install -y sysbench stress-ng
首先,我们将运行单线程的 sysbench CPU 测试,评估香橙派 Kunpeng Pro 的整数计算性能。使用以下命令开始测试:
sysbench cpu --cpu-max-prime=20000 run
结果:
[openEuler@openEuler ~]$ 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 time
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 813.12
General statistics:
total time: 10.0011s
total number of events: 8136
Latency (ms):
min: 1.22
avg: 1.23
max: 1.73
95th percentile: 1.25
sum: 9998.20
Threads fairness:
events (avg/stddev): 8136.0000/0.00
execution time (avg/stddev): 9.9982/0.00
单线程测试结果显示了总执行时间和每秒事件数,这些数据可以帮助我们了解处理器的基础性能。
接下来,我们将运行多线程的 sysbench CPU 测试,评估多核处理能力。使用以下命令进行测试:
sysbench cpu --threads=4 --cpu-max-prime=20000 run
结果:
[openEuler@openEuler ~]$ sysbench cpu --threads=4 --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: 4
Initializing random number generator from current time
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 3160.23
General statistics:
total time: 10.0009s
total number of events: 31620
Latency (ms):
min: 1.22
avg: 1.26
max: 25.26
95th percentile: 1.27
sum: 39977.37
Threads fairness:
events (avg/stddev): 7905.0000/76.40
execution time (avg/stddev): 9.9943/0.00
多线程测试结果展示了香橙派 Kunpeng Pro 在并行处理任务中的表现。比较单线程和多线程测试结果,可以直观地看到多核处理的优势。
我们将使用 sysbench 测试内存的读写性能,评估 8GB 内存的速度和效率。使用以下命令开始测试:
sysbench memory --memory-block-size=1M --memory-total-size=10G run
结果:
[root@openEuler ~]sysbench memory--memory-block-size=1M --memory-total-size=10G 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 time
Running memory speed test with the following options:
block size: 1024KiB
total size: 10240MiB
operation: write
scope: global
Initializing worker threads...
Threads started!
Total operations: 10240 ( 7093.69 per second)
10240.00 MiB transferred (7093.69 MiB/sec)
General statistics:
total time: 1.4389s
total number of events: 10240
Latency (ms):
min: 0.13
avg: 0.14
max: 0.23
95th percentile: 0.15
sum: 1435.52
Threads fairness:
events (avg/stddev): 10240.0000/0.00
execution time (avg/stddev): 1.4355/0.00
测试结果显示内存的读写速度和总执行时间,这些数据反映了系统在处理大量数据时的性能。
为了验证系统在高负载下的稳定性,使用 stress-ng 工具对其进行内存压力测试。
[openEuler@openEuler ~]$ stress-ng --vm 2 --vm-bytes 8G --vm-method all --verify -t 60s
stress-ng: info: [10269] setting to a 60 second run per stressor
stress-ng: info: [10269] dispatching hogs: 2 vm
Segmentation fault
[openEuler@openEuler ~]$ stress-ng --vm 2 --vm-bytes 7G --vm-method all --verify -t 60s
stress-ng: info: [10402] setting to a 60 second run per stressor
stress-ng: info: [10402] dispatching hogs: 2 vm
stress-ng: info: [10402] successful run completed in 62.37s (1 min, 2.37 secs)
[openEuler@openEuler ~]$ stress-ng --vm 2 --vm-bytes 6G --vm-method all --verify -t 60s
stress-ng: info: [10516] setting to a 60 second run per stressor
stress-ng: info: [10516] dispatching hogs: 2 vm
Segmentation fault
[openEuler@openEuler ~]$ stress-ng --vm 2 --vm-bytes 5G --vm-method all --verify -t 60s
stress-ng: info: [10574] setting to a 60 second run per stressor
stress-ng: info: [10574] dispatching hogs: 2 vm
Segmentation fault
[openEuler@openEuler ~]$ stress-ng --vm 2 --vm-bytes 4G --vm-method all --verify -t 60s
stress-ng: info: [10630] setting to a 60 second run per stressor
stress-ng: info: [10630] dispatching hogs: 2 vm
Segmentation fault
当–vm-bytes参数设置为8G、6G、5G和4G时,stress-ng遇到了Segmentation fault(段错误),但设置为7G时却成功完成了测试。 这里的段错误通常表示的是程序试图访问它没有权限的内存区域,或者试图以非法的方式访问内存。在stress-ng的上下文中,这可能是因为它试图分配或操作比系统物理内存或可用虚拟内存更多的内存。
通过这些测试,我们可以观察到在不同内存分配大小下系统的响应情况。虽然内存分配出现问题,但是7G内存分配下,系统均能稳定运行,表明香橙派 Kunpeng Pro 在极端的高负载环境下依然表现良好。
为了评估存储设备的性能,可以使用 sysbench 进行 I/O 性能测试。以下命令将测试随机读取和写入性能:
sysbench fileio --file-total-size=10G --file-test-mode=rndrw prepare
sysbench fileio --file-total-size=10G --file-test-mode=rndrw --time=300 --max-requests=0 run
sysbench fileio --file-total-size=10G --file-test-mode=rndrw cleanup
结果:
[openEuler@openEuler ~]$ sysbench fileio --file-total-size=10G --file-test-mode=rndrw prepare
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
128 files, 81920Kb each, 10240Mb total
Creating files for the test...
Extra file open flags: (none)
Reusing existing file test_file.0
Reusing existing file test_file.1
Reusing existing file test_file.2
Reusing existing file test_file.3
Reusing existing file test_file.4
Reusing existing file test_file.5
Reusing existing file test_file.6
Reusing existing file test_file.7
Reusing existing file test_file.8
Reusing existing file test_file.9
Reusing existing file test_file.10
Reusing existing file test_file.11
Reusing existing file test_file.12
Reusing existing file test_file.13
Reusing existing file test_file.14
Reusing existing file test_file.15
Reusing existing file test_file.16
Reusing existing file test_file.17
Reusing existing file test_file.18
Reusing existing file test_file.19
Reusing existing file test_file.20
Reusing existing file test_file.21
Reusing existing file test_file.22
Reusing existing file test_file.23
Reusing existing file test_file.24
Extending existing file test_file.25
Extending existing file test_file.26
Extending existing file test_file.27
Extending existing file test_file.28
Extending existing file test_file.29
Extending existing file test_file.30
Extending existing file test_file.31
Extending existing file test_file.32
Extending existing file test_file.33
Extending existing file test_file.34
Extending existing file test_file.35
Extending existing file test_file.36
Extending existing file test_file.37
Extending existing file test_file.38
Extending existing file test_file.39
Extending existing file test_file.40
Extending existing file test_file.41
Extending existing file test_file.42
Extending existing file test_file.43
Extending existing file test_file.44
Extending existing file test_file.45
Extending existing file test_file.46
Extending existing file test_file.47
Extending existing file test_file.48
Extending existing file test_file.49
Extending existing file test_file.50
Extending existing file test_file.51
Extending existing file test_file.52
Extending existing file test_file.53
Extending existing file test_file.54
Extending existing file test_file.55
Extending existing file test_file.56
Extending existing file test_file.57
Extending existing file test_file.58
Extending existing file test_file.59
Extending existing file test_file.60
Extending existing file test_file.61
Extending existing file test_file.62
Extending existing file test_file.63
Extending existing file test_file.64
Extending existing file test_file.65
Extending existing file test_file.66
Extending existing file test_file.67
Extending existing file test_file.68
Extending existing file test_file.69
Extending existing file test_file.70
Extending existing file test_file.71
Extending existing file test_file.72
Extending existing file test_file.73
Extending existing file test_file.74
Extending existing file test_file.75
Extending existing file test_file.76
Extending existing file test_file.77
Extending existing file test_file.78
Extending existing file test_file.79
Extending existing file test_file.80
Extending existing file test_file.81
Extending existing file test_file.82
Creating file test_file.83
Creating file test_file.84
Creating file test_file.85
Creating file test_file.86
Creating file test_file.87
Creating file test_file.88
Creating file test_file.89
Creating file test_file.90
Creating file test_file.91
Creating file test_file.92
Creating file test_file.93
Creating file test_file.94
Creating file test_file.95
Creating file test_file.96
Creating file test_file.97
Creating file test_file.98
Creating file test_file.99
Creating file test_file.100
Creating file test_file.101
Creating file test_file.102
Creating file test_file.103
Creating file test_file.104
Creating file test_file.105
Creating file test_file.106
Creating file test_file.107
Creating file test_file.108
Creating file test_file.109
Creating file test_file.110
Creating file test_file.111
Creating file test_file.112
Creating file test_file.113
Creating file test_file.114
Creating file test_file.115
Creating file test_file.116
Creating file test_file.117
Creating file test_file.118
Creating file test_file.119
Creating file test_file.120
Creating file test_file.121
Creating file test_file.122
Creating file test_file.123
Creating file test_file.124
Creating file test_file.125
Creating file test_file.126
Creating file test_file.127
8153726976 bytes written in 314.28 seconds (24.74 MiB/sec).
[openEuler@openEuler ~]$ sysbench fileio --file-total-size=10G --file-test-mode=rndrw --time=300 --max-requests=0 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 time
Extra file open flags: (none)
128 files, 80MiB each
10GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...
Threads started!
结果显示了读取和写入的速率,帮助我们了解系统的存储性能。
安装 ipefr3:
[openEuler@openEuler ~]$ sudo yum install iperf3
使用 iperf3 工具进行网络性能测试,评估网络吞吐量。首先在服务器上启动 iperf3 服务器:
iperf3 -s
然后在客户端上运行 iperf3 测试:
iperf3 -c 192.168.1.100 -t 60
结果:
[root@openEuler ~]iperf3 -c 192.168.1.100 -t 60
Connecting to host 192.168.1.100, port 5201
[ 4] local 192.168.1.101 port 53950 connected to 192.168.1.100 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-60.00 sec 715 MBytes 100 Mbits/sec sender
[ 4] 0.00-60.00 sec 713 MBytes 99.5 Mbits/sec receiver
结果展示了网络带宽,帮助我们了解系统的网络性能。
本次测试对香橙派 Kunpeng Pro 开发板的性能进行了全面评估,涵盖了 CPU 性能、内存性能、I/O 性能和网络性能。以下是各项测试的具体结果与总结:
香橙派 Kunpeng Pro 开发板以其高性能处理器和大容量内存,在实际应用中展现出了强大的计算能力和出色的稳定性。本文旨在全面总结这款开发板的性能特点、使用体验、适用场景以及存在的不足之处,以期为潜在用户提供有价值的参考信息。
香橙派 Kunpeng Pro 开发板凭借其强大的处理器和大容量内存,无论是在单线程还是多线程任务中,都能高效完成。在内存性能测试中,其处理大量数据的能力同样令人印象深刻。此外,该开发板还支持多种外设接口,如HDMI、USB、GPIO,以及通过M.2接口扩展存储,这些特性使得它在各种复杂应用场景中都能游刃有余。
在实际使用中,香橙派 Kunpeng Pro 的系统安装和远程SSH登录过程简便快捷,用户只需简单配置即可开始开发工作。在高负载下,系统表现稳定,这对于需要长时间运行任务的开发者来说至关重要。此外,开发板的兼容性和可扩展性也表现出色,为用户提供了极大的便利。
香橙派 Kunpeng Pro 开发板凭借其出色的性能和丰富的接口,适用于多个领域。在嵌入式系统开发方面,它能够满足工业控制、医疗设备等对高性能计算和稳定性的需求;在物联网应用中,其强大的处理能力和稳定的网络连接确保了物联网设备的可靠运行;在多媒体处理领域,无论是视频处理还是图像识别,它都能提供流畅的性能支持;此外,它还适用于计算机科学、电子工程等领域的教育和科研项目,为学生和研究人员提供强大的实验和开发平台。
尽管香橙派 Kunpeng Pro 开发板在各方面表现出色,但在某些高负载情况下,仍然存在内存不足的问题。例如,在分配8/6G内存进行压力测试时,出现了Segmentation fault错误。这可能是由于系统的内存管理和分配机制导致的,需要进一步优化和改进。此外,为了确保测试结果的准确性和稳定性,我们还需要注意不同测试工具和方法的兼容性。
综上,香橙派 Kunpeng Pro 开发板以其强大的性能和丰富的功能,为各类应用场景提供了广阔的可能性。无论是专业的开发者还是初学者,都能从中受益。尽管在某些高负载情况下存在内存不足的问题,但这并不妨碍它在其他方面的出色表现。希望本文的总结能够为您提供有价值的信息,并激发您对香橙派 Kunpeng Pro 的兴趣。如果您对这款开发板感兴趣,不妨亲自试用一下,体验其强大的性能和丰富的功能。让我们一起探索更多的可能性!