sftp 接続ssh2.sftpのラッパーを使用しました。すべてのトランザクションに対して 1 つのセッション ハンドルを使用した場合、少数のトランザクションの後、伝送速度が非常に遅くなります。ただし、再接続後は通信速度は問題ありません。例:
/**
* 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);
}
再接続せずに問題を解決する方法はありますか? ありがとう。