2013-06-16 3 views
0

새로운 파일에 대해 약 200,000 개의 디렉토리를보기 위해 inotify를 사용하고 있습니다. 생성시 스크립트보기가 파일을 처리 한 다음 제거됩니다. 그것은 많은 프로세스를 가진 더 많은 compex 시스템의 일부이기 때문에 테스트를 실행하는 동안 이것을 벤치마킹하여 CPU, 메모리, 디스크 등의 시스템 성능 통계를 얻고 싶습니다.Python 시스템의 벤치마킹 시스템 성능

필자는 inotify 스크립트를 데몬으로 실행하고 여러 개의 디렉토리 (테스트 전에 무작위로 선택)에 테스트 파일을 생성하는 두 번째 스크립트를 가질 계획입니다.

필자는 이와 같은 성능, 특히 실행중인 Linux 서버에 미치는 영향을 벤치마킹하는 가장 좋은 방법을 제안했습니다.

답변

1

반복 가능한 벤치 마크를 얻기 위해 최대한 많은 다른 프로세스를 제거하려고합니다. 예를 들어, 디렉토리에 NFS 마운트 된 별도의 전용 서버를 설정합니다. 이 서버는 inotify와 Python 스크립트 만 실행합니다. 간단한 서버 측정의 경우 CPU 및 메모리를 모니터링하려면 top 또는 ps을 사용합니다.

실제 테스트는 얼마나 빨리 스크립트가 디렉토리를 "소모"하는지, 이는 전적으로 프로세스에 달려 있습니다. 스크립트를 프로파일 링하여 시간을 어디에서 보는지 알 수 있습니다.

+0

나는 이런 식으로 생각해 봤는데, 당신의 답은 그것을 증명하는 데 도움이됩니다. 나는'dstat'이'top'보다 낫다고 생각합니다. 'dstat'는 파일에 출력 할 수 있으며 그래프로 변환 할 수 있습니다. ps가 시스템 성능을 모니터하는 데 어떻게 도움이 될지 모르겠습니다. 더 자세히 설명해 주시겠습니까? 개별 프로세스를 확인하는 데 사용합니다. –

+1

@EdwardWilliams : 프로세스가 디스크 입출력 (또는 스와핑)을 기다리고 있다면 프로세스가 디렉토리를 스캔 할 때 'ps'상태가 'D'로 표시됩니다. 또한 프로세스에서 사용중인 % CPU 및 % 메모리를 표시 할 수도 있습니다. 프로세스가 디스크 바인딩 상태가 아니며 % 값이 상대적으로 낮 으면 (예 : 50 % 미만) 프로세스가로드를 따라 잡습니다. 상태가 'R'이면 코드를 실행하여 계속 유지합니다. 다른 파일을 기다리는 동안 상태는 '잠자기'상태이므로 'S'여야합니다. 나는 전에'dstat '를 사용하지 않았다. –