Virtualbox 게스트가 SSH를 통해 매우 느리게 응답하고 VBoxHeadLess가 99.9% 시스템 시간에 멈췄습니다.

Virtualbox 게스트가 SSH를 통해 매우 느리게 응답하고 VBoxHeadLess가 99.9% 시스템 시간에 멈췄습니다.

저는 괜찮은 사양(16GB 메모리, Intel i7 4710HQ CPU, 듀얼 m-Sata SSD)을 갖춘 비교적 새로운 노트북에서 Vagrant/virtualbox를 사용해 왔습니다.

지금까지 내가 실행하는 모든 게스트에서 SSH를 통한 키 입력이 몇 초 후에 에코되는 등 대기 시간이 매우 길어졌습니다. (역방향 DNS 조회 및 GSSAPI 인증과 관련된 일반적인 SSH 연결 문제를 확인했지만 적용되지 않으며 초기 연결에만 영향을 미칩니다.)

그 사이에(그리고 다른 임의의 시간에) 하나의 코어는 최대 100% 활용도를 달성하며, 이는 모두 내부의 VBoxHeadLess에 의해 소비됩니다 select().

$ ps -o time -p  5257; time sudo strace -c -p 5257 ; ps -o time -p  5257
TIME         
00:23:51
Process 5257 attached
^CProcess 5257 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 99.95    3.214696      128588        25           select
  0.03    0.000822          29        28           read
  0.02    0.000521          23        23           futex
  0.01    0.000413          21        20           sched_yield
------ ----------- ----------- --------- --------- ----------------
100.00    3.216452                    96           total

real    0m3.81s
user    0m0.00s
sys     0m0.01s
    TIME
00:23:55

$ ps -fp  5257
UID        PID  PPID  C STIME TTY TIME     CMD
henk      5257 25788 45 16:34 ?   00:18:20 /usr/lib/virtualbox/VBoxHeadless

출력 에 유의하세요 ps -o time.

00:23:51  (before)
00:23:55  (after)

3.81s의 결과 와 결합하면 time ...프로세스가 실제로 이벤트를 기다리면서 커널에서 모든 시간을 소비하고 있음을 확인할 수 있습니다.

한편, 호스트 커널은 이 문제를 해결하기 위해 잠금 상태에서 회전하는 것으로 보입니다 select().

나는 동일한 우분투 14.04를 사용하는 좀 더 겸손한 i5 노트북에서 virtualbox/vagrant를 사용했지만 이런 종류의 동작을 본 적이 없습니다.

질문:

  1. 여기서 과도한 CPU 낭비의 원인을 찾으려면 어떻게 해야 더 깊이 파고들 수 있습니까?
  2. 비슷하게 느리게 응답하는 virtualbox 게스트에 대해 잘 아는 사람이 있나요?

업데이트

재부팅 후에는 문제 없이 상자를 실행할 수 없습니다. 가능한 설명: 재부팅하지 않고 커널 업데이트를 설치했을 수 있습니다.

또한 가상화 모듈 충돌로 인한 잠재적인 문제도 제거했습니다. 어제 저는 아무런 개선 없이 커널에서 kvm 모듈을 제거했습니다. 현재 모듈은 재부팅 후 다시 돌아오지만 vbox 성능에는 영향을 미치지 않습니다.

관련 정보