2012-08-14 2 views
3

다른 서버의 nfs share에서 오디오 파일을 복사하려고 시도했습니다. 복사에 PHP을 사용하면 8MB 오디오 파일을 복사하는 데 5.5 초가 걸립니다. 그러나 쉘에서 cp 명령을 사용하면 0.845 초가 걸립니다.PHP 원격 NFS 공유에서 복사 할 때 linux cp 명령보다 느린 복사 기능

누구에게 어떤 문제가 있는지, 어떻게 해결할 수 있습니까?

<?php 
    $result = copy('/remote/dir/remoteFile.wav’,’12345.wav'); 
    var_dump($returnVar); 
?> 
+3

PHP로 실행 한 직후에'cp' 명령을 사용하려고 했습니까? 그렇다면 파일은 디스크 캐시에있을 가능성이 높기 때문에 테스트 할 때 다른 결과를 얻을 수 있습니다. – HonkyTonk

+0

@HonkyTonk 로컬 네트워크를 통한 오버 헤드가 엄청나게 느려서 5 초 안에 8MB가 가능하지만 실제로는 12.5Mb/s입니다. 이 파일이 LAN이나 인터넷을 통해 복사되고 있습니까 (VPN 등을 고려해야합니다). 이것이 시끄러운 네트워크 때문일 수 있습니까? 이 재현성있는 시간의 엄청난 차이가 있습니까? – DaveRandom

+0

나는 PHP'exec ("cp file newLocation")'또는 그와 같은 것들을 포개어'cp'를 실행하려고하면 어떤 결과를 얻는 지 꽤 알고 싶다. – andrewsi

답변

2

또한, 하나의 네이티브 OS 수준의 통화를 사용하고, 다른 하나는 웹 서버 등을 통해 같은 호출 응용 프로그램 계층이기 때문에 PHP를 복사 리눅스 CP보다 느리게 될 것입니다 확신 할 수 있습니다. 너무 많은 층이 직접 어떤을 다할 것입니다 당신이 exec('cp ..') 명령을 시도 할 수 어쩌면 대신 copy()의 .. 나는이 정확히 고칠 수 생각하지 않습니다 .. 알림 등 등을 준수하기 위해 프로토콜을 처리하기 위해,

를 통해 이동합니다 PHP에서 linux cp 명령을 실행하는 방법. cp from shell만큼 속도가 빠르지는 않지만 copy() from php보다 조금 더 빠를 수도 있습니다. 그것을 시도해보십시오.

+0

감사합니다.'exec ('cp ..')'를 시도했지만 사본을 작성하는 데 또 20ms가 걸렸습니다. (나는 20ms가 많지 않다는 것을 안다) – shaun

+0

'shell_exec'는 조금 더 빨라진다. – 3zzy