KVM이 이상한 CPU 사용량 급증을 보고합니다(bash 무한 재귀).

KVM이 이상한 CPU 사용량 급증을 보고합니다(bash 무한 재귀).

Fedora 20을 실행하는 KVM 시스템에서 ulimit -s unlimited(스택 크기 제한 제거) 실험적인 고문 테스트 스크립트를 실행했습니다. 이 스크립트가 하는 일은 무한 재귀뿐입니다.

#!/bin/bash

fn() {
    true
    fn
}

fn

나는 CPU 사용량이 100%에 도달할 것으로 예상하고 약간의 리소스 소진(오랜 시간이 걸릴 수 있음) 후에 bash는 결국 커널에 의해 중단될 것입니다.

하지만 실제로 일어나고 있는 일은 약간 이상하며 설명할 올바른 지식이 없습니다.

  • VM 내부에서 top은 이 흥미로운 스크립트에 대해 100% CPU 사용량을 보고합니다. 말이 되네요.

  • 그러나 외부적으로 virt-manager는 CPU 사용량이 0%로 표시되며 반복적으로 100%의 급증이 예상됩니다. 이것이 충분히 이상하지 않은 것처럼, 각 연속 스파이크 사이에서 관찰된 대기 시간은 증가하고 있습니다(결국 대기 시간은 증가를 멈추고 일관성을 갖게 됩니다).

CPU 사용량 최대치

왜 이런거야? 안에서 무슨 일이 일어났나요? 아니면 virt-manager가 보고한 사용법이 오해의 소지가 있습니까? 그렇다면 피크 사이의 패턴을 일으키는 원인은 무엇입니까?

답변1

가상 머신 내에서 top을 사용하면 CPU 사용량이 약 100%임을 알 수 있지만 물리적 호스트에서는 가상 머신이 모든 CPU 시간을 사용할 수 없습니다. 이는 커널 관점에서 kvm vm이 정상이기 때문입니다. 프로세스이므로 커널 프로세스 스케줄러는 다른 프로세스와 CPU를 공유합니다.

관련 정보