【问题标题】:SFTP upload very slow with phpseclib使用 phpseclib 的 SFTP 上传速度非常慢
【发布时间】:2014-07-18 05:32:56
【问题描述】:

SFTP 上传速度很慢,我在客户端和 phpseclib 中对其进行了测试,客户端速度快得多,而 phpseclib 慢得多。这是正常行为吗?这是什么原因造成的?

我减少了我们要导出的内容,并使用 tar w/gzip 来归档文件,因此它是一次压缩上传。存档大约 16MB,如果不是库本身,我不确定什么会限制上传,在这种情况下,这将是编码问题而不是上传问题?

任何帮助将不胜感激。

【问题讨论】:

    标签: sftp phpseclib


    【解决方案1】:

    这个问题可以说是Transfering file for download through SFTP with PHP very slow的重复。

    无论如何,如果您执行phpinfo(),您是否看到安装了 mcrypt?如果 phpseclib 可用,则使用 mcrypt,否则使用纯 PHP 实现。

    另外,SSH2 支持多种加密算法,有些算法比其他算法更快。可能是您正在比较 phpseclib 的客户端只是使用比 phpseclib 实现的更快的算法。

    最后,你使用的是什么版本的 phpseclib?最新的是 0.3.7。

    【讨论】:

    • 已下载 0.3.7,是的 mcrypt 已安装。这就是为什么我很好奇它为什么这么慢。
    • 上传功能完成后执行define('NET_SSH2_LOGGING', 1);然后$ssh->getLog()。然后将输出复制/粘贴到 pastebin.com 或其他任何地方并发布链接。这应该可以显示减速发生的位置。
    • 它太大了,超过 500kb,这对于您提到的服务的客人来说是最大的。我可以通过电子邮件将其发送给您,这是很多信息,但不是很有用。这是一个数组,有很多项目,每次显示都很小,但我想把它们加在一起会花费更多的时间。但它并没有真正向我解释任何事情,代码中是否有任何睡眠或者我如何判断它是否使用 mcrypt?
    • 作者在分析它们时反应迅速-您可以通过 terrafrost@php.net 给他发电子邮件并将其作为附件包含在内。或者,也许您可​​以在某处托管它的 zip。 define('NET_SSH2_LOGGING', 1); 不会告诉您是否安装了 mcrypt,但 getServerIdentification() 会。如果你发布它,我可以告诉你它是否基于它的返回值。至于我自己在日志中要查找的内容.. 主要是针对需要很长时间的数据包。日志文件有多大?
    猜你喜欢
    • 2016-05-21
    • 2019-09-10
    • 2016-12-28
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2012-02-25
    相关资源
    最近更新 更多