我已经使用了 sftp 连接ssh2.sftp的包装器。当我们为所有事务使用一个会话句柄时,在少数事务之后传输速度变得非常慢。但是重新连接后传输速度还可以。例子:
/**
* Returns handle for sftp subsystem
* @param string
* @return handle
*/
function methodForConnect(...){
//some connection code.
}
///First way. 1 connection for all transactions, becomes slow after 76 iteration.
$sftp = methodForConnect();
for($i = 0; $i < 2500; $i++){
$data = str_reapeat(rand(0, 1), 1024*1024);
file_put_contents("ssh2.sftp://$sftp/path/to/file", $data);
}
///Second way. New connection per transaction.
for($i = 0; $i < 2500; $i++){
$sftp = methodForConnect();
$data = str_reapeat(rand(0, 1), 1024*1024);
file_put_contents("ssh2.sftp://$sftp/path/to/file", $data);
}
有什么方法可以在不重新连接的情况下解决问题?谢谢。