2012-05-23 3 views
0

실행하는 데 약 1 초가 걸리고 파일을 입력으로 가져와 출력으로 다른 파일을 생성하는 프로그램이 있습니다. 문제는 약 30 개의 파일을 초당 처리 할 수 ​​있어야한다는 것입니다. 처리 할 파일은 대기열 (memcached를 통해 구현 됨)로 사용할 수 있으므로 순서대로 정확하게 처리 할 필요가 없으므로 기본적으로 프로그램의 인스턴스가 처리 할 파일을 체크 아웃합니다. 시스템 자원을 사용할 수있을 때 자동으로 프로그램 인스턴스를 실행하는 프로세스 관리자를 사용할 수 있습니다.프로세스의 여러 인스턴스를 자동으로 관리합니다.

"시스템 리소스"는 단순히 "한 번에 두 개의 프로세스까지"를 의미하지만, 다른 컴퓨터로 이동하면 2 또는 10 또는 100 또는 그 이상이 될 수 있습니다. 적어도 이것을 처리하기 위해 유틸리티를 사용할 수 있습니다. 복잡한 작업이 끝나면 CPU가 사용 가능할 때마다 이러한 시스템이 전용 될 것이므로 다른 프로세스를 가져오고 싶습니다. CPU 시간이 제한적인 리소스 인 것 같습니다. 프로그램은 메모리를 많이 사용하지 않습니다.

어떤 도구가 이러한 종류의 프로세스 관리를 수행 할 수 있습니까?

답변

0

폭풍 - 자세한 내용을 모르면 Backtype Storm을 제안합니다. 하지만 아마 현재 코드를 완전히 다시 작성해야합니다. :-)

자세한 내용은 Tutorial이지만 자세한 내용은 기본적으로 작업 튜플을 가져 와서 작업자 노드의 토폴로지를 통해 배포합니다. "스파우트 (spout)"는 작업을 토폴로지로 내보내고 볼트는 작업의 일부 비트가있는 그래프의 단계/작업입니다. 볼트가 작업을 마치면 같은/새로운 튜플을 토폴로지로 다시 보냅니다. 볼트는 병렬 또는 직렬로 작업을 수행 할 수 있습니다.