2013-10-03 3 views
3

Linux에서 swapper 작업 (유휴 작업)에 관한 쿼리가 하나 있습니다. 나는 16 개의 CPU 코어를 가진 시스템을 가지고있다. taskstats를 사용하여 swapper 작업이 코어 0에서 실행되고 있음을 알 수있었습니다. 해당 CPU에 대해 실행 가능한 다른 작업이 없을 때 모든 CPU 코어가 swapper 작업을 실행해야한다는 인상을 받았습니다. 그게 사실이라면 왜 swapper 작업이 cpu0에서만 실행되고 있는지, 그리고 실행중인 작업이 없을 때 cpu 코어의 나머지 부분은 무엇을합니까?여러 CPU 코어에서 Swapper 작업

귀하의 도움을 기다리겠습니다. 감사.

+0

왜 신경 쓰시죠? % t는 커널의 비즈니스입니다! –

+0

내 프로젝트 도구 중 하나에서 유용하기 때문에 신경 써야합니다. 나는 어떤 CPU 코어의 유휴 시간을 알 수있는 2 가지 방법이있다. 1) taskstats를 통해 각 코어에서 실행되는 swapper 작업의 타이밍을 찾습니다. 2)/proc/stat을 읽습니다. taskstats가 이미 내 프로젝트에 구현되어 있고 두 번째 선택이 오버 헤드가 될 수 있으므로 먼저 선택했습니다. – tshah06

답변

1

다른 작업은 없을 때 유휴 작업 작업이 실행되므로 CPU가 명령을 실행하지 않습니다.

이렇게하면 단일 코어가있는 시스템에서 유휴 프로세스는 CPU가 항상 수행해야 할 작업을 수행하므로 중지되지 않습니다.

멀티 CPU/코어 시스템에서도 마찬가지입니다. 그러나 일부 CPU에서는 시스템이 일부 코어를 유휴 모드로 전환하여 전력을 절약 할 수 있습니다. 이 경우 유휴 프로세스가있는 단일 코어 만 유지하면됩니다. 커널을 해당 코어로 전환하면 필요에 따라 더 많은 코어를 가동시킬 수 있기 때문입니다.

위의 내용은 전체적인 진실을 단순화 한 것입니다. 커널이 옳은 일을 할 수 있다고 믿으십시오. 일반적으로 자신이하는 일을 알고 있으며, 자신에게 가장 좋은 것을 원합니다 .-

+0

답장을 보내 주셔서 감사합니다. 1) 특정 코어가 꺼진 시간을 알 수있는 방법이 있습니까? 커널이 사용자가 읽을 수있는 데이터를 어딘가에 덤프합니까? 2) 커널의 멀티 코어 시스템 처리에 대한 자세한 내용을 알고 싶으면 제안 할 수있는 링크가 있습니까? – tshah06

+1

1) 잘 모르겠습니다. 2) 당신이 알고 싶은 것은 매우 아키텍처이며, 심지어 CPU와 관련이 있습니다. 따라서 최신 정보를 찾을 수있는 곳은 커널 소스입니다. – jbr

관련 문제