解决树莓派4B开启Samba写速很慢的问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

买了个树莓派4B,由于最近有NAS的需要,所以就买了个硬盘盒子(USB3.0)接到树莓派4B上当作NAS用。由于我需要在Windows11和树莓派两个系统之间来回倒,因为网口速度只有1G,有些大文件还是希望可以拔下来传输,所以硬盘格式化成了NTFS格式。然而,悲催的事情出现了,读速只有略微的下降,写速剧烈下滑,SSD接SATA3怎么也不应该只有30MB的写速吧,至少Windows11上测出来有接近500MB的速度。

想过很多可能的问题:
1、供电问题
同样的USB3.0接口Windows11上速度几乎跑满,应该不是供电问题。

2、CPU能力太弱
现实上写入SDCARD可以满速,也不是这个问题。

经过各种研究终于找到了问题所在,接下来,我们来解决这个问题。


一、NAS是什么?

NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。国际著名的NAS企业有Netapp、EMC、OUO等。

二、问题分析

在Linux的5.15的内核说明里找到了问题,官方的说法在下面:

The Linux kernel already has a NTFS implementation, but it has severe limitations (like being read-only), which is why Linux users usually use the userspace ntfs-3g implementation. This release incorporates a new and fully functional NTFS implementation contributed by Parangon Software. This implementation supports NTFS file system versions up to 3.1, normal/compressed/sparse files and journal replaying, plus other features that will be added in the future.

归根结底还是5.15之前的NTFS驱动不行,5.15之后的内核改善了这个问题,这里我们不细究NTFS工作原理,也不细究为什么旧的内核实现速度慢,只解决问题。

下面是Linux内核官方说明,感兴趣的可以自行阅读下。

KernelNewbies: Linux_5.15

二、解决问题

由于和内核有关系,所以需要升级内核。如果你的树莓派已经是5.15+的内核了,那么恭喜你不需要多余的操作,直接就可以用了。如果你的树莓派版本低于5.15.x,那么你需要升级内核才行。

树莓派系统比较特殊,内核升级发行版不一定跟着升。所以,这里我们不用看发行版,直接看内核版本就行了。

1.查看内核

uname -a
Linux raspberrypi 6.1.58-v8+ #1694 SMP PREEMPT Mon Oct 30 11:52:28 GMT 2023 aarch64 GNU/Linux

我是已经升级过后的内核,之前是5.10.x

2.升级内核

需要借助树莓派专用的工具rpi-update升级,升级过程中不要断网,提前备份好数据。

#更新源
sudo apt update
#当前系统升级到最新
sudo apt upgrade
#手动升级
sudo UPDATE_SELF=0 rpi-update

升级成功之后需要reboot

#重启树莓派
sudo reboot

3.重新mount

1.手动mount

#假如设备时/dev/sda1,挂载路径/home/pi/share
sudo mount -t ntfs3 /dev/sda1 /home/pi/share

2.fstab

#拿到设备UUID
sudo blkid
#配置fstab,uid是你自己的日用uid,一般是1000
UUID=3CC00A01C009C25E /home/pi/share ntfs3 defaults,uid=1000,gid=1000,force 0 0
#测试mount
sudo mount -a

注意:一定要测试mount,如果你参数写错了可能系统永远起不来了

4.测速

1.测读速

sudo apt update
sudo apt install hdparm
sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   1848 MB in  2.00 seconds = 925.30 MB/sec
 Timing buffered disk reads: 866 MB in  3.00 seconds = 288.57 MB/sec

经过反复测试使用新内核后读速略有下降,这个留在以后研究。主要是我只有1G网络带宽,满打满算也就能跑到128MB/S,所以对我没影响。如果你是万兆带宽,这个问题要考虑了!

2.测写速

#nas用大文件多,这里直接测大文件拷贝
dd if=/dev/zero of=<挂载路径> bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.14324 s, 175 MB/s

这个速度不能说完美吧,至少比5.15.x下面的内核强太多了。而且,175MB/s的速度已经可以跑满1G网口的理论128MB/s了,实际去掉损耗是跑不到128MB/s的。

无论怎么说30MB提升到175MB还是提升了接近6倍的速度。

5.测试samba

实测写入速度已经到了100MB+的速度了,成功。


总结

1、内核问题通过升级内核解决最好。

猜你喜欢

转载自blog.csdn.net/jiexijihe945/article/details/134165860