
Я использую Vagrant/virtualbox на относительно новом ноутбуке с приличными характеристиками (16 ГБ памяти, процессор Intel i7 4710HQ, два твердотельных накопителя m-sata).
До сих пор с каждым запущенным мной гостем я сталкивался с действительно высокой задержкой, когда нажатия клавиш по SSH отражались через несколько секунд. (Я проверил обычные проблемы с подключением SSH с помощью обратного поиска DNS и аутентификации GSSAPI, они не применяются и влияют только на первоначальное подключение.)
В это время (и в другие случайные моменты времени) одно ядро будет загружено до 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)
В сочетании с time ...
результатом 3,81 с это подтверждает, что процесс фактически проводит все свое время в ядре, просто ожидая событий.
Тем временем ядро хоста, по-видимому, пытается заблокировать его, чтобы разрешить эту проблему select()
.
Я использовал virtualbox/vagrant на более скромном ноутбуке i5 с той же Ubuntu 14.04 и никогда не видел подобного поведения.
Вопросы:
- Как мне копнуть глубже, чтобы выяснить причину чрезмерной загрузки процессора?
- Знаком ли кто-нибудь с такими же медленно реагирующими гостевыми системами VirtualBox?
обновлять
После перезагрузки я не могу запустить свои коробки без проблем. Возможное объяснение: я мог установить обновление ядра без перезагрузки.
Я также устранил потенциальную проблему с конфликтующими модулями виртуализации. Вчера я удалил модули kvm из ядра, без каких-либо улучшений. Сегодня модули вернулись после перезагрузки, но без влияния на производительность vbox.