25장. tuned-profiles-real-time을 사용하여 CPU 격리
애플리케이션 스레드에 가능한 가장 많은 실행 시간을 제공하기 위해 CPU를 분리할 수 있습니다. 따라서 CPU에서 가능한 한 많은 불필요한 작업을 제거하십시오. CPU 격리에는 일반적으로 다음이 포함됩니다.
- 모든 사용자 공간 스레드 제거.
- 바인딩되지 않은 커널 스레드 제거. 커널 관련 바인딩된 스레드는 특정 CPU에 연결되어 있으며 이동할 수 없습니다.
-
시스템의 각 IRQ(interrupt Request) 번호
N의/proc/irq/N/smp_affinity속성을 수정하여 인터럽트를 제거합니다.
tuned-profiles-realtime 패키지의 isolated_cores=cpulist 구성 옵션을 사용하면 작업을 자동화하여 CPU를 격리할 수 있습니다.
사전 요구 사항
- 관리자 권한이 있습니다.
25.1. 분리할 CPU 선택 링크 복사링크가 클립보드에 복사되었습니다!
격리할 CPU를 선택하려면 시스템의 CPU 토폴로지를 신중하게 고려해야 합니다. 사용 사례마다 다른 구성이 필요합니다.
- 캐시를 공유하여 스레드가 서로 통신해야 하는 다중 스레드 애플리케이션이 있는 경우 동일한 NUMA 노드 또는 물리적 소켓에 보관해야 합니다.
- 관련이 없는 여러 실시간 애플리케이션을 실행하는 경우 CPU를 NUMA 노드 또는 소켓으로 분리하는 것이 적합할 수 있습니다.
hwloc 패키지는 lstopo-no-graphics 및 numactl 을 포함하여 CPU에 대한 정보를 가져오는 데 유용한 유틸리티를 제공합니다.
사전 요구 사항
-
hwloc패키지가 설치되어 있습니다.
프로세스
물리적 패키지에서 사용 가능한 CPU의 레이아웃을 확인합니다.
# lstopo-no-graphics --no-io --no-legend --of txt그림 25.1. lstopo-no-graphics를 사용하여 CPU 레이아웃 표시
이 명령은 사용 가능한 코어 및 소켓 수와 NUMA 노드의 논리 거리를 표시하므로 다중 스레드 애플리케이션에 유용합니다.
또한
hwloc-gui패키지는 그래픽 출력을 생성하는lstopo유틸리티를 제공합니다.노드 간 거리와 같은 CPU에 대한 자세한 정보를 확인합니다.
# numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 node 0 size: 16159 MB node 0 free: 6323 MB node 1 cpus: 4 5 6 7 node 1 size: 16384 MB node 1 free: 10289 MB node distances: node 0 1 0: 10 21 1: 21 10