我正在从我的 AWS 设置中定期下载 gzip 压缩的数据库转储(大约 150MB)。
虽然正常的 http/https 下载速度(通过 Apache 文件服务)是 >>300kb/秒,但当我使用 scp 下载转储时,我只能获得大约 30-50kb/秒的速度。
这么慢的原因是什么?
我如何才能更快速、更安全地下载数据库转储文件?
谢谢!
答案1
我遇到过类似的问题,最后发现是因为我的 ISP 限制(或以其他方式干扰)非标准端口上的流量。他们显然认为任何不在端口 25/80/443 等上的流量都是文件共享,因此故意降低其速度。
我建议您尝试切换 ISP,或者首先您也可以尝试配置 sshd 来监听端口 443(假设您该机器上没有带有 SSL 的 Web 服务器)并尝试这种方式。
答案2
尝试将cipher_spec
scp 会话的 更改为-c blowfish-cbc
(或 中的密码.ssh/config file
)。这将稍微减轻加密负载。
在我的本地局域网上,我看到速度从~28MB/s 增加到~35MB/s。
答案3
为什么不在本地使用 gpg 来加密转储呢?然后,您可以通过 HTTP 或 FTP 传输它们,或将它们发布到 usenet 上,或者做您想做的事情,而不会危及您的安全(好吧,您可能不应该将它们发布到 alt.binaries)。
我对 colo'ed box 的备份也这样做,然后可以放心地将它们存储在 colo 的在线存储中,而不会危及我自己。我的 colo'ed box 也不需要我的私钥 - 只需要公钥即可加密。如果有需要,我会在家里解密。
如果您这样做,请不要忘记关闭 gpg 的 ASCII 装甲,否则您的备份文件将比应有的大小大 30%。
答案4
既然您已经在运行 apache,为什么不创建一个单独的 VirtualHost、一个自签名证书并向数据库转储所在的目录添加基本身份验证呢?这应该允许您更快地安全地下载数据库转储文件。这可能是一种解决方法,但它应该可以实现目标。两个有用的链接是: