Я использую VMWare Server 2.0.2 (Build 203138) на двухъядерном Intel i5 с системой Ubuntu Server 10.04 LTS (ядро 2.6.32-22-server #33-Ubuntu SMP
). Дисковая подсистема представляет собой программный массив RAID5.
Система была настроена чуть больше недели назад. За последние 5 дней я запустил по крайней мере 3 VM (Linux и различные ОС Windows) без каких-либо проблем. Но когда я устанавливал Linux на новую VM, внезапно все VM перестали отвечать, включая ту, на которую я устанавливал. Я не мог войти в интерфейс управления VMWare, и система несколько не отвечала через SSH. Когда я посмотрел на top
, я увидел:
top - 16:14:51 up 6 days, 1:49, 8 users, load average: 24.29, 24.33 17.54
Tasks: 203 total, 7 running, 195 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.2%us, 25.6%sy, 0.0%ni, 74.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8056656k total, 5927580k used, 2129076k free, 20320k buffers
Swap: 7811064k total, 240216k used, 7570848k free, 5045884k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21549 root 39 19 0 0 0 Z 100 0.0 15:02.44 [vmware-vmx] <defunct>
2115 root 20 0 0 0 0 S 1 0.0 170:32.08 [vmware-rtc]
2231 root 21 1 1494m 126m 100m S 1 1.6 892:58.05 /usr/lib/vmware/bin/vmware-vmx -# product=2;
2280 jnet 20 0 19320 1164 800 R 0 0.0 30:04.55 top
12236 root 20 0 833m 41m 34m S 0 0.5 88:34.24 /usr/lib/vmware/bin/vmware-vmx -# product=2;
1 root 20 0 23704 1476 920 S 0 0.0 0:00.80 /sbin/init
2 root 20 0 0 0 0 S 0 0.0 0:00.01 [kthreadd]
3 root RT 0 0 0 0 S 0 0.0 0:00.00 [migration/0]
4 root 20 0 0 0 0 S 0 0.0 0:00.84 [ksoftirqd/0]
5 root RT 0 0 0 0 S 0 0.0 0:00.00 [watchdog/0]
6 root RT 0 0 0 0 S 0 0.0 0:00.00 [migration/1]
Процесс VMWare для виртуальной машины, на которую я устанавливал, стал зомби. Тем не менее, он все еще потреблял 100% процессорного времени на одном из ядер, и я не мог получить доступ к нему или к другим виртуальным машинам. (Я был вошел в одну виртуальную машину через SSH, в другую через X11, а в третью через VNC. Все три соединения разорваны). Когда я запустил ps -ef
и подобные команды, я обнаружил, что у несуществующего vmware-vmx
процесса родительский PID установлен на init
(1). Я также использовал lsof -p 21549
и обнаружил, что у несуществующего процесса нет открытых файлов. Тем не менее, он использовал 100% процессорного времени...
Я не смог убитьлюбой vmware-vmx
процессы, включая неработающий, даже с kill -9
. В качестве последнего средства для разрешения ситуации я попытался перезагрузить коробку, однако shutdown
, halt
, reboot
, и init 6
все не смогли перезагрузиться/выключиться, даже когда были заданы соответствующие --force
настройки. ControlAltDelвыдало сообщение о перезагрузке на консоли, но система не перезагрузилась. Мне пришлось жестко выключить и включить коробку, чтобы разрешить ситуацию. (См. мой другой вопрос,Стоит ли беспокоиться о целостности программного RAID5 в Linux после сбоя или паники ядра?)
Что могло вызвать такой сценарий? Что еще я мог сделать, чтобы решить эту проблему, кроме жесткой перезагрузки? Что я могу сделать, чтобы предотвратить подобную ситуацию в будущем?
решение1
Ознакомьтесь с этим сообщением на форуме VMWare и посмотрите, поможет ли оно: http://communities.vmware.com/message/531884#531884
Отключение общего доступа к памяти — это, как правило, хорошая идея, если у вас есть оперативная память.
Я собрал здесь некоторые оптимизации, которые я использую для VMWare Server 2 на Ubuntu: http://www.stress-free.co.nz/vmware_server_20_optimisations
Я никогда не сталкивался с описанной вами проблемой, и у меня работают производственные серверы с Ubuntu Server 8.04LTS и 10.04LTS (как 32-разрядной, так и 64-разрядной).
решение2
К сожалению, я так и не смог найти решение этой проблемы. Просто мне показалось, что это проблема, присущая VMware Server.
С тех пор мы перешли на VMWare ESXi. Это в разы лучше, нет никакого сравнения! У меня никогда не было подобных проблем с ESXi.