2022/06/13(月)Ubuntu LinuxでVMware Workstation pro/playerを使うときの注意
UbuntuでVMwareを使うときの特別な設定を備忘録も兼ねて書いておきます。誰かの役に立つかもしれないので。
ゲストが異常に重くなる現象への対策
特に複数ゲストを起動したときなどに、ゲストがほとんど操作不能なレベルで重くなってしまい、そのときホストではkcompactd0というプロセスのCPU使用率が100%になっている、という現象が見られることがあります。数分待つと解消しますが、またすぐに再発します。これは多くの人が悩まされ決定的な対策はなかなか見つからなかったのですが、にあるように最近対策が見つかりました。rootで(sudo suとかした後に)、
echo 0 > /proc/sys/vm/compaction_proactivenessとすると立ちどころに収まります。永続的にこれを設定するには、/etc/sysctl.confに
vm.compaction_proactiveness=0と書き加えて再起動すればいいようです。
Ubuntu 22.04でVMware Workstationを使う
現時点でVMware Workstationの最新版は16.2.3-19376536ですが、これはまだUbuntu 22.04の新しいカーネルに対応していないようで、初回起動時のカーネルモジュールのコンパイルでエラーになってしまい、起動することができません。そのうち対応するでしょうけど、とりあえず、にあるように、
git clone https://github.com/mkubecek/vmware-host-modules cd vmware-host-modules git checkout workstation-16.2.3 make clean make sudo make install sudo modprobe -a vmw_vmci vmmon vmnet sudo service vmware restartで起動するようになりました。
NATを使ったとき、断続的にネットワークがON/OFFを繰り返す
ゲストOSのネットワークをNATにしたとき、ゲストOSの種類には関係なく、断続的に(10秒周期くらい?)ゲストのネットワークがON/OFFを繰り返す、という困った現象に遭遇しました。Ubuntu 22.04にVMware Workstationを入れたときに発生したのですが、別のマシンにUbuntu 22.04とVMware Workstationを入れて発生しないケースもあったので、発生する条件はよく分かりません。 (2022/6/15追記: その別のマシンでもこの現象を確認しました。当方の環境では、Ubuntu 22.04にしたことで2/2で発生。) 検索してみると、- https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-disconnected-and-reconnects-frequently/td-p/2267837
- http://sgros.blogspot.com/2015/10/vmware-workstation-1011-on-fedora-23.html
- https://web.archive.org/web/20210301012537/https://www.nikhef.nl/~janjust/vmnet/
- https://superuser.com/questions/1452729/prevent-a-program-vmet-natd-from-getting-events-that-the-network-has-changed-s
May 21 17:43:44 exa kernel: [14661.785888] userif-3: sent link up event. May 21 17:43:47 exa kernel: [14664.977941] userif-3: sent link down event. May 21 17:43:47 exa kernel: [14664.977949] userif-3: sent link up event. May 21 17:43:52 exa kernel: [14669.758177] userif-3: sent link down event. May 21 17:43:52 exa kernel: [14669.758186] userif-3: sent link up event. May 21 17:44:00 exa kernel: [14677.442456] userif-3: sent link down event. May 21 17:44:00 exa kernel: [14677.442465] userif-3: sent link up event. May 21 17:44:03 exa kernel: [14680.650489] userif-3: sent link down event.のようなログが残っていました。そこで、前の節で入れたカーネルモジュールのvmware-host-modules/vmnet-only/userif.cに、強引ですが
*** userif.c.original 2022-05-15 22:05:24.140904301 +0900 --- userif.c 2022-05-21 17:43:37.199281561 +0900 *************** *** 1002,1007 **** --- 1002,1010 ---- return -EINVAL; } + /* never send link down events */ + if (!linkUp) return 0; + if (userIf->eventSender == NULL) { /* create event sender */ retval = VNetHub_CreateSender(hubJack, &userIf->eventSender);のようにlink downイベントを発生しないようにパッチを当ててモジュールを再インストールしたら、問題は解決しました。