크로스 소켓 트래픽은 무엇을 의미합니까?

크로스 소켓 트래픽은 무엇을 의미합니까?

읽는 동안이것Intel의 Kubernetes 블로그 게시물 정보CPU 관리자사용할 수 있다고 언급되어 있습니다 CPUs allocated on the socket near to the bus which connects to an external device.

크로스 소켓 트래픽은 무엇을 의미하며 어떤 문제를 일으킬 수 있습니까? 내 추측은 다음과 같습니다.

  • 한 소켓의 CPU는 다른 소켓의 CPU에서만 액세스할 수 있는 버스에 연결된 장치에 액세스해야 하므로 해당 장치에 대한 명령은 다른 소켓의 CPU에서 실행되도록 메모리에 기록되어야 합니다.
  • 한 소켓의 CPU는 다른 소켓의 CPU에서만 액세스할 수 있는 버스에 연결된 장치에 액세스해야 하므로 장치로 전송된 명령은 다른 소켓의 CPU로 직접 전송된 다음 해당 장치로 전달됩니다( 이것이 작동하는지 또는 가능한지 확실하지 않습니다)

답변1

Kubernetes 블로그 게시물의 작성자는 말도 안 되는 말을 하며 바퀴를 재발명하려고 노력하고 있습니다. 그들은 "CPU 관리자"라고 부르는 또 다른 PBS(Portable Batch System)입니다.

질문에 답하기: "소켓 간 트래픽은 무엇을 의미하며 어떤 문제를 야기합니까?" - 우선 이것이 무엇인지 말할 필요가 있습니다.다중 프로세서 컴퓨터즉, 두 개 이상의 CPU와 CPU 소켓이 각각 있는 컴퓨터 시스템입니다. 다중 프로세서 시스템에는 두 가지 아키텍처가 있습니다.SMP(대칭형 다중 처리)그리고AMP(비대칭 다중 처리).

현재 사용 가능한 대부분의 다중 프로세서 시스템은 SMP 아키텍처 시스템입니다. 이러한 시스템에는 별도의 물리적 CPU가 공통의 주 메모리로 처리될 수 있는 소위 공유 메모리가 있습니다. 물리적 CPU 상호 연결 유형에 따라 이러한 시스템에는 시스템 버스와 크로스바 스위치라는 두 가지 유형이 있습니다.

수직 및 수평 스위치가 있는 SMP 시스템 다이어그램:

SMP 크로스바 스위치

시스템 버스가 있는 SMP 시스템 블록 다이어그램:

SMP 시스템 버스

대부분의 SMP 시스템에는시스템 버스유형 CPU 연결, Kubernets 블로그 게시물은 이러한 유형의 시스템에 관한 것입니다.

시스템 버스 CPU에 연결된 SMP 시스템에는 장점과 단점이 있습니다. 이 시스템의 가장 큰 단점은 다음과 같습니다.NUMA(비균일 메모리 액세스) 시스템. 무슨 뜻이에요. 각 CPU 소켓은 자체 메모리 뱅크와 물리적으로 연결되어 있지만 Linux 커널은 SMP에서 이 연결을 구분할 수 없습니다. 메모리 뱅크는 Linux에서 단일 모놀리식 메모리로 처리됩니다. 그러나 그럼에도 불구하고 NUMA 현상이 발생합니다. 즉, 물리적 CPU는 다른 CPU 소켓과 연결된 메모리 뱅크보다 더 빠르게 자체 물리적 메모리 뱅크 주소와 상호 운용되지 않습니다. 그러므로 우리는 당연히 다른 물리적 CPU에 연결된 물리적 메모리 그룹에 속하는 SMP의 공통 메인 메모리의 주소를 사용하는 물리적 CPU를 피하고 싶습니다.

"제한사항" 섹션Kubernates 블로그 게시물NUMA 현상을 "소켓 간 트래픽" 문제라고 부릅니다(인용).

사용자는 크로스 소켓 트래픽을 방지하기 위해 외부 장치(예: 가속기 또는 고성능 네트워크 카드)를 연결하는 버스에 가까운 소켓에 CPU를 할당할 수 있습니다. CPU 관리자는 아직 이러한 유형의 정렬을 지원하지 않습니다.

그런데 무언가에 "더 가까운" 특정 CPU에 스레드를 할당할 수 없는 것은 당연합니다. Linux 커널은 SMP 시스템의 물리적 CPU를 구별할 수 없으므로 물리적 CPU의 모든 CPU 코어를 동등한 일반 SMP 프로세서로 취급합니다. "추가" CPU 코어 사용을 피하고 "핫 캐시" 및 "콜드 캐시" 플래그를 사용하는 잘못된 시도가 있지만 SMP 시스템의 특성으로 인해 효율적으로 작동하지 않습니다.

다음 내용도 읽어보세요.

관련 정보