매번 몇 시간 동안 100번씩 프로그램을 실행해야 하는데, 직렬로 실행할 때는 문제가 되지 않고 시간이 오래 걸릴 뿐이지만 GNU 병렬 또는 bash의 간단한 "&"를 사용하여 병렬화하려고 하면 구성 중 작동이 멈추거나 정지되고 교착 상태가 의심되지만 아직 프로그램을 작성하지 않았으므로 디버깅할 수 없습니다.
나는 그럴 가능성이 거의 없다고 생각하지만, Linux의 다른 모든 것으로부터 격리되거나 격리된 방식으로 애플리케이션을 실행하는 방법(아마도 간단한 방법)이 있습니까? (여러개의 가상박스를 사용할 필요가 없습니다. :P)
답변1
이 프로그램이 수행하는 작업 - 무엇을 사용하고 있는지 알 수 있습니다(공유 메모리, 뮤텍스, 동일한 이름의 파일 및 각 인스턴스가 이를 덮어쓰는 경우 tmp 디렉토리를 확인할 수 있음). 노력하다스트레스그것?
문제의 정도는 확실하지 않지만 다음을 사용할 수 있습니다.루스트어바웃-https://wiki.archlinux.org/index.php/Docker경량 컨테이너 또는 뷰 만들기퀴베스 오스격리 환경 만들기https://qubes-os.org/아니면 이 프로그램을 사용해 보세요뿌리 뽑힌환경
답변2
KaP가 말했듯이 : 그것을 추적하십시오. 일시 중단된 동안 -p를 사용하여 strace를 시작할 수 있습니다.
다른 사용자로 실행하는 경우(사용자당 복사본 1개) 문제를 재현할 수 있습니까?
운이 좋다면 프로그램이 동시에 시작될 때만 교착 상태가 됩니다. 이 경우 GNU Parallel에서 "--delay"를 사용하여 다음 작업 시작을 지연하세요.