현재 Linux 버전에서는스케줄링 도메인CPU, 하이퍼스레딩, NUMA 노드 등에 프로세스를 분산합니다.
시스템에 존재하는 도메인과 작업이 도메인 간에 분배되는 방식과 관련된 일부 통계를 시각화하고 싶다고 가정해 보겠습니다. 문제는 다음과 같습니다.
- 이 시스템에는 어떤 도메인이 존재합니까?
- 각 NUMA 노드/물리적 코어/기타 도메인이 균등하게 활용되고 있습니까? 아니면 프로세스가 일부 코어에 액세스하기 위해 경쟁하는 반면 다른 프로세스는 활용도가 낮습니까?
- 프로세스는 얼마나 자주 마이그레이션됩니까?
그러한 요구를 충족시키기 위해 어떤 도구를 사용할 수 있습니까?
답변1
논리적 CPU에서 NUMA 노드 배열로의 경우:
lscpu
또는:
numactl --hardware
또한 노드 메모리 및 노드 "거리"에 대한 실시간 정보도 표시합니다.
프로세스 메모리 사용량에 대한 일반 정보:
numastat -p <PID_or_name_pattern>
가방에서
numactl
.더 복잡한 도구의 경우:
numatop
(맨페이지에 따르면 Intel Xeon 및 일부 IBM 프로세서만 지원합니다)
다음 코어가 바쁘게 작동하는 동안 유휴 코어를 보면 매우 놀랄 것입니다(물론 cpuset을 사용하여 시스템을 이 상태로 강제로 설정하지 않는 한). 간단한 top
히트를 사용하여 1
각 CPU의 활동을 볼 수 있습니다.
답변2
JP Lozi가 2016년 논문 "Linux Scheduler: a Decade of Wasted Cores"를 위해 만든 도구는 다음에서 찾을 수 있습니다.https://github.com/jplozi/wastedcores 비슷한 것을 찾고 있다면. 다양한 벤치마크 실행에 대한 다양한 그래픽 출력은 다음 위치에 있습니다. http://sfu.lozi.org/results/
나는 그것을 사용하지 않았으므로 가용성을 보장할 수 없습니다. 4.1 Linux 커널에 대해 마지막으로 업데이트된 것 같습니다.