2012-03-23 1 views
1

내 질문에 답할 수있는 잘 알고있는 리눅스 전문가가 여기에 있다면 궁금합니다. 나는 스케쥴러가 CPU 및 IO 바운드 프로세스에 대해보다 효율적/효과적 인 OS 클래스에 대한 통계 분석을 수행해 왔습니다. 내가 설명 할 수없는 GNU 시간에서 얻은 한 가지 결과는 SCHED_OTHER에서 실행되는 동일한 프로세스가 SCHED_RR 및 SCHED_FIFO (CPU 바운드 프로세스의 경우)보다 적은 사용자 시간으로 완료되는 이유입니다. 나는 사용자 시간이 스케줄 정책에 독립적이라고 생각했다. 누구든지이 기술을 설명 할 수있는 리소스를 알려주거나 나를 가리킬 수 있습니까? (소스 코드를 배우는 것 외에는 그냥 학급 수업).리눅스 SCHED_OTHER (CFS) 사용자 시간 대 SCHED_RR 및 SCHED_FIFO 사용자 시간

내가 사용하고있는 데이터는 여러 개의 CPU 실행 프로세스가 동시에 실행되는 여러 실행에 걸쳐 수집되어 데이터가 상당히 정확해야합니다. 감사.

답변

0

CPU- 바운드 SCHED_FIFO 실시간 프로세스는 다른 프로세스가 비동기 읽기를 시작할 기회를 제공하지 않는다고 생각할 수 있습니다. SCHED_OTHER을 사용하면 더 많은 프로세스가 비동기 읽기를 시작하므로 데이터 대기 시간이 줄어 듭니다.

+0

좋습니다, 우리는 SCHED_OTHER가 아마도 일종의 기회주의 최적화를 수행하고 있다고 생각했지만이 내용에 대한 문서를 찾기가 어려웠습니다. 정보 주셔서 감사합니다. –

0

캐싱 효과 (이것은 이와 같은 성능 비교에서 정기적으로 발생 함) 때문일 수 있습니다.

모든 컨텍스트 스위치는 프로세스 (및 커널)가 캐시 라인의 일부를 스톰프하기 때문에 캐시 덩어리를 잃어 버리게됩니다.

관련 문제