numa

어떤 물리적 주소가 어떤 NUMA 노드에 속하는지 확인하는 방법은 무엇입니까?
numa

어떤 물리적 주소가 어떤 NUMA 노드에 속하는지 확인하는 방법은 무엇입니까?

물리적 주소가 있고 그것이 속한 NUMA 노드를 확인하고 싶습니다. 검색 중 NUMA 노드를 확인하는 몇 가지 방법을 찾았습니다.가상 주소(예: move_pages)이지만 실제 주소는 포함되지 않습니다. 아마도 두 번째로 좋은 방법은 pagemap물리적 주소를 가상 주소로 역변환하는 것을 확인하는 것입니다 . ...

Admin

멀티스레드 애플리케이션에서 사용되는 CPU 스레드 이해
numa

멀티스레드 애플리케이션에서 사용되는 CPU 스레드 이해

최근에 저는 멀티스레드 애플리케이션이 CPU 코어를 어떻게 사용하는지에 대해 조사했습니다. 다음을 사용하여 각 스레드가 어떤 코어를 사용하고 있는지 확인할 수 있습니다. 예: ceph-osd는 다중 스레드 애플리케이션입니다. for i in $(pgrep ceph-osd); do ps -mo pid,tid,fname,user,psr -p $i;done 내 CPU에는 32개의 코어와 72개의 스레드가 있으므로 ceph-osd에는 72개의 TID(스레드 ID)가 있습니다. PID TID...

Admin

커널 API 함수를 호출하기 전에 NUMA를 명시적으로 활성화해야 합니까?
numa

커널 API 함수를 호출하기 전에 NUMA를 명시적으로 활성화해야 합니까?

저는 C++ 애플리케이션(Ubuntu에서 실행)을 단일 소켓에서 다중 소켓으로 변환하고 있습니다. NUMA 인식으로 메모리 할당을 변경하고 싶습니다. 애플리케이션이 메모리 할당 및 코어 예약을 위해 C API 함수를 호출해야 한다는 것을 알고 있지만 NUMA가 제대로 작동하려면 이 작업을 수행하기 전에 Linux 커널 설정을 활성화해야 합니까? 예를 들어, grub 부팅 명령줄 등을 변경해야 합니까? ...

Admin

두 개의 CPU가 있는 컴퓨터에서 각 CPU의 로컬 메모리의 물리적 주소를 얻는 방법은 무엇입니까?
numa

두 개의 CPU가 있는 컴퓨터에서 각 CPU의 로컬 메모리의 물리적 주소를 얻는 방법은 무엇입니까?

내 컴퓨터의 사양은 다음과 같습니다 2 인텔 CPU x86_64 총 메모리 8GB(CPU당 4GB) 운영 체제는 Rocky Linux 9입니다. memmapgrub의 매개변수를 사용하여 CPU당 1GB의 메모리를 예약 하고 싶습니다 . 확인 dmesg하고 /proc/meminfo사용해 보기도 했는데요 numaclt -H. 하지만 각 CPU의 메모리 물리적 주소를 찾을 수 없습니다. 각 CPU 로컬 메모리의 물리적 주소를 얻는 방법은 무엇입니까? ...

Admin

Linux의 NUMA 인식 캐시
numa

Linux의 NUMA 인식 캐시

후속 질문입니다다중 CPU 시스템의 dentry/inode 캐시/메모리 할당자 구성, 그러나 여기서는 다른 방식으로 질문을 제기하려고 합니다. 내 문제는 듀얼 소켓 시스템이 있고 커널 캐시(dentry/inode/버퍼)용 메모리가bank0(cpu0의 메모리 뱅크)에서 할당되어 결국 소모된다는 것입니다. 그러나 Bank1은 캐싱에 사용되지 않으므로 시스템 전체에서 사용 가능한 메모리가 많이 있습니다. 따라서 이 상태에서 메모리 할당자는 내 프로세스가 실행되는 위치에 상관없이(메모리 선호도를 설정한 경우...

Admin

Linux에서 NUMA를 사용할 때 "문제"가 있습니까?
numa

Linux에서 NUMA를 사용할 때 "문제"가 있습니까?

2소켓 CPU를 갖춘 새로운 시스템이 있습니다. NUMA 시스템을 사용할 때 프로세서 0의 애플리케이션이 프로세서 1에 연결된 메모리에 액세스하려고 하면 병목 현상이 발생할 수 있다고 들었습니다. Linux 커널은 NUMA 시스템에서 실행되는 소프트웨어를 어떻게 처리합니까? 가능하다면 커널이 (자동으로) 모든 애플리케이션 스레드와 메모리를 하나의 CPU에 배치하는 우선순위를 정할까요? 애플리케이션이 CPU를 많이 사용하고 하나의 CPU에서 사용할 수 있는 코어 수보다 더 많은 스레드를 생성하는 경우...

Admin

프로세스가 전역 CPUAffinity 설정을 무시합니다.
numa

프로세스가 전역 CPUAffinity 설정을 무시합니다.

전역 CPUAffinity 를 설정하여 이 작업을 수행하고 있습니다 /etc/systemd/system.conf. 아래 스니펫을 참조하세요. root@PC1-03:~# cat /etc/systemd/system.conf # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public L...

Admin

2슬롯 서버는 PCIe 위치를 표시하지만 4슬롯 서버는 표시하지 않는 이유는 무엇입니까(4슬롯 서버에서 PCIe 위치를 찾는 방법)?
numa

2슬롯 서버는 PCIe 위치를 표시하지만 4슬롯 서버는 표시하지 않는 이유는 무엇입니까(4슬롯 서버에서 PCIe 위치를 찾는 방법)?

두 대의 서버가 있습니다. 소켓 2개슈퍼마이크로 X9DBL-3F 소켓 4개슈퍼마이크로 X10QBI 2소켓 서버를 실행하면 hwloc-ls각 NUMANode에 HostBridge가 있는 PCIe 토폴로지가 보이지만 4소켓 서버에서는 NUMANode 대신 패키지가 표시되고 모든 HostBridge가 하단에 나열됩니다. 또한 lscpu2소켓 서버에는 2개의 NUMA 노드가 표시되지만 4소켓 서버에는 1개의 NUMA 노드만 표시됩니다. 4소켓 서버의 어느 슬롯에 어떤 PCIe 장치가 연결되어 있는지 어떻...

Admin

Linux의 NUMA 아키텍처도 메인 메모리를 공유합니까?
numa

Linux의 NUMA 아키텍처도 메인 메모리를 공유합니까?

NUMA(Non-Uniform Memory Access) 아키텍처에 대해 읽고 있습니다. 하드웨어 아키텍처는 다음과 같습니다. 다중 프로세서 시스템에서 각 코어는 원격 메모리에 액세스할 수 있는 것보다 더 빠르게 내부 로컬 메모리에 액세스할 수 있습니다. 내가 모르는 것은: 메인 메모리(RAM)도 노드 간에 나누어져 있는 것 같습니다. 동일한 CPU 내의 모든 노드가 동일한 속도로 메인 메모리에 액세스할 수 있다고 생각했기 때문에 이는 혼란스럽습니다. 그렇다면 Linux는 왜 각 노드의 메인 메모리...

Admin

numactl: 이 시스템은 NUMA 정책을 지원하지 않습니다.
numa

numactl: 이 시스템은 NUMA 정책을 지원하지 않습니다.

numactl을 사용할 때 나는 본다. numactl: this system does not support NUMA policy. 일부 커널 구성이 활성화되지 않았기 때문입니까? BIOS에 NUMA가 활성화되어 있는지 확인하십시오. lscpu는 NUMA 노드가 있음을 보여줍니다. ...

Admin

NUMA 노드의 페이지 오류가 "중요"합니까 아니면 "사소"입니까?
numa

NUMA 노드의 페이지 오류가 "중요"합니까 아니면 "사소"입니까?

내가 이해한 바로는 단일 소켓 Linux 시스템에서 sudo ps -eo min_flt,maj_flt,cmd이와 같은 명령은 일반적으로 영구 저장소가 "약간" 건드리지 않은 것으로 페이지 오류를 처리합니다. 그러나 오류로 인해 한 NUMA 노드에서 다른 노드로 데이터를 전송해야 하는 경우에도 이것이 NUMA 시스템에서 사실입니까? 아니면 '메이저'의 선을 넘는 걸까요? ...

Admin

첫 번째 접촉 정책을 통해 로컬 도메인에 데이터를 할당하는 것에 대해 이야기할 때 ccNUMA 시스템에서 동적 메모리를 사용하는 이유는 무엇입니까?
numa

첫 번째 접촉 정책을 통해 로컬 도메인에 데이터를 할당하는 것에 대해 이야기할 때 ccNUMA 시스템에서 동적 메모리를 사용하는 이유는 무엇입니까?

많은 책에서 ccNUMA 시스템의 첫 번째 접촉 정책에 대해 이야기할 때 위치 도메인에 데이터를 배포할 때 동적 메모리 할당을 사용합니다. 예를 들어, 스택에 배열이 있으면 어떻게 될까요? 첫 번째 터치 정책도 같은 방식으로 작동하나요? ...

Admin

Linux 시스템에서 NUMA 노드 메모리를 비활성화하는 방법
numa

Linux 시스템에서 NUMA 노드 메모리를 비활성화하는 방법

특정 NUMA 노드/소켓과 연결된 메모리에 대한 액세스를 비활성화하는 방법이 있습니까?누마기계? 우리는 HP DL560 시스템과 관련하여 데이터베이스 공급업체와 일부 분쟁을 겪고 있습니다. DB 영업형 기술 지원 담당자는 우리가 DL560을 사용할 수 없고 슬롯이 적기 때문에 새 DL360을 구입해야 한다는 사실에 기뻐했습니다. 나는 그들이 소켓 사이의 메모리 액세스 속도에 관심이 있다고 생각합니다. 그들은 제가 DL560을 계속 유지하려면 슬롯 두 개를 비워 두어야 한다고 제안했습니다. 나는 그들이...

Admin

페이지 마이그레이션을 중단시키는 것은 무엇입니까?
numa

페이지 마이그레이션을 중단시키는 것은 무엇입니까?

OpenSUSE 42.3, 커널 4.4.175-89 - 기본값 메모리 대역폭을 많이 사용하는 애플리케이션을 실행하는 동안 다음 동작을 알게 되었습니다. 애플리케이션이 노드가 2개인 NUMA 시스템의 물리적 메모리의 약 55%를 사용했습니다. 애플리케이션은 병렬화를 위해 OpenMP를 사용하지만 NUMA를 고려하지 않습니다. 따라서 꽤 좋은 실행 속도를 달성하기 위해 페이지 마이그레이션에 의존합니다. 다음과 같습니다. 약 180번의 반복에서 다음을 사용하여 수동으로 캐시를 지웠습니다. # ec...

Admin

각 NUMA 도메인에 별도의 대형 페이지 풀 할당
numa

각 NUMA 도메인에 별도의 대형 페이지 풀 할당

내 이중 소켓 컴퓨터에서 첫 번째 소켓에 고정된 응용 프로그램 A가 첫 번째 풀을 사용하고 응용 프로그램 B가 두 번째 A 풀링된 소켓을 사용하여 자체 로컬 풀을 사용하도록 두 개의 hugepage 풀(각 소켓당 하나씩)을 할당하려고 했습니다. 그러나 hugepages 수를 입력하면 /sys/devices/system/node/node{0,1}/hugepages/hugepages-1048576kB/nr_hugepages여전히 hugeadm --explain두 개가 아닌 하나의 풀과 하나의 마운트 지...

Admin