我有一台迷你电脑,SSD 通过 USB 3.0 连接到它。它的速度大约为 100-200 MBps。但如果我通过 Samba 上传或发送文件,速度会降至 40 mbps。问题是什么?我在迷你电脑和主机上都使用 Linux。我使用 orange pi 3 LTS 作为 samba 主机,电脑和迷你电脑之间有千兆位连接
答案1
在网络文件传输过程中涉及以下组件:
- 文件系统 FS 驱动程序和 USB 设备速度(根据您的具体情况)
- 网络速度
- 应用层,用于处理服务器和客户端上的数据
文件系统
取决于你的发行版fio
或低版本,dd
请谷歌搜索,那里有大量使用示例。我的命令是fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=DISK_PATH/testfio --bs=4k --iodepth=64 --size=2G --readwrite=randrw --rwmixread=75
请记住,--direct=1
对于某些系统,这会影响速度,因为它会禁用缓存等,请尝试使用和不使用。不要忘记指定您的路径。考虑测试客户端。
网络速度,你可以在双方使用 iperf 或 operf3:对于服务器运行iperf -s
和客户端iperf -c <server IP addr>
最后是应用层 – Samba
对于 Samba,您可以使用本地连接来从端口读取/写入数据。我的意思是在本地绑定共享并尝试从服务器读取/写入数据以获得访问权限。请记住,Samba 可以调整大量参数以实现正常运行。例如,这个帖子,谷歌搜索,https://forum.openmediavault.org/index.php?thread/12986-tunning-samba-for-more-speed/或其他许多人。
我的计划是在开始调查 Samba 之前调查流程的所有部分,当所有部分都解决后,继续进行 Samba 调查和调整。希望这会有所帮助。