2012-10-20 5 views
0

왜 CPU의 25 %를 사용하는 php cli 프로세스가이를 줄이는 방법이 있습니까? 지금은 3 개의 인스턴스를 실행 중이지만 작업을 더 빨리 완료하려면 훨씬 더 많은 것을 실행하고 싶습니다.php-cli 속도 향상

배경 정보 : 나는 transbase db에서 mysql db로 데이터를 이동합니다. enter image description here EDIT : 브라우저에서 실행하면 CPU에 눈에 띄는 부하가 없습니다.

답변

0

더 많은 프로세스가 더 빠른 처리를 의미하지는 않습니다. PHP 프로세스는 가능한 한 빨리 작업을 완료 할 수있는만큼의 CPU를 사용합니다. 당신이 쿼드 코어 프로세서를 가지고 있고 그것이 단일 스레드 작업이기 때문에 아마 25 %입니다.

각 코드를 다른 코드에 할당 할 수 있다면 이상적으로 4 개의 프로세스가 필요합니다. 또한 데이터베이스 나 디스크 I/O를 기다리기 때문에 단일 스레드가 항상 모든 CPU 전원을 사용할 수 없으므로 더 많은 프로세스를 진행하십시오. 모든 CPU 전원이 모두 소모되기 때문에 5 번째 프로세스가 중단되지는 않습니다. OS는 처리 능력을 실행중인 모든 프로세스로 나누는 반면, 단지 점유율을 차지할 것입니다.

너무 많은 것을 시작하지 마십시오. 모든 프로세스에는 약간의 오버 헤드가 있으며 200 개의 동시 프로세스가 있으면 이익을 얻지 못할 것입니다.

+0

이 모든 것이 의미가 있지만 왜 그렇게 많이 사용하고 있습니까? cgi를 실행할 때 httpd 프로세스는 항상 10 % 미만이며 브라우저의 여러 탭에서 실행할 수 있습니다. – slash197

+0

cli에서 실행한다는 것은 PHP를 초기화 할 때마다 실행할 때마다 실제로 새 프로세스를 만드는 것을 의미합니다. 아파치에는 새 요청을 위해 재활용되는 초기화 된 작업자 프로세스 풀이 있으므로 실행되는 스크립트 만 구문 분석되고 초기화되며 심지어 캐싱 될 수 있다고 생각합니다. – GolezTrol