
私は、まともな仕様(16GB メモリ、Intel i7 4710HQ CPU、デュアル m-sata SSD)を備えた比較的新しいラップトップで Vagrant/virtualbox を使用しています。
これまでのところ、私が実行するすべてのゲストで、SSH 経由のキーストロークが数秒後にエコーされるという非常に高いレイテンシに遭遇しています。(リバース DNS ルックアップと GSSAPI 認証による通常の SSH 接続の問題を確認しましたが、それらは適用されず、最初の接続にのみ影響します。)
その間 (および他のランダムな時間に) 1 つのコアが 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.81 秒という結果と組み合わせるとtime ...
、プロセスは実際にはカーネル内ですべての時間を費やし、イベントを待機しているだけであることが確認できます。
一方、ホスト カーネルはそれを解決するためにロックをスピンしているようですselect()
。
私は同じ Ubuntu 14.04 を搭載した、より控えめな i5 ラップトップで virtualbox/vagrant を使用したことがありますが、このような動作は一度も見たことがありません。
質問:
- ここで無駄になっている過剰な CPU の原因を詳しく調べるにはどうすればよいでしょうか?
- 同様に応答が遅い VirtualBox ゲストに詳しい人はいますか?
アップデート
再起動後、問題なくボックスを実行できません。考えられる原因: 再起動せずにカーネル アップデートをインストールした可能性があります。
また、競合する仮想化モジュールに関する潜在的な問題も排除しました。昨日、カーネルから kvm モジュールを削除しましたが、改善はありませんでした。今日、再起動後にモジュールが復活しましたが、vbox のパフォーマンスには影響がありません。