이 소프트웨어 패키지는 다음을 포함하여 인텔(R) 리소스 디렉터 기술(인텔(R) RDT) 및 인텔(R) I/O 리소스 디렉터 기술(인텔(R) I/O RDT)에 대한 기본 지원을 제공합니다. 캐시 모니터링 기술(CMT) , 메모리 대역폭 모니터링(MBM), 캐시 할당 기술(CAT), 코드 및 데이터 우선 순위 지정(CDP) 및 메모리 대역폭 할당(MBA).
원칙적으로 소프트웨어는 하드웨어 스레드 기반의 MSR(모델별 레지스터)을 통해 기술을 프로그래밍합니다. MSR 액세스는 표준 운영 체제 드라이버(Linux의 경우 msr, FreeBSD의 경우 cpuctl)를 통해 이루어집니다. 가장 일반적인 아키텍처 구현에서 기술의 존재는 CPUID 명령을 통해 감지됩니다.
CAT가 특정 SKU에서 구조적으로 지원되지 않는(대신 비구조적(모델별) 구현이 존재하는 경우) 제한된 수의 특수한 경우에는 브랜드 문자열을 통해 감지할 수 있습니다. 이 브랜드 문자열은 CPUID에서 읽은 후 알려진 지원 SKU 테이블과 비교됩니다. 필요한 경우 최종 확인은 특정 MSR을 조사하여 하드웨어 기능을 검색하는 것입니다. 그러나 가능하면 CPUID 열거를 사용하는 것이 좋습니다.
소프트웨어 버전 v1.0.0부터 라이브러리에는 사용 가능한 OS 인터페이스(Linux의 perf 및 resctrl)를 통해 Intel(R) RDT를 사용하는 옵션이 추가되었습니다. 라이브러리는 이러한 인터페이스의 존재를 감지하고 구성 옵션을 통해 선호하는 인터페이스를 선택할 수 있도록 합니다. 결과적으로 'pqos' 또는 'rdtset'과 같은 기존 도구를 사용하여 OS 호환 방식으로 Intel(R) RDT를 관리할 수도 있습니다. v4.3.0 릴리스부터 OS 인터페이스가 기본 옵션이 되었습니다. 인터페이스 선택을 돕기 위해 'pqos' 도구 래퍼가 추가되었습니다. 각각 OS 및 MSR 인터페이스 작업을 위한 'pqos-os' 및 'pqos-msr'입니다.
PID API 컴파일 시간 옵션이 제거되었으며 API를 항상 사용할 수 있습니다. 이러한 API의 올바른 작동은 OS 인터페이스의 가용성 및 선택에 따라 달라집니다.
이 소프트웨어 패키지는 https://github.com/intel/intel-cmt-cat에서 유지 관리, 업데이트 및 개발되었습니다.
https://github.com/intel/intel-cmt-cat/wiki는 FAQ, 사용 예 및 유용한 링크를 제공합니다.
패키지 설치 지침은 INSTALL 파일을 참조하세요.
"lib" 디렉토리:
기술 탐지, 모니터링 및 할당을 위한 API를 제공하는 소프트웨어 라이브러리 파일을 포함합니다. 자세한 내용은 라이브러리 README(lib/README)를 참조하세요.
"lib/perl" 디렉토리:
PQoS 라이브러리 Perl 래퍼를 포함합니다. 자세한 내용은 인터페이스 README(lib/perl/README)를 참조하세요.
"lib/python" 디렉토리:
PQoS 라이브러리 Python 3.x 래퍼를 포함합니다. 자세한 내용은 README 인터페이스(lib/python/README.md)를 참조하세요.
"pqos" 디렉토리:
Intel(R) RDT에 대한 명령줄 액세스를 제공하는 유틸리티의 소스 파일이 포함되어 있습니다. 유틸리티는 라이브러리에 연결하고 API를 통해 기술을 프로그래밍합니다. 자세한 내용은 "pqos/README" 유틸리티 README를 참조하세요. "pqos" 유틸리티의 매뉴얼 페이지에서는 도구 사용에 대한 정보도 제공합니다. $ man pqos
"rdtset" 디렉토리:
RDT 구성을 위해 "작업 세트"와 유사한 기능을 제공하는 유틸리티의 소스 파일을 포함합니다. 유틸리티는 라이브러리에 연결하고 API를 통해 기술을 프로그래밍합니다. 자세한 내용은 "rdtset/README" 유틸리티 README를 참조하십시오. "rdtset" 유틸리티의 매뉴얼 페이지에서는 도구 사용에 대한 정보도 제공합니다. $ man rdtset
"appqos" 디렉토리:
앱을 우선순위 기반 풀로 그룹화할 수 있는 애플리케이션의 소스 파일을 포함합니다. 각 풀에는 시작 시 또는 REST API를 통해 런타임에 설정할 수 있는 Intel(R) RDT 및 Intel(R) SST 구성이 할당됩니다. 자세한 내용은 "appqos/README" 애플리케이션 README를 참조하세요.
"appqos_client" 디렉토리:
앱 QoS 클라이언트 웹 애플리케이션의 소스 파일을 포함합니다. 이 앱은 App QoS가 실행되는 시스템에서 Intel(R) RDT 및 Intel(R) SST를 원격으로 구성할 수 있는 간단한 사용자 인터페이스를 제공합니다. 자세한 내용은 "appqos_client/README" 애플리케이션 README를 참조하세요.
"예제" 디렉터리:
라이브러리 API를 통해 Intel(R) RDT 사용에 대한 C 및 Perl 예제가 포함되어 있습니다. 자세한 내용은 "examples/README"의 README 파일을 참조하세요.
"snmp" 디렉토리:
PQoS 라이브러리 Perl 래퍼 API의 사용을 보여주기 위해 Perl로 작성된 Net-SNMP AgentX 하위 에이전트가 포함되어 있습니다. 자세한 내용은 "snmp/README" README 파일을 참조하세요.
"도구" 디렉토리:
다양한 작업으로 메모리 대역폭에 스트레스를 주기 위한 membw 도구가 포함되어 있습니다.
"srpm" 디렉토리:
소프트웨어 패키지에 대한 *.src *.rpm 및 *.spec 파일을 포함합니다.
"변경 로그" 파일:
릴리스 간의 변경 사항에 대한 간략한 설명입니다.
"설치" 파일:
설치 지침.
"라이센스" 파일:
패키지의 라이센스입니다.
"단위 테스트" 디렉토리:
단위 테스트
지원되는 제품은 인텔® 리소스 디렉터 기술(인텔® RDT) 아키텍처 사양의 부록 A에서 확인할 수 있습니다: https://www.intel.com/content/www/us/en/content-details/789566/intel-resource -director-technology-intel-rdt-architecture-specation.html
부록 B에는 모델별 인텔® RDT 기능을 갖춘 프로세서 목록이 포함되어 있습니다.
참고: 모델별 기능을 감지하려면 라이브러리 및 유틸리티를 사용할 때 RDT_PROBE_MSR
환경 변수를 설정해야 합니다. 이러한 기능은 MSR 인터페이스를 사용할 때만 사용할 수 있습니다. 자세한 내용은 아래 "인터페이스" 섹션을 참조하세요. 사용 예는 위키를 참조하세요.
추가 Intel(R) RDT 세부 정보는 Intel(R) 아키텍처 소프트웨어 개발 매뉴얼(https://www.intel.com/content/www/us/en/develop/download/intel-64-and)을 참조하십시오. -ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html 구체적인 정보는 볼륨에서 확인할 수 있습니다. 3a, 17.18장 및 17.19장.
Linux는 현재 기본적으로 지원되는 운영 체제입니다. 소프트웨어의 FreeBSD 포트가 있지만 검증 범위가 제한되어 있어 현 단계에서는 다소 실험적입니다. 대부분의 최신 Linux 커널에는 Intel(R) RDT에 대한 지원이 포함되어 있지만 Intel(R) RDT 소프트웨어 패키지는 이러한 확장보다 앞서며 커널 지원 유무에 관계없이 작동할 수 있습니다. 인텔(R) RDT 소프트웨어는 기능 추가가 가능한 경우 이러한 커널 확장을 감지하고 활용할 수 있지만 레거시 커널과도 호환됩니다.
Intel(R) RDT에 대한 Linux 커널 지원은 원래 CMT 및 MBM용 Linux perf 시스템 호출 확장과 함께 도입되었습니다. 최근에는 Resctrl 인터페이스에 CAT, CDP 및 MBA에 대한 지원이 추가되었습니다. 최신 Linux 커널에서는 가능한 경우 커널/OS 인터페이스를 사용하는 것이 좋습니다. 이러한 인터페이스에 대한 자세한 내용은 resctrl_ui.txt에서 확인할 수 있습니다. 이 소프트웨어 패키지인 Intel(R) RDT는 모든 Linux 커널 버전에서 계속 원활하게 작동합니다.
Intel(R) RDT 소프트웨어 라이브러리 및 유틸리티는 Intel(R) RDT 기술을 프로그래밍하기 위한 두 가지 인터페이스, 즉 MSR 및 OS 인터페이스를 제공합니다.
MSR 인터페이스는 하드웨어(MSR)를 직접 프로그래밍하여 플랫폼을 구성하는 데 사용됩니다. 이는 레거시 인터페이스이며 Intel(R) RDT에 대한 커널 지원이 필요하지 않지만 코어 단위로 리소스를 모니터링하고 관리하는 것으로 제한됩니다.
OS 인터페이스는 나중에 패키지에 추가되었으며 선택되면 라이브러리는 Linux 커널 확장을 활용하여 이러한 기술을 프로그래밍합니다. 이를 통해 코어/프로세스별로 리소스를 모니터링하고 관리할 수 있으며 가능한 경우 사용해야 합니다.
Intel(R) RDT 기능(MSR 및 OS) 지원이 패키지에 추가된 시기에 대한 자세한 내용은 아래 표를 참조하십시오.
인텔(R) RDT 버전 | RDT 기능 활성화 | 커널 버전이 필요합니다 |
---|---|---|
0.1.3 | L3 CAT, CMT, MBM | 어느 |
0.1.4 | L3 CDP | 어느 |
0.1.5 | L2 고양이 | 어느 |
1.2.0 | MBA | 어느 |
2.0.0 | L2 CDP | 어느 |
5.0.0 | 입출력 RDT | 어느 |
인텔(R) RDT 버전 | RDT 기능 활성화 | 커널 버전이 필요합니다 | 권장 인터페이스 |
---|---|---|---|
0.1.4 | CMT(성능) | 4.1 | MSR (1) |
1.0.0 | MBM(성능) | 4.7 | MSR (1) |
1.1.0 | L3 CAT, L3 CDP, L2 CAT(재검색) | 4.10 | 할당 전용 OS(MBA 제외) 할당 + 모니터링용 MSR(2) |
1.2.0 | MBA (재규어) | 4.12 | 할당전용 OS 할당+모니터링용 MSR (2) |
2.0.0 | CMT, MBM(재검색) | 4.14 | OS |
2.0.0 | L2 CDP | 4.16 | OS |
3.0.0 | MBA CTRL(재검색) | 4.18 | OS |
참고자료:
Intel(R) RDT의 유일한 종속성은 C 및 pthreads 라이브러리에 대한 액세스이며 다음과 같습니다.
Intel(R) RDT 지원 활성화:
참고: v4.10 이전에는 커널 구성 옵션이 필요하지 않습니다.
즉, Intel(R) RDT 또는 PCM 소프트웨어를 Linux 성능 및 cgroup 프레임워크와 함께 사용하는 것은 현재 허용되지 않습니다.
실망스럽기는 하지만 CMT 및 MBM에는 Linux 성능을 사용하고 CAT 및 CDP에는 Intel(R) RDT를 사용할 수 없습니다. 이는 Linux 성능이 작업 중에 기존 CAT 구성을 재정의하기 때문입니다.
CAT를 사용하기 위해 선택할 수 있는 다양한 옵션이 있습니다.
표 4. 소프트웨어 상호 운용성 매트릭스
인텔(R) RDT | PCM | 리눅스 성능 | 리눅스 c그룹 | 리눅스 재검색 | |
---|---|---|---|---|---|
인텔(R) RDT | 예(1) | 예(2) | 예(5) | 아니요 | 예(5) |
PCM | 예(2) | 예 | 아니요 | 아니요 | 아니요 |
리눅스 성능 | 예(5) | 아니요 | 예 | 예(3) | 예 |
리눅스 c그룹 | 아니요 | 아니요 | 예 | 예(3) | 아니요 |
리눅스 재검색 (4) | 예(5) | 아니요 | 예 | 아니요 | 예 |
참고자료:
Intel(R) RDT의 pqos 모니터링은 시스템의 다른 pqos 모니터링 프로세스를 감지할 수 있습니다. Intel(R) RDT의 rdtset는 rdtset로 시작된 다른 프로세스를 감지하고 해당 CAT/CDP 리소스를 사용하지 않습니다.
Intel(R) RDT의 pqos는 PCM이 코어를 모니터링하고 강제로 실행하지 않는 한 코어 하이재킹을 시도하지 않음을 감지할 수 있습니다. 그러나 pqos 모니터링이 먼저 시작된 다음 PCM이 시작되면 후자는 pqos에서 모니터링 인프라를 하이재킹하여 사용하게 됩니다.
Linux cgroup 커널 패치 https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
Linux 커널 버전 4.10 이상. Intel resctrl에 대한 위키는 https://github.com/intel/intel-cmt-cat/wiki/resctrl에서 제공됩니다.
선택한 OS 인터페이스가 있는 Linux 커널 버전 4.10 이상, Intel(R) RDT 버전 1.0.0 이상에만 해당 'man pqos' 또는 'pqos-os'의 '-I' 옵션을 참조하세요.
PCM은 https://github.com/opcm/pcm에서 사용할 수 있습니다.
표 5. Intel(R) RDT 소프트웨어 활성화 상태.
핵심 | 일 | CMT | MBM | L3 고양이 | L3 CDP | L2 고양이 | MBA | |
---|---|---|---|---|---|---|---|---|
인텔(R) RDT | 예 | 예(7) | 예 | 예 | 예 | 예 | 예 | 예 |
리눅스 성능 | 예(6) | 예 | 예(1) | 예(2) | 아니요(3) | 아니요(3) | 아니요(3) | 아니요 |
리눅스 c그룹 | 아니요 | 예 | 아니요 | 아니요 | 예(4) | 아니요 | 아니요 | 아니요 |
리눅스 재검색 (5) | 예 | 예 | 예(8) | 예(8) | 예 | 예 | 예 | 예(9) |
전설:
참고자료:
이 소프트웨어는 인텔에 의해 "있는 그대로" 제공됩니다. 사용을 통해 어떠한 지적 재산권에 대한 명시적 또는 묵시적 라이센스도 금반언 또는 기타 방식으로 부여되지 않습니다. 인텔의 판매 약관에 규정된 경우를 제외하고 인텔은 특정 목적에의 적합성과 관련된 책임이나 보증을 포함하여 인텔 제품의 판매 및/또는 사용과 관련하여 어떠한 책임도 지지 않으며 어떠한 명시적 또는 묵시적 보증도 부인합니다. 상품성 또는 특허, 저작권 또는 기타 지적 재산권의 침해.