Jef*_*lin 9 linux performance linux-networking
我有一个用作文件服务器的 Linux 机器。我有一个每月的 cron 作业,它对数据驱动器的内容进行压缩,然后通过 scp 将其复制到另一台机器以安全保存。生成的 tarball 大小约为 300GB,完成复制通常需要大约一天半的时间(通过 802.11g Wi-Fi 连接)。
今天我注意到我的备份工作还没有完成,它已经运行了 3 天。检查目标机器,我可以看到到目前为止只有大约三分之一的数据被复制,而且它似乎以 < 300KB/秒的速度增长。
iperf在两台机器之间使用,我可以看到我的网络吞吐量约为 20Mbits/sec,这与我对 802.11g 连接的期望值差不多。
dd if=srcfile of=/dev/null在源计算机上使用时,我可以从源驱动器(外部 USB 驱动器)读取大约 45MB/秒的数据。
使用dd if=/dev/zero of=/destdrive/tmp.dat在目标计算机上,我可以写30MB /秒到目标驱动器(内部SATA驱动器)。对于 SATA 驱动器来说,似乎有点慢,但也不算慢(当然也不是 300KB/秒慢)。
所以我似乎已经排除了网络吞吐量和两端的驱动吞吐量,那么我还能在哪里寻找瓶颈的来源?
小智 9
为什么您首先使用scp复制大文件?scp有自己的开销(加密、真实性检查等)。
您可以使用rsync(rsync 非常适合通过 ssh 传输大文件,因为它能够继续由于某种原因中断的传输。由于它使用哈希函数来检测相等的文件块,因此继续功能非常强大。)或一些其他工具。
请看这个帖子。通过网络复制大文件,速度更快
如果您无论如何要使用scp,那么你应该使用traceroute和tcpdump并iftop看到来自源的信息包到目的地。也许你会发现一些不寻常的东西。
| 归档时间: |
|
| 查看次数: |
36927 次 |
| 最近记录: |