따라서 우리는 제품 테스트를 위해 ESX 4.1 서버에서 여러 개의 VM을 실행하고 있습니다. ESX Server는 때때로 과부하 상태에 있습니다. 일부 사용 사례에서 높은 CPU 수준을 경험했지만 이를 항상 복제할 수는 없습니다. ESX 서버 전체에 과부하가 걸리는 경우 이로 인해 게스트 시스템의 CPU 사용량이 높아질 수 있습니까?
다른 방식으로 질문하자면, 게스트 머신에 서버가 보유한 것보다 더 많은 CPU 리소스가 필요한 경우 이것이 OS 및 프로세스에 표시된 대로 CPU 사용량에 어떤 영향을 줍니까?
답변1
ESX 성능 팁에 대한 표준 소스 중 하나는성능 문제 해결 가이드! (PDF)
간단히 말해서, 호스트가 사용량이 많고 VM이 높은 "준비 시간"을 보고하는 경우(이는 VM이 작업을 수행할 준비가 되었지만 머신에 대해 예약할 물리적 CPU를 찾을 수 없는 시점을 나타냅니다.) 하이퍼바이저) 발생하는 증상은 게스트 내 CPU 사용량이 높다는 것이 아니라 개별 VM이 워크로드를 처리할 만큼 충분한 물리적 CPU 시간을 얻지 못하고 있다는 것입니다. 이는 게스트 내에서 CPU 사용량이 많은 것처럼 나타날 수 있지만 이는 게스트가 가상화 자체를 인식하지 못하기 때문에 발생하는 계산상의 실수일 뿐입니다.
따라서 준비 시간을 확인하고 실제로 높으면 머신/클러스터에 물리적 CPU를 더 추가하거나 사용을 줄이는 방법을 찾으십시오.
게스트 내 CPU 모니터링은 컴퓨터가 유휴 상태일 때나 사용량이 많을 때 왜곡될 가능성이 있습니다. 한 시나리오에서는 유휴 프로세스가 하이퍼바이저에 의해 예약되지 않습니다. 다른 한편으로는, 많은 머신의 높은 사용으로 인해 일부 머신의 CPU가 부족해지기 때문에 추가 하이퍼바이저 수준 모니터링 없이 게스트 수준 모니터링을 사용해서는 안 됩니다.
답변2
게스트 내 CPU 모니터링은 나쁜 생각입니다. 본질적으로 게스트가 하이퍼바이저에서 CPU 시간이 얼마나 소요되는지 실제로 아는 것은 거의 불가능합니다. 알 수 있는 유일한 방법은 하이퍼바이저를 통해 외부를 살펴보는 것입니다. 예, 매우 바쁜 하이퍼바이저는 쉽게 게스트 내 CPU 사용량 통계를 기준에서 벗어나게 만들 수 있습니다. 어쨌든 그 수치를 신뢰하지 마십시오.