Проблема с запуском более 63 виртуалок

Обсуждение работы системы JetSwap. Общий форум для всех вопросов, для которых не создано отдельных форумов.
drachev
Сообщения: 82
Зарегистрирован: 23 апр 2012, 22:06

Проблема с запуском более 63 виртуалок

Непрочитанное сообщение drachev »

Уже иссяк в вариантах, не могу победить, прошу помощи зала...
Железо - P7H55-M/USB3, I7-870, 4х4G DD3-1600, 500G WD Caviar Black , 256G SSD Crucial
Винт и ссд сидят на сата 3. На винте система, на ссд - все вм с СС.
Хост - W7-64 корпоратив
Гость - VB, XP, пробовал и обе с этого форума, и Lite, и Micro и других кучу с разными установками - резальт одинаковый:
после запуска 64й виртуалки начинаются чудеса - то сам манагер зависнет, то вм при остановке/восстановлении снимка.
Но главное чудо - после вроде бы нормальной остановки виртуалки (что из комстроки, что интерфейсом) ее процесс остается в запущенных
и в манагере опции ее управления не активны. Процесс убивается только руками, после этого в манагере появляются кнопки управления вм.
При запуске 63 вм занято рамы 14-14.5G, процики загружены в среднем 30-40%, иногда лишь, когда сразу многим cc перепадает что поглядеть, заходит за 90%.
По тестам скорости винта и ссд падают незначительно, т.е. ресурсы вроде бы позволяют крутить еще минимум с десяток вм,
и так оно в общем-то и есть - иногда удавалось пустить под 80 СС, но вот с такими глюками.
Нашел еще на офф форуме VB у кого-то была подобная проблема, но там был хост 32р, на то и грешили.
Подскажите - в какую сторону еще копать?
У кого-то работает на одном компе больше 63 вм?

Аватара пользователя
muntyan
Сообщения: 250
Зарегистрирован: 25 окт 2010, 22:17

Re: Проблема с запуском более 63 виртуалок

Непрочитанное сообщение muntyan »

Вряд ли проблема в гостевых, иначе с другими были бы проблемы в самом начале, учитывая постоянные обновления VB можно предположить, что в ней глюк. Попробуйте откатить на предыдущую версию, не факт что поможет, но за неимением вариантов,предлагаю этот...

drachev
Сообщения: 82
Зарегистрирован: 23 апр 2012, 22:06

Re: Проблема с запуском более 63 виртуалок

Непрочитанное сообщение drachev »

Та вот я и пытаюсь вычислить, где ж глюк - у ВБ или у меня.
Со времени первого наступа на эти грабли сменилось уже несколько версий,
заметно полегчало в этом плане.
Все же - есть тут кто, у кого запущено более 63 вм на одном компе?

Zuker
Сообщения: 139
Зарегистрирован: 14 дек 2009, 23:57

Re: Проблема с запуском более 63 виртуалок

Непрочитанное сообщение Zuker »

До обновления safesurf на движок браузера 10 с образом от Loller5 у меня работало на отдельном диске sata 3 77 виртуалок
Сейчас 60, ибо пришлось добавить оперативки немного, хотя можно и 65 пустить но нужно немного свободной оперы для других целей. винда тоже 7-64. Интересно посмотреть как ты их запускаешь. Я бы помог, но что мне от этой помощи будет ))))
P.S. ЛС

Аватара пользователя
muntyan
Сообщения: 250
Зарегистрирован: 25 окт 2010, 22:17

Re: Проблема с запуском более 63 виртуалок

Непрочитанное сообщение muntyan »

а что тут помогать есть батник с запуском через определенное время, кажись30 секунд. здесь это обсуждалось... Поройтесь в темах про виртуалки
Автоматическое клонирование

Код: Выделить всё

@echo off
for /L %%i in (10,1,99) do (

@echo %%i

@echo "‘®§¤ ­ЁҐ Њ иЁ­л..."
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createvm --name www0%%i --ostype WindowsXP --register

@echo "Љ«®­Ёа®ў ­ЁҐ „ЁбЄ ..."
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonevdi d:\VMs\www255.vdi d:\VMs\www0%%i.vdi

@echo "Ќ бва®©Є  ¬лиЁ­л..."
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm www0%%i --memory 256 --vram 4 --boot1 disk --boot2 none --boot3 none --boot4 none --nic1 hostonly --hostonlyadapter1 "VirtualBox Host-Only Ethernet Adapter" --nictype1 82543GC --audio dsound --audiocontroller ac97 --usb off

@echo "„®Ў ў«пҐ¬ Љ®­ва®««Ґа ide..."
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storagectl www0%%i --name "IDE Љ®­ва®««Ґа" --add ide --controller PIIX4


@echo "Њ г­в „ЁбЄ ..."
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach www0%%i --storagectl "IDE Љ®­ва®««Ґа" --port 0 --device 0 --type hdd --medium d:\VMs\www0%%i.vdi


@echo "“ᥠѓ®в®ў®..."
)
(он создает клоны вместе с дисками от 010 до 099 машины, если вам надо меньше машин, просто во второй строке 99 поменяйте на нужное число)

(он расчитан что виртбокс установлен C:\Program Files\Oracle\VirtualBox\ , если у вас он установлен в др месте, подправьте пути в батничке...)

после завершения процесса клоунирования, запускаем (по очереди) каждую машину, меняем в ней, имя машины и ИП адрес, запускаем сс, авторизируем и сразу после запуска сс, выключаем машину, делаем снимок... и так все вноовь созданные машины...
после того как все машины будут настроены их можно запустить автоматом (с паузой в 35 сек - скрипт)

Код: Выделить всё

@echo off
for /L %%i in (10,1,99) do (
@echo ‡ ЇгбЄ ¬ иЁ­л... %%i
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm www0%%i
ping -n 35 localhost >nul
@echo “ᥠѓ®в®ў®...
)
Взято из темы sstats про виртуалки

Hans
Сообщения: 626
Зарегистрирован: 24 май 2010, 20:33

Re: Проблема с запуском более 63 виртуалок

Непрочитанное сообщение Hans »

drachev писал(а): ...после запуска 64й виртуалки начинаются чудеса - то сам манагер зависнет, то вм при остановке/восстановлении снимка.
Но главное чудо - после вроде бы нормальной остановки виртуалки (что из комстроки, что интерфейсом) ее процесс остается в запущенных
и в манагере опции ее управления не активны. Процесс убивается только руками, после этого в манагере появляются кнопки управления вм...
Подскажите - в какую сторону еще копать?...
"Главное чудо"- это особенности VB. Процессы VB остаются запущенными после остановки, когда в процессе работы хостовой машине не хватает оперативки и она начинает сбрасывать память в СВОП, в том числе и память виртуалок. После остановки, возможно, эти процессы (или инфа об этих процессах) зависают в СВОПе. Другого объяснения не вижу. Это "чудо" так и не удалось победить.
По зависанию и тормозам... Попробуй создать на SSD отдельный раздел примерно 15 Гб и задай 10-12 Гб СВОПа. Можно на винте с ОС, но скорость будет поменьше.
У меня тоже иногда без видимых причин начинает взлетать проц до 100% с жуткими тормозами и цепными перезагрузками виртуалок. Скорей всего, это внешнее воздействие - обновления или попытка врагов взломать систему.
З.Ы. О СВОПЕ на SSD. Здесь процессы перезаписи уменьшают ресурс диска, на обычном винте нет. Так что выбор за вами - долговечность или скорость.
Да, SSD не любят заполнения под завязку, 30-50% свободного места надо оставлять.
Архивация информации в любой точке пространства-времени.
Открыт метод архивации любой информации через область бесконечно удаленных точек не на известных носителях информации, а в вакууме через единичные импульсы специальной приставки к компьютеру.

drachev
Сообщения: 82
Зарегистрирован: 23 апр 2012, 22:06

Re: Проблема с запуском более 63 виртуалок

Непрочитанное сообщение drachev »

Спасибо всем ответившим!
Zuker писал(а):До обновления safesurf на движок браузера 10 с образом от Loller5 у меня работало на отдельном диске sata 3 77 виртуалок
Сейчас 60, ибо пришлось добавить оперативки немного, хотя можно и 65 пустить но нужно немного свободной оперы для других целей. винда тоже 7-64. Интересно посмотреть как ты их запускаешь. Я бы помог, но что мне от этой помощи будет ))))
P.S. ЛС
Ключевое для меня тут - цифирь 77.
И если они при этом нормально управляются, без описанных глюков - появилась надежда на светлое будущее!
А памяти на хосте сколько? Гостям по сколько достается?
До ссд пытался пускать вм на винтах, за 30 штук - и винты начинали сходить с ума от непрерывного дергания головами,
соответственно тормоза везде при грустной цифре загрузки проца 1%.
Сата 3, как и ожидалось, мышиная возня, дает несколько % скорости и лишь на линейном чтении.
Оптимизация каталогов vb и машин, свопа по дискам несколько помогла, но кардинально все изменилось только на ссд, там и сата3 сразу проявился.

Пускаю машины батниками типа

VBoxManage snapshot WM-xx restore snap-xx
VBoxManage startvm WM-xx

Останавливаю

VBoxManage controlvm WM-xx poweroff

Но без разницы, батником или из интерфейса пока для меня 63 заколдованное число.

Темы о клонировании в свое время смотрел, делаю чуть по-другому.
Создаю машины руками, т.е. создал и настроил что надо - потом только успевай CTRL+SHIFT+C, подправил N клона и пара раз ентер. Секунда дело!
Тут гораздо больше времени уходит на регу в СС, ну и снимок первый.
Hans писал(а):"Главное чудо"- это особенности VB. Процессы VB остаются запущенными после остановки, когда в процессе работы хостовой машине не хватает оперативки и она начинает сбрасывать память в СВОП, в том числе и память виртуалок. После остановки, возможно, эти процессы (или инфа об этих процессах) зависают в СВОПе. Другого объяснения не вижу. Это "чудо" так и не удалось победить.
По зависанию и тормозам... Попробуй создать на SSD отдельный раздел примерно 15 Гб и задай 10-12 Гб СВОПа. Можно на винте с ОС, но скорость будет поменьше.
У меня тоже иногда без видимых причин начинает взлетать проц до 100% с жуткими тормозами и цепными перезагрузками виртуалок. Скорей всего, это внешнее воздействие - обновления или попытка врагов взломать систему.
З.Ы. О СВОПЕ на SSD. Здесь процессы перезаписи уменьшают ресурс диска, на обычном винте нет. Так что выбор за вами - долговечность или скорость.
Да, SSD не любят заполнения под завязку, 30-50% свободного места надо оставлять.
Дык при запущенных 63вм еще больше гига фри, почему именно на 64й свет клином сошелся?
Со свопами игрался в свое время, и на ссд задавал, резальтов особых не дало, но мысль понял, попробую еще и это направление.
За нюансы ссд в курсе, спасибо.

Hans
Сообщения: 626
Зарегистрирован: 24 май 2010, 20:33

Re: Проблема с запуском более 63 виртуалок

Непрочитанное сообщение Hans »

drachev писал(а):Останавливаю

VBoxManage controlvm WM-xx poweroff
Можно останавливать быстрее:
@echo off
taskkill /f /im Virtualbox.exe

Тяжких последствий пока не заметил.
Архивация информации в любой точке пространства-времени.
Открыт метод архивации любой информации через область бесконечно удаленных точек не на известных носителях информации, а в вакууме через единичные импульсы специальной приставки к компьютеру.

drachev
Сообщения: 82
Зарегистрирован: 23 апр 2012, 22:06

Re: Проблема с запуском более 63 виртуалок

Непрочитанное сообщение drachev »

Hans писал(а):Можно останавливать быстрее:
@echo off
taskkill /f /im Virtualbox.exe

Тяжких последствий пока не заметил.
Да, это когда надо остановить сразу все вм.
Батники пускаю для "плановой" перезагрузки автоматом из шедулера, думаю понятно зачем.
Именно из-за того, что после 64 вм процесс остается болтаться, автомат перестает работать и открыл эту тему.
Можно конечно убивать и по номерам процессов, которые читать из лога вм, но это как-то коряво, если есть штатный способ.
Кстати, могу безвозмездно порекомендовать именно для этого планировщик
http://students.cs.donntu.edu.ua/sp00_2 ... chedul.htm
Мелкий, удобный, устойчивый, никаких лишних наворотов.

drachev
Сообщения: 82
Зарегистрирован: 23 апр 2012, 22:06

Re: Проблема с запуском более 63 виртуалок

Непрочитанное сообщение drachev »

Резюмэ, можно считать официальный ответ от Оракла -
"На виндовом хосте запустить больше 63 вм невозможно, это ограничение функции WaitForMultipleObjects, на которой основан GUI виртуалбокса."

Но если нелья, а очень хочется ?...
В итоге сейчас успешно крутятся 80 вм с SS и еще несколько для других целей,
нашел способ пускать столько вм, сколько потянет железо.
Гуи нет, но он тут особо и не нужен, пуск-стоп вм батниками из шедулера.
Немного подробней, как это сделать, может кому еще пригодится.
Основная проблема - остановить вм при отсутствии гуи, т.е. только прибиванием ее процесса,
ид которого читается из лога вм.

Батник останова вм kill_01-10.bat
  • @echo off
    if exist task_kill.bat del task_kill.bat > nul
    SetLocal EnableDelayedExpansion

    set path_wm=s:\mashins\
    set nam_wm=SS-
    set wm_beg=1
    set wm_end=10

    for /L %%p in (%wm_beg%,1,%wm_end%) do (
    set qq=0
    if %%p lss 10 (set qq=!qq!%%p) else (set qq=%%p)
    call read_id.bat %path_wm%%nam_wm%!qq!\
    )
    ping -n 2 localhost > nul
    call task_kill.bat
    ping -n 2 localhost > nul
    if exist task_kill.bat del task_kill.bat > nul
    if exist temp.log del temp.log > nul
    exit
Немного накручено, т.к. нумерация вм у меня с ведущим нулем.

Батник чтения ид процесса вм read_id.bat
  • @echo off
    echo processing %1Logs\VBox.log
    if exist temp.log del temp.log > nul
    copy %1Logs\VBox.log temp.log > nul
    for /F "skip=5 tokens=1,2,3,4*" %%i in (temp.log) do (
    if "%%j"=="Process" (
    if "%%k"=="ID:" (
    echo taskkill /pid %%l /t /f >> task_kill.bat
    )))
С запуском проблем нет, уже обсуждалось, стандартно а-ля
  • VBoxManage snapshot SS-01 restore snapshot
    VBoxManage startvm SS-01
а вот после запуска порции вм в конце батника прибиваем гуи
  • taskkill /f /im VboxSVC.exe
Нюансик - гуи один на всех, т.е. если кроме SS есть еще вм - после этой команды они тоже останутся без него.

Ответить