안녕하세요, 오늘은 CPU Steal 에 대해서 알아보겠습니다.
1. CPU STEAL이란 무엇인가?
AWS, GCP, Azure, vSphere 및 Xen과 같은 가상화된 환경에서만 발생합니다.
하이퍼바이저가 다른 가상 프로세서에 서비스를 제공하는 동안 가상 CPU가 실제 CPU를 기다리는 시간의 백분율입니다.
2. CPU STEAL의 특징
CPU Steal time이 높아져 cpu utilization이 높아질 경우,
인프라에 다음과 같은 영향을 미칠 수 있습니다 :
- 느린 페이지 로드 시간
- 느린 데이터베이스 쿼리 시간
- 보고서 처리 속도 저하
- 비동기 작업을 빠르게 처리할 수 없기 때문에 대기열 크기 증가
- 동일한 양의 로드를 처리하기 위해 더 많은 서버를 출시하여 IaaS 비용 증가
CPU steal의 아래와 같은 몇 가지 원인이 있을 수 있습니다.
- VM에 물리적 서버가 제공할 수 있는 것보다 더 많은 CPU가 필요합니다.
- 더 작은 가상 코어 크기를 사용하고 있을 경우,
VPS 구성 옵션은 거의 무제한입니다. 필요에 따라 여러 코어와 CPU %를 선택할 수 있습니다. 더 많은 가상 코어의 더 많은 CPU 스레드가 있으면 요구 사항에 따라 이점이 될 수 있습니다. CPU 설정이 4 × 2.4Ghz @ 60%인 VM을 생성할 때 60%는 CPU 코어를 사용할 수 있는 상한선입니다. VPS 전용이 아닙니다. 그러나 운영 체제 내의 클라우드 서버에 대한 진단은 코어 크기를 전체 물리적 크기로 봅니다. top 과 같은 표준 명령 은 잘못된 가정을 기반으로 메트릭을 보고합니다.이 시나리오에서는 CPU의 허용된 60% 이상 사용을 요청하는 경우 항상 도용 시간을 보게 됩니다. VM의 CPU%를 업그레이드하여 이 문제를 해결할 수 있습니다. 또는 부수적인 경우 모든 것을 그대로 둘 수 있습니다. - 귀하의 EC2 서버가 귀하의 프로세스로 인해 과부하되었습니다.
이 시나리오에서 VPS의 프로세스는 VPS를 최대 용량에 가깝게(또는 그 이상으로) 가져옵니다. 가상 서버에 할당된 CPU 주기는 작업 부하를 처리할 수 없습니다. 프로세스가 하이퍼바이저에 의해 처리되기를 기다리고 가상 CPU에 대기하는 동안 CPU 도용 시간을 볼 수 있습니다. 이 문제가 발생하면 일반적으로 시스템의 일시적인 과부하이며 조치가 필요하지 않습니다. CPU 도용 시간은 로드가 다운되면 몇 초 또는 몇 분 후에 사라져야 합니다. 시스템의 부하가 많은 프로세스와 장기간에 걸친 CPU 도용 시간 사이에 직접적인 상관 관계가 있는 경우 더 많은 CPU 리소스가 있는 더 큰 VM이 필요합니다. 그리고 고부하 프로세스가 완료되면 초기 구성으로 쉽게 축소할 수 있습니다.
- 물리적 서버의 CPU가 초과 할당되었습니다.
이 시나리오에서 동일한 호스트의 여러 VPS가 부하가 많은 프로세스를 실행하고 물리적 CPU가 모든 요청을 적시에 처리하는 데 문제가 있습니다. 호스트를 최대 사용 수준보다 훨씬 낮게 유지하기 때문에 이는 매우 예외적입니다. 또한 시스템의 부하를 적극적으로 모니터링하므로 이러한 종류의 메트릭이 표시되면 가상 머신을 다른 물리적 노드로 마이그레이션하고 부하 수준을 정상으로 낮출 수 있습니다. 장기간에 걸쳐 높은 CPU 도용 시간을 발견하고 자신의 프로세스가 원인이 아닌 경우 벤더사 측에 문제가 있을 수 있습니다. 이 경우 반드시 벤더사에 연락해야 합니다. 물리적 호스트를 확인하고 로그 파일을 자세히 살펴보고 무슨 일이 일어나고 있는지 확인합니다.
3. 대처 방법
1) 서버 재시작 : 인스턴스를 다시 시작하면 시작할 때 크레딧이 부여되고 일시적이지만 상황이 개선됩니다.
2) 인스턴스 대수 추가 (스케일 아웃)
3) 인스턴스 사이즈 변경 (스케일 업) :
초기 CPU 크레딧이 많고 시간당 부여되는 CPU 크레딧도 많기 때문에 대수를 늘리는 것보다는 쉽게 실행하기 쉽습니다.
4) CPU 크레딧 방식이 아닌 (T2 이외의) 인스턴스로 변경
스케일 업의 범주에 속할 수 있지만, T2등과 같은 버스트 크레딧 형태의 EC2를 사용하신다면, T2 이외의 인스턴스로 변경하는 것도 하나의 방법이 될 수 있습니다.
참조 링크 : https://www.tilaa.com/en/blog/should-i-be-worried-about-cpu-steal-time
https://www.datadoghq.com/blog/understanding-aws-stolen-cpu-and-how-it-affects-your-apps/
https://www.bluematador.com/docs/troubleshooting/cpu-steal
https://blog.a4works.co.jp/937.html
Understanding AWS stolen CPU and how it affects your EBS performance
Is AWS stolen CPU causing your AWS EBS Performance issues? Learn how to detect and resolve CPU stolen-related issues.
www.datadoghq.com
'IT > AWS' 카테고리의 다른 글
S3 보안 모범 사례 (0) | 2022.08.17 |
---|---|
AWS 보안 그룹 인바운드룰 sdk / awscli를 통해 추가하기 (0) | 2022.07.15 |
Lambda vs Fargate (0) | 2022.02.15 |
aws efs vs ebs (0) | 2022.01.25 |
AWS S3 Pre-signed URL 완벽 가이드 (0) | 2022.01.13 |