나는해야 할 일련의 작업이 있습니다. 작업 간의 종속성이 없습니다. 나는이 작업들을 기계에 배포하는 데 도움이되는 도구를 찾고 있습니다. 유일한 제한은 각 시스템이 한 번에 하나의 작업 만 실행해야한다는 것입니다. 작업량이 매우 균형을 이루지 않아 처리량을 극대화하려고합니다. 현재의 해킹 셸 스크립트는 컴퓨터 단위의 작업 대기열을 미리 작성하고 부하가 많은 시스템의 대기열에서 대기중인 대기열로 작업을 이전 할 수 없기 때문에 효율적이지 않습니다.소규모로드 평준화
이전 제안에는 과장된 것처럼 보이는 SLURM이 포함되어 있으며, 더 많은 잔인한 LoadLeveller가 포함되어 있습니다.
GNU 병렬은 거의 내가 원하는대로 보이지만 원격 시스템은 SSH를 말하지 않습니다. 커스텀 작업 시작 프로그램이 사용되었습니다 (대기열 기능이 없음). Gnu Parallel은 작업을 보내기 전에 즉시 쉘 스크립트로 대체 할 수있는 곳입니다.
그래서, 요약 : 받아 들일 수 기계의 작업 + 목록의
- 목록 : 처리량을 극대화 할 수 있습니다. 가능한 한 쉘에 가깝게하는 것이 좋습니다.
최악의 시나리오는 bash의 lockfile과 함께 해킹 될 수 있지만 더 나은 해결책이 어딘가에 존재해야하는 것처럼 느껴집니다.
쉘 내장 작업을 사용하는 것이 좋습니다. 잠시 동안처럼 # jobs> = maxjobs sleep .1; 명령 & – technosaurus