2011-11-08 3 views
1

Supervisord을 사용하여 5 개의 PHP 스크립트 인스턴스를 실행하고 있습니다. 5 개의 프로세스를 실행하는 것이 PHP 스크립트가 처리하는 것을 최대화하는 최적의 수입니다. 내가 5 점 이상 5 점 미만으로 달리면, 나는 더 나쁜 결과를 얻는다.PHP 스크립트에서 디스크 입출력을 프로파일 링하는 방법은 무엇입니까?

나는 이미 xdebugwebgrind으로 PHP 스크립트 자체를 프로파일 링하고 있습니다.

디스크 입출력이 5 개의 프로세스가 실행 중일 때 CPU와 메모리가 최대치가되지 않아 더 많은 병렬 프로세스를 실행하지 못하는 것 같습니다. Amazon EC2 인스턴스에는 4 개의 가상 코어가 있으며 Mysqld와 Supervisord는 지정된 시간에 50 % 이상의 CPU를 사용하지 않습니다.

Linux Cent OS 머신에서 디스크 입출력을 프로파일 링하는 방법 (이 문제의 원인은 무엇입니까?)

내가 찾는 다른 병목은 무엇입니까? --SOLUTION--

나는 매우 깊이 정보를 준 어떤 간단한 해결책을 찾을 수 없습니다. 나는 내가 무엇을 찾고 있는지 정확히 모르겠다. 그래서 나는이 질문과 대답이 모호하다는 것에 대해 사과한다.

+1

일반 오래된 'iotop'을 옵션으로 사용 하시겠습니까? 그러면 어떤 프로세스가 디스크에 액세스하는지 라이브보기로 볼 수 있습니다. – mario

+0

나는 그것을 설치하고 그것을 시도했다. 좋은 데이터처럼 보입니다. 그러나 정보를 어떻게 처리해야하는지 명확하지 않습니다. 시스템 한계가 무엇인지 어떻게 알 수 있습니까? –

답변

1

스크립트가 실행되는 동안 iostat -c -n 1을보고 맨 오른쪽의 % util 열에보고되는 내용을 확인하십시오. 직감이 옳다면 프로세스가 실행되는 동안 % util은 100 %에 가깝습니다.

이 스크립트는 네트워크를 통해 데이터를 가져 오는 처리를 수행합니까? 그것은 병목 일 수도 있습니다.

스크립트가하는 일에 대해 조금 더 알지 못해서 말하기가 어렵습니다. 각 프로세스는 무엇을하고 있습니까? 5가 최적의 프로세스 수라고 어떻게 결정 했습니까?

+0

크롤링/스크래핑 시스템입니다. 각 스크립트는 파일 테이블에서 다음 파일을 선택하고 다운로드하지 않은 경우 다운로드합니다. 그런 다음 링크를 긁어서 링크 및 메타 정보와 같은 다양한 정보를 저장합니다. 나는 5 개의 프로세스가 서로 다른 수의 프로세스를 시도하고 초당 파일 수를 추적하여 최적의 프로세스 수라고 판단했습니다. 5 개의 프로세스를 실행하면서 초 당 2.8 파일을 넘었습니다. 나는 iostat을 시도해 본 결과, % util은 10 %를 넘지 않습니다. 나는 계속 추측 할 것이다. 또한 iostat -x 1을 사용해야했습니다. –

+0

'yum install sysstat' – mate64

관련 문제