제가 개발 중인 Linux bash 스크립트에 대해 질문이 있습니다. 이 스크립트에는 .iso 파일을 여러 SATA 버너에 동시에 설정하고 굽는 기본 루틴이 있으며, 실제 굽기를 수행하기 위해 Growthisofs를 사용하는 별도의 스크립트도 호출합니다. 이 "인덱스"는 레코더 수(x) 또는 필요한 디스크 수(1 -> x)만큼 호출됩니다. 버너를 여러 번 호출하고 시작한 후 단일 굽기 속도가 급격히 떨어졌습니다. 이 문제를 해결하기 위해 굽기 프로세스 수를 모니터링하고 2로 제한하여 다른 인스턴스가 완료될 때만 다른 인스턴스를 호출합니다. 완료된 호출이 더 이상 실행되지 않더라도 속도는 여전히 감소됩니다. 사용되는 리소스 수준이 상당히 일관되게 유지되어야 한다고 가정하고 있기 때문에 분명히 뭔가가 빠졌습니다. 커널 2.6.32 이후에는 동시 드라이브에 액세스하는 기능이 사라진 것으로 알고 있습니다. 어떤 의견이라도 감사하겠습니다.
답변1
내 경험에 따르면 Linux 커널 5.6에서는 여러 활성 /dev/sr의 병목 현상이 사라졌습니다. 이전 커널과 libburn에서는 /dev/sr 대신 /dev/sg를 사용하여 문제를 해결했습니다. (Growthofs가 /dev/sg를 사용할 수 있는 기회를 제공할 줄은 몰랐습니다.)
원인, 다양한 해결 방법 및 궁극적인 구제책에 대해서는 다음을 참조하세요. https://dev.lovelyhq.com/libburnia/web/wiki/ConcurrentLinuxSr