Allwinner H2+ Sysbench CPU Test (1)
这一篇是关于手上的 全志H2+ CPU 的个人测试结果,仅此参考而已!
对了,裸机,没有任何散热芯片。
首先,看 Linux 上的平台数据:
基于 Sysbench 5秒钟测试质素的结果:
通过这张图,可以很清楚的看到当处理线程 >163 的时候,CPU开始出现很不稳定,因为Linux开始忙不过来了,处理的时间也变长了。
在CPU同时处理72和73条线程的时候操作系统还可以忙得过来,在有4条或以上的线程运行时,CPU开始发烫,CPU的极限是487,平均在400左右。
越多请求,CPU处理一条线程的时间就越久,导致系统越繁忙,导致系统波动就越大。
对了,裸机,没有任何散热芯片。
首先,看 Linux 上的平台数据:
$ lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Model name: ARMv7 Processor rev 5 (v7l)
CPU max MHz: 1008.0000
CPU min MHz: 480.0000
$ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 48.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 1
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 48.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 2
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 48.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 3
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 48.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
Hardware : Allwinner sun8i Family
Revision : 0000
Serial : ----------------------
$ getconf LONG_BIT
32
32位的系统,最小值是480MHz,的确有点可怕,只有测试了之后才知道大致的结果。基于 Sysbench 5秒钟测试质素的结果:
$ sysbench --test=cpu --num-threads=1 --cpu-max-prime=20000 --max-time=5 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Time limit exceeded, exiting...
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 5.0096s
total number of events: 89
total time taken by event execution: 5.0087
per-request statistics:
min: 56.17ms
avg: 56.28ms
max: 59.74ms
approx. 95 percentile: 56.27ms
Threads fairness:
events (avg/stddev): 89.0000/0.00
execution time (avg/stddev): 5.0087/0.00
你可以看到单线程是非常的卡,也非常的慢。
所以我打算写脚本来测试它在多少线程可以表现得最优秀,安装screen来使脚本后台运行,看top参数可以看到CPU已经慢慢的跑了。$ top
top - 20:25:35 up 2 days, 6:51, 1 user, load average: 1.18, 0.29, 0.36
Tasks: 111 total, 1 running, 64 sleeping, 0 stopped, 0 zombie
%Cpu(s): 99.8 us, 0.2 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 502900 total, 148556 free, 43212 used, 311132 buff/cache
KiB Swap: 251440 total, 251440 free, 0 used. 428828 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31689 root 20 0 9192 1920 1600 S 400.0 0.4 0:16.77 sysbench
31666 root 20 0 4932 2264 1824 R 0.3 0.5 0:00.19 top
1 root 20 0 24688 4608 2588 S 0.0 0.9 0:15.33 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:01.24 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
9 root 20 0 0 0 0 S 0.0 0.0 6:18.66 ksoftirqd/0
10 root 20 0 0 0 0 I 0.0 0.0 0:23.47 rcu_sched
11 root rt 0 0 0 0 S 0.0 0.0 0:00.09 migration/0
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1
14 root rt 0 0 0 0 S 0.0 0.0 0:00.06 migration/1
15 root 20 0 0 0 0 S 0.0 0.0 0:04.88 ksoftirqd/1
18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2
19 root rt 0 0 0 0 S 0.0 0.0 0:00.06 migration/2
20 root 20 0 0 0 0 S 0.0 0.0 0:04.41 ksoftirqd/2
23 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3
24 root rt 0 0 0 0 S 0.0 0.0 0:00.05 migration/3
通过top观察,可以成功看到已经跑满了4核心的一段时间。
用脚本测试1-200线程分别计算质数5秒钟的结果,通过分析源文件分析,图表如下:通过这张图,可以很清楚的看到当处理线程 >163 的时候,CPU开始出现很不稳定,因为Linux开始忙不过来了,处理的时间也变长了。
在CPU同时处理72和73条线程的时候操作系统还可以忙得过来,在有4条或以上的线程运行时,CPU开始发烫,CPU的极限是487,平均在400左右。
越多请求,CPU处理一条线程的时间就越久,导致系统越繁忙,导致系统波动就越大。
Datasheet
你可以从 wiki.friendlyarm 下载到有关 Allwinner H2+ 的 Datasheet,值得注意的是:- H2+ embeds one thermal sensor located in the CPU. The thermal sensor Generates interrupt to SW to lower temperature via DVFS, on reaching a certain thermal threshold.
Comments
Post a Comment