我有一个php脚本,在服务器之间使用pecl ssh2
扩展名(ssh2_sftp_*
大部分)传输大量文件。这些文件每次加起来大约一场演出。带宽被限制,所以这不是问题。问题是ssh2进程占用了大量的CPU,实际上在上传过程中减慢了服务器的速度。有没有办法在一个很好的水平上启动ssh进程?如果php的ssh2
函数创建了一个新进程(我不确定它们是否这样做),那么一旦从php脚本中启动它,是否有可能找到并renice
这个进程?由于ssh2
函数没有线程,因此可能没有。
基本上,我希望PHP的ssh2
函数不要使用这么多CPU。似乎proc_nice
会执行此操作,但看起来我可能不得不使用ionice
。我怎么能这样做?
答案 0 :(得分:1)
简要介绍一下PEAR :: ssh2的来源,表明SSH2函数是在线程和进程中执行的,因此没有真正直接的方法。这有两种可能性:
#!/bin/bash
read SRCFILE
read DSTFILE
nice scp "$SRCFILE" "$DSTFILE"
我们将后者用于相当多的CPU占用任务