内容提要
本文介绍了在树莓派上进行硬盘和网络性能测试的方法,包括使用hdparm测试硬盘读性能,dd命令测试写性能,以及使用speedtest-cli和iperf3测试网络速度。强调了测试时的细节和不同工具的适用场景,以确保结果准确。
延伸解读
测试前先明确IO模式
文章强调,硬盘读写测试结果受IO模式影响极大。读操作是否走缓存、缓存大小,写操作是否同步刷盘、刷盘时机等,都会导致结果差异。例如hdparm的-T测试直接读内存,速度飞快但无磁盘参考价值;dd不加conv=fdatasync时只写缓存,速度虚高。因此测试时必须明确当前使用的IO模式,否则容易得出似是而非的结论。
dd写测试的陷阱与正确用法
文章指出,使用dd测试写性能时,若不加conv=fdatasync或oflag=dsync,数据仅写入内存缓存,结果无意义。而加上status=progress参数实时显示速度,看似专业,实则展示的是缓存写入速度,会从200MB/s逐渐降至11MB/s,且终止时仍有大量数据未落盘。因此推荐使用dd bs=1M count=256 if=/dev/zero of=test conv=fdatasync,并适当增大bs和count以提高准确性。
网络测速工具的选择
文章区分了两种网络测速场景:公网测速和点对点测速。公网测速可使用speedtest-cli,但多次测试可能连接到不同服务器,结果有差异,遇到403错误可尝试加--secure参数。点对点测速则用iperf3,它支持下行带宽测试(-R参数),而iperf只支持上行。注意iperf和iperf3不兼容,需根据需求选择。
CPU性能测试的架构差异
文章通过sysbench和md5sum对比了不同CPU的性能。发现ARM架构(如Cortex-A72、Neoverse-N1)在sysbench单线程测试中表现优于x86_64,但md5sum计算速度却相差不大甚至更低。这表明不同架构间这两个指标并不完全正相关,但相同架构内基本正相关。因此评估CPU性能时,应结合多种测试方法,避免单一指标误导。
Q&A
如何在树莓派上测试硬盘的读性能?
可以使用hdparm工具,命令为sudo hdparm -t [device]进行测试。
使用dd命令测试硬盘写性能的正确方法是什么?
使用命令dd bs=1M count=256 if=/dev/zero of=test conv=fdatasync进行测试。
如何在树莓派上测试网络速度?
可以使用speedtest-cli测试公网速度,或使用iperf3进行点对点速度测试。
lsblk命令的作用是什么?
lsblk命令用于查看当前挂载的块设备及其分区信息。
md5sum命令在性能测试中有什么用途?
md5sum可以用来评估CPU执行效率,通过计算数据的速度来进行性能对比。
sysbench工具可以测试哪些性能?
sysbench可以用于CPU和内存的性能测试,支持单线程和多线程基准测试。