
我一直在一台相對較新的筆記型電腦上使用 Vagrant/virtualbox,該筆記型電腦具有不錯的規格(16GB 內存、Intel i7 4710HQ cpu、雙 m-sata SSD)。
到目前為止,對於我運行的每個來賓,我都會遇到非常高的延遲,透過 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)
結合time ...
3.81s 的結果,這證實了該進程實際上將所有時間都花在內核中,只是等待事件。
同時,主機內核似乎正在旋轉鎖以解決該問題select()
。
我在一台更普通的 i5 筆記型電腦上使用了 virtualbox/vagrant,具有相同的 ubuntu 14.04,但從未見過這種行為。
問題:
- 我怎麼能更深入地找出這裡cpu浪費過多的原因呢?
- 有人熟悉同樣響應緩慢的 virtualbox 用戶端嗎?
更新
重新啟動後,我無法毫無問題地運行我的盒子。可能的解釋:我可能已經安裝了核心更新而沒有重新啟動。
我還消除了虛擬化模組衝突的潛在問題。昨天我確實從核心中刪除了 kvm 模組,但沒有任何改進。今天,模組在重新啟動後恢復正常,但對 vbox 效能沒有影響。