기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
모범 사례
Amazon EC2 모범 사례
현재 EC2 모범 사례를 따르고 충분한 데이터 스토리지 가용성을 보장합니다.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-best-practices.html
Linux 스케줄러
Linux 스케줄러는 해당 프로세스가 특정 코어에 고정되지 않은 경우 UDP 소켓에서 패킷을 재정렬할 수 있습니다. UDP 데이터를 보내거나 받는 모든 스레드는 데이터 전송 기간 동안 특정 코어에 고정되어야 합니다.
AWS Ground Station 관리형 접두사 목록
안테나와의 통신을 허용하도록 네트워크 규칙을 지정할 때 com.amazonaws.global.groundstation
AWS관리형 접두사 목록을 사용하는 것이 좋습니다. AWS 관리형 접두사 목록에 대한 자세한 내용은 관리형 접두사 목록 작업을 참조하세요. AWS
단일 접점 제한
AWS Ground Station Agent는 고객 응대당 여러 스트림을 지원하지만 한 번에 한 고객 응대만 지원합니다. 일정 문제를 방지하려면 여러 데이터 흐름 엔드포인트 그룹에서 인스턴스를 공유하지 마세요. 단일 에이전트 구성이 여러 다른 DFEG와 연결된 경우 등록ARNs에 실패합니다.
AWS Ground Station 에이전트와 함께 서비스 및 프로세스 실행
AWS Ground Station 에이전트와 동일한 EC2 인스턴스에서 서비스 및 프로세스를 시작할 때는 AWS Ground Station 에이전트 및 Linux 커널에서 사용하지 vCPUs 않도록에 바인딩하는 것이 중요합니다. 이렇게 하면 연락 중 병목 현상과 데이터 손실까지 발생할 수 있기 때문입니다. 이러한 특정에 대한 바인딩 개념 vCPUs 을 친화도라고 합니다.
피해야 할 코어:
-
agentCpuCores
에서 에이전트 구성 파일 -
하드웨어 인터럽트 및 수신 대기열 조정 - 영향 CPU 및 네트워크의
interrupt_core_list
-
기본값은에서 찾을 수 있습니다. 부록: 인터럽트/RPS 튜닝에 권장되는 파라미터
-
c5.24xlarge
인스턴스를 사용하는 예제로
지정한 경우
"agentCpuCores": [24,25,26,27,72,73,74,75]"
및 실행됨
echo "@reboot sudo /opt/aws/groundstation/bin/set_irq_affinity.sh '0,1,48,49' 'ffffffff,ffffffff,ffffffff' >> /var/log/user-data.log 2>&1" >>/var/spool/cron/root
다음 코어를 피합니다.
0,1,24,25,26,27,48,49,72,73,74,75
서비스 어피니타이징(시스템)
새로 시작된 서비스는 앞서 interrupt_core_list
언급한에 자동으로 확인됩니다. 시작된 서비스의 사용 사례에 추가 코어가 필요하거나 혼잡도가 낮은 코어가 필요한 경우이 섹션을 따르세요.
현재 서비스가 명령으로 구성된 선호도를 확인합니다.
systemctl show --property CPUAffinity <service name>
와 같은 빈 값이 표시되면 위 명령의 기본 코어를 사용할 가능성이 높CPUAffinity=
다는 의미입니다. ...bin/set_irq_affinity.sh <using the cores here> ...
특정 선호도를 재정의하고 설정하려면 다음을 실행하여 서비스 파일의 위치를 찾습니다.
systemctl show -p FragmentPath <service name>
파일을 열고 수정한 다음(vi
, nano
등 사용) CPUAffinity=<core list>
를 다음과 같이 [Service]
섹션에 넣습니다.
[Unit] ... [Service] ... CPUAffinity=2,3 [Install] ...
파일을 저장하고 서비스를 다시 시작하여 다음과 같이 선호도를 적용합니다.
systemctl daemon-reload systemctl restart <service name> # Additionally confirm by re-running systemctl show --property CPUAffinity <service name>
자세한 내용은 Red Hat Enterprise Linux 8 - 커널 관리, 모니터링 및 업데이트 - 27장을 참조하세요. 시스템을 사용하여 CPU 선호도 및 NUMA 정책 구성.
프로세스 어피니타이징(스크립트)
새로 시작된 스크립트와 프로세스를 수동으로 확인하는 것이 좋습니다. 기본 Linux 동작으로 인해 머신의 모든 코어를 사용할 수 있기 때문입니다.
실행 중인 프로세스(예: python, bash 스크립트 등)의 코어 충돌을 방지하려면 다음을 사용하여 프로세스를 시작합니다.
taskset -c <core list> <command> # Example: taskset -c 8 ./bashScript.sh
프로세스가 이미 실행 중인 경우 pidof
, top
또는 같은 명령을 사용하여 특정 프로세스의 프로세스 ID(PID)를 ps
찾습니다. 를 사용하면 다음과 같은 현재 선호도를 확인할 PID 수 있습니다.
taskset -p <pid>
및는 다음을 사용하여 수정할 수 있습니다.
taskset -p <core mask> <pid> # Example: taskset -p c 32392 (which sets it to cores 0xc -> 0b1100 -> cores 2,3)
작업 세트에 대한 자세한 내용은 작업 세트 - Linux 맨 페이지를