Linux에서 프로세스 독점성 설정

Linux에서 프로세스 독점성 설정

프로세스의 성능을 측정하려고 합니다. 나는 매번 동일한 작업을 수행해야 하는 작은 단일 스레드 결정적 코드에 대해 광범위한 성능 측정을 수행했습니다.

다른 프로세스의 스케줄링, 컨텍스트 전환 등으로 인해 성능 변동이 발생하는지 테스트하기 위해 이 프로세스에 대한 프로세서의 독점 사용을 설정하고 싶습니다. 나는 그것이 어떤 코어에서 계속 실행되는지 상관하지 않기 때문에 선호도에 관심이 없습니다. 제가 정말로 관심을 갖는 것은 단일 스레드 프로세스가 어떤 코어인지에 관계없이 실행 중인 코어에 독점적으로 액세스할 수 있다는 것입니다. 가능합니까? 나는 "좋은" 것이 내가 원하는 것을 성취할 것이라고 생각하지 않는다. 왜냐하면 그것은 내가 우선순위를 정할 수 있게 해줄 뿐이기 때문이다. 동일한 우선순위를 가진 다른 작업 중 일부는 내 프로세스와 프로세서 시간을 공유하는 것일 수 있습니다. 또한 내 프로세스가 대기열에서 기다려야 하는지 여부에도 관심이 없습니다. 일단 실행이 시작되면 중단되지 않는지 확인하고 싶습니다.

감사해요

답변1

언제든지 taskset -c 0을 사용하여 중단 없이 원하는 프로세스를 첫 번째 코어로 설정한 다음 다른 모든 프로세스가 다른 코어를 사용하도록 설정할 수 있습니다. IMHO는 비효율적으로 들리지만 원하는 작업을 수행합니다.

답변2

당신이 할 수 있는 가장 좋은 방법은 를 chrt사용하여 프로세스의 예약 클래스를 실시간으로 설정하는 것입니다.

관련 정보