我有一个 9.2GB 的文件,我想将它传输到我的 AWS t2.small 实例中以进行备份。当我启动 scp 时,它以大约每秒 3.4MB 的速度复制文件,这导致大约 45 分钟的预期传输时间。
一段时间后,实例总是锁定。我不能再在终端窗口中输入任何内容,网站停止(它是一个网络服务器)并且我无法连接到它。重启实例即可解决问题。
我调查了 EBS 限制:我连接了 2 个 RAID10 200GB gp2 磁盘。从这个文档中我看不到我超过了磁盘的 IOPS 或吞吐量。我还检查了bandwidth,但在其中看不到有关 t2 实例的任何信息。最后我查看了CPU credits,但大概它不应该完全停止?
这是一次性转移,所以我想知道我必须减慢转移多少才能使其安全发生。同时,我想了解管理此 Web 服务器的限制。
如果您想找出问题所在,那么您应该安装一些监控,或者您也可以与系统建立多个连接并运行诸如
top
、vmstat
、等实用程序(如果需要iostat
,请free
使用watch(1))以查看什么是发生在系统资源上。收集数据,然后应用科学方法——这是唯一确定的方法。如果您只想传输文件,请尝试使用split将文件分块并分别传输每个块。然后,您可以使用 cat 再次将块组装回整个文件。
一种可能性是文件系统缓存。通常在进行大量数据复制时,文件系统缓存会耗尽所有可用内存(t2.small 只有 2GB),从而导致交换,这可能会导致系统无响应。不确定是否有办法使用 scp 绕过文件系统缓存。