Ampere Altra 기반 인스턴스에서 실행할 때 10 가지 주요 질문
Ampere System Performance 분석 : 10 가지 주요 질문과 답변
(이 기사는 원래 Ampere Computing에서 출판 됨)
응용 프로그램은 새로운 클라우드 인스턴스 또는 서버 (또는 SUT, 테스트중인 시스템)에서 실행되거나 성능 문제를 찾거나 사용 가능한 시스템 리소스에서 최적의 성능을 보장하려고합니다. 이 기사에서는 요청해야 할 몇 가지 기본 질문과 답변 방법에 대해 설명합니다.
CPU 유형, CPU 주파수, 코어 수 및 기타 CPU 관련 정보를 표시하는 명령을 실행하십시오.
메모리 구성을 확인하십시오 명령을 실행하면 물리적 메모리 및 총 스왑 메모리 양에 대한 정보 (메모리 활용의 고장 포함)에 대한 정보를 제공합니다. Multichase 벤치 마크를 실행하여 대기 시간, 메모리 대역폭 및로드 대기 시간을 결정하십시오.
네트워크 기능 평가
NIC 카드 하드웨어 설정에 대한 정보를 제공 할 명령을 실행하십시오. 또한 네트워크 장치 드라이버 및 하드웨어 설정을 제어하는 데 사용됩니다. 클라이언트 서버 모델에서 워크로드를 실행하는 경우 클라이언트와 서버 간의 대역폭과 대기 시간을 이해하는 것이 가장 좋습니다. 대역폭을 결정하기 위해 간단한 IPERF3 테스트가 충분하며 대기 시간을 위해 간단한 핑 테스트 가이 값을 제공 할 수 있습니다. 클라이언트-서버 설정에서 네트워크 홉 수를 최소로 유지하는 것이 좋습니다. Traceroute는 라우팅을 표시하고 네트워크 전체의 패킷의 전송 지연을 측정하는 네트워크 진단 명령입니다.
스토리지 인프라를 이해하십시오
이제 상위 10 개 질문을 입력하십시오
> 1. 내 CPU가 양호한 상태입니까? $lscpu
<code>ampere@colo1:~$ lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 160 On-line CPU(s) list: 0-159 Thread(s) per core: 1 Core(s) per socket: 80 Socket(s): 2 NUMA node(s): 2 Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 CPU max MHz: 3000.0000 CPU min MHz: 1000.0000 BogoMIPS: 50.00 L1d cache: 10 MiB L1i cache: 10 MiB L2 cache: 160 MiB NUMA node0 CPU(s): 0-79 NUMA node1 CPU(s): 80-159 Vulnerability Itlb multibit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Mitigation; CSV2, BHB Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs </code>
> 2. 내 CPU가 가능한 가장 높은 주파수로 달리고 있습니까?
응용 프로그램을 실행할 때 CPU의 주파수를 확인하려면 다음 명령을 실행하십시오.
> 3. 응용 프로그램에서 내 시간을 커널 시간과 비교하는 방법은 무엇입니까?
<code>ampere@colo1:~$ lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 160 On-line CPU(s) list: 0-159 Thread(s) per core: 1 Core(s) per socket: 80 Socket(s): 2 NUMA node(s): 2 Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 CPU max MHz: 3000.0000 CPU min MHz: 1000.0000 BogoMIPS: 50.00 L1d cache: 10 MiB L1i cache: 10 MiB L2 cache: 160 MiB NUMA node0 CPU(s): 0-79 NUMA node1 CPU(s): 80-159 Vulnerability Itlb multibit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Mitigation; CSV2, BHB Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs </code>
- 각 CPU의 통계를 확인하고 개별 핫스팟/바쁜 CPU를 점검하십시오. 이것은 각 CPU에 대한 통계를보고하는 멀티 프로세서 통계 도구입니다 (-P 옵션)
<code>ampere@colo1:~$ free total used free shared buff/cache available Mem: 130256992 3422844 120742736 4208 6091412 125852984 Swap: 8388604 0 8388604 </code>
각 CPU에 대한 CPU 사용량을 식별하고 사용자 시간/코어 시간 비율, %USR, %SYS 및 %유휴 상태를 표시하는 것이 핵심 값입니다. 이러한 주요 값은 또한 단일 스레드 애플리케이션 또는 인터럽트 매핑으로 인해 발생할 수있는 "핫스팟"CPU를 식별하는 데 도움이 될 수 있습니다.
> 4. 내 응용 프로그램에 충분한 메모리가 있습니까?-
-
. Linux
free
명령에는 메모리 및 교환 통계가 표시됩니다.free
출력은 전체 메모리, 중고 메모리 및 시스템의 사용 가능한 메모리를 표시합니다. 중요한 열은 사용 가능한 값으로, 응용 프로그램에 사용 가능한 메모리를 보여주고 교체해야합니다. 또한 즉시 재활용 할 수없는 메모리를 고려합니다. - 명령은 활성 메모리가 스왑되는 (페이징)를 표시합니다.
vmstat
$vmstat
이 명령은 현재 상태에 대한 요약을 인쇄합니다. 열은 킬로 바이트로 기본적으로 다음과 같습니다무료 : 사용 가능한 메모리 버프 : 버퍼 캐시의 메모리 캐시 : 페이지 캐시의 메모리
si : 메모리에 교환 (페이징) so : 메모리 교체 (페이징)
SI가 0이 아닌 경우 시스템은 메모리 압력을 받고 메모리를 스왑 장치로 바꾸고 있습니다. 충분한 메모리 대역폭을 이해하기 위해 먼저 시스템의 "최대 메모리 대역폭"값을 얻으십시오. "최대 메모리 대역폭"값은 다음과 같은 방법으로 찾을 수 있습니다. 기본 드라마 클록 주파수 클럭 당 데이터 전송 수 : "이중 데이터 속도"(DDR*) 메모리가 사용되는 경우 두 번 메모리 버스 (인터페이스) 너비 : 예를 들어, DDR 3의 너비는 64 비트 (행이라고도 함) 입니다. 인터페이스 수 : 현대의 개인용 컴퓨터는 일반적으로 두 개의 메모리 인터페이스 (듀얼 채널 모드)를 사용하여 효과적인 128 비트 버스 너비를 달성합니다. 최대 메모리 대역폭 = 기본 드라마 클록 주파수 * 클럭 당 데이터 전송 횟수 * 메모리 참조 너비 * 인터페이스 수 이 값은 "버스트 속도"라고도하는 시스템의 이론적 최대 대역폭을 나타냅니다. 이제 시스템에서 Multichase 또는 대역폭 벤치 마크를 실행하고 이러한 값을 확인할 수 있습니다. - > 6. 내 워크로드는 모든 CPU를 균형 잡힌 방식으로 사용합니까?
성능 튜닝 또는 문제 해결의 일환으로 서버에서 워크로드를 실행할 때 현재 특정 프로세스의 CPU 핵심과 현재 CPU 코어에서 실행되는 프로세스의 리소스 활용 방법을 알고 싶을 수 있습니다. 첫 번째 단계는 CPU 코어에서 실행되는 프로세스를 찾는 것입니다. 이것은 HTOP을 사용하여 수행 할 수 있습니다. CPU 값은 HTOP의 기본 표시에 반영되지 않습니다. CPU 코어 값을 얻으려면 명령 줄에서 - 를 시작하려면 f2
키를 누르고 열로 이동하여 사용 가능한 열 아래에 프로세서를 추가하십시오. 현재 각 프로세스에서 사용하는 "CPU ID"는 "CPU"열에 나타납니다.-
cpu/core를 표시하려면 를 구성하는 방법 :
$htop
Core 4-6 표시 최대 값에 도달하기위한 명령 (HTOP Core Count는 "0"대신 "1"에서 시작) :
-
선택한 통계 코어 확인을위한 명령 :
$htop
CPU 코어를 식별 한 후에는 명령을 실행하여 각 CPU의 통계를 확인하고 개별 핫스팟/바쁜 CPU를 확인할 수 있습니다. 이것은 각 CPU (또는 코어)에 대한 통계를보고하는 멀티 프로세서 통계 도구입니다. 에 대한 자세한 내용은 "커널 시간과 비교하여 응용 프로그램에서 시간을 보내는 방법"을 참조하십시오. -
is> 7. 내 네트워크가 내 응용 프로그램에 대한 병목 현상입니까?
네트워크 병목 현상은 서버의 다른 리소스를 포화시키기 전에도 발생할 수 있습니다. 이 문제는 클라이언트 서버 모델에서 워크로드를 실행할 때 발견됩니다. 가장 먼저해야 할 일은 네트워크의 모습을 결정하는 것입니다. 클라이언트와 서버 간의 대기 시간 및 대역폭이 특히 중요합니다. IPERF3, PING 및 TRACEROUTE와 같은 도구는 네트워크의 한계를 결정하는 데 도움이되는 간단한 도구입니다. 네트워크 제한이 식별되면 및 $mpstat
와 같은 도구를 사용하면 네트워크 활용을 모니터링하고 네트워크로 인한 시스템 병목 현상을 식별하는 데 도움이됩니다.
이 명령은 시스템에서 수신하고 보낸 패킷의 처리량을 제공합니다.
$mpstat
$mpstat
. 이 명령은 처리량 및 활용을 포함한 네트워크 인터페이스 통계를 인쇄합니다.
$dstat
$nicstat
- <:>%util : 최대 활용 SAT : 인터페이스 포화 통계를 반영하는 값
-
value 접두사 "r"= 읽기/수신 값 접두사 "w"= 쓰기/전송 1- kb/s : 초당 킬로바이트 2- PK/S : 초당 패킷
네트워크와 마찬가지로 디스크는 애플리케이션 성능 저하의 원인이 될 수 있습니다. 디스크 성능을 측정 할 때 다음 메트릭을 살펴 봅니다.
-
활용률
포화
- 처리량 응답 시간
-
응용 프로그램이 실행 된 후
가 실행되면 및 를 사용하여 디스크 리소스 활용을 실시간으로 모니터링 할 수 있습니다. - 명령은 각 디스크에 대한 I/O 통계를 표시하여 워크로드 특성화, 활용 및 채도에 대한 메트릭을 제공합니다.
int : 인터페이스 이름 iops (초당 입력/출력) 좋은 규칙은 응용 프로그램의 서버/인스턴스를 선택할 때 먼저 디스크의 I/O 성능을 벤치마킹하여 디스크 성능의 피크 또는 "상한"을 얻을 수 있도록해야합니다. 성능이 응용 프로그램의 요구를 충족하는지 디스크. Flexible I/O는 이러한 값을 결정하기위한 이상적인 도구입니다. 첫 번째 줄 출력은 커널 버전, 호스트 이름, 데이터 아키텍처 및 CPU 카운트를 포함한 시스템의 요약을 표시합니다. 두 번째 줄은 시작 이후 시스템의 CPU 요약을 보여줍니다. 다음 행에 표시된 각 디스크 장치의 경우 는 열에 기본 세부 사항이 표시됩니다.
TPS : 초당 트랜잭션 수 KB_READ/S : 초당 킬로 바이트의 수 KB_WRTN/S : 킬로바이츠는 초당 작성 입니다 KB_READ : 총 킬로바이트의 총 수 KB_WRITE : 다음 이미지는 쓰기 집약적 인 워크로드를 보여줍니다. 비 일관된 메모리 액세스 (NUMA)는 멀티 프로세싱을위한 컴퓨터 메모리 설계이며, 메모리 액세스 시간은 프로세서에 대한 메모리 위치에 따라 다릅니다. NUMA에서 프로세서는 비 로컬 메모리 (프로세서간에 공유되는 다른 프로세서 또는 메모리의 로컬 메모리)보다 자체 로컬 메모리에 더 빨리 액세스 할 수 있습니다. NUMA의 이점은 특히 특정 작업이나 사용자와 밀접한 관련이있는 서버에서 워크로드, 특히 서버에서 제한됩니다. NUMA 시스템의 경우 프로세서와 메모리 뱅크 사이의 거리가 클수록 프로세서가 해당 메모리 뱅크에 액세스 할 수 있습니다. 성능에 민감한 응용 프로그램의 경우 시스템 운영 체제는 가장 가까운 메모리 뱅크에서 메모리를 할당해야합니다. 시스템 또는 프로세스의 메모리 할당을 실시간으로 모니터링하려면 가 훌륭한 도구입니다.
명령은 비 일관된 메모리 액세스 (NUMA) 시스템에 대한 통계를 제공합니다. 이 시스템은 일반적으로 여러 CPU 슬롯이있는 시스템입니다.$numastat
numastat
Linux 운영 체제는 가장 가까운 NUMA 노드에 메모리를 할당하려고 시도하고 는 메모리 할당에 대한 현재 통계를 표시합니다.
numa_hit : 예상되지 않은 Numa 노드 에 메모리를 할당하십시오 numa_miss : 다른 곳에 있어야하는 로컬 할당을 표시하십시오 numa_foreign : 로컬로 할당 해야하는 원격 할당을 표시 Other_Node :이 노드에 메모리를 할당하고 프로세스는 다른 곳에서 실행됩니다 numa_miss 및 numa_foreign 둘 다 선호하는 numa 노드에 메모리 할당이 표시됩니다. 이상적으로는 NUMA_MISS 및 NUMA_FOREIGN의 값은 메모리 I/O 성능이 불량 할 수 있으므로 최소한으로 유지해야합니다. $numastat
- > 10. 응용 프로그램을 실행할 때 CPU는 무엇을하고 있습니까?
-
시스템/인스턴스에서 응용 프로그램을 실행할 때 응용 프로그램이 수행하는 작업과 응용 프로그램이 CPU에서 사용하는 리소스를 이해하는 데 관심이 있습니다. 는 시스템에서 실행되는 각 개별 프로세스를 모니터링하는 명령 줄 도구입니다. - 주요 CPU 사용자는 사용자 시간과 시스템 시간으로 분류됩니다. 이 Linux 도구는 사용자 시간 및 시스템 시간을 포함하여 프로세스 또는 스레드별로 CPU 사용을 분해합니다. 이 명령은 프로세스 (-d 옵션)에 대한 IO 통계를보고 할 수도 있습니다.
uid : 모니터링되는 작업의 실제 사용자 ID 번호 PID : 모니터링중인 작업의 식별 번호 <: : cpu> %대기 : 작업이 실행되기를 기다릴 때 사용되는 CPU의 백분율 %CPU : 작업에서 사용하는 CPU 시간의 총 백분율.
를 실행할 수도 있습니다.$numastat -p <process></process>
<: :> CPU : 작업이 첨부 된 프로세서/코어 번호 특정 프로세스에 대한 데이터를 수집하기 위해 -
위 내용은 Ampere Altra 기반 인스턴스에서 실행할 때 10 가지 주요 질문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal 및 Actuated 간의 공동 작업 인이 파일럿 프로그램은 CNCF Github 프로젝트를위한 ARM64 CI/CD를 간소화합니다. 이 이니셔티브는 보안 문제 및 성과를 다룹니다

이 튜토리얼은 AWS 서비스를 사용하여 서버리스 이미지 처리 파이프 라인을 구축함으로써 안내합니다. ECS Fargate 클러스터에 배포 된 Next.js Frontend를 만들어 API 게이트웨이, Lambda 기능, S3 버킷 및 DynamoDB와 상호 작용합니다. th

이 최고의 개발자 뉴스 레터와 함께 최신 기술 트렌드에 대해 정보를 얻으십시오! 이 선별 된 목록은 AI 애호가부터 노련한 백엔드 및 프론트 엔드 개발자에 이르기까지 모든 사람에게 무언가를 제공합니다. 즐겨 찾기를 선택하고 Rel을 검색하는 데 시간을 절약하십시오
