Я должен использовать StarTeam 2005 CrossPlatform Client в последней системе Debian внутри виртуальной машины. Это прекрасно работает, если виртуальная машина настроена на одноядерный. Но если я настрою несколько процессоров и / или несколько ядер, приложение при запуске зависает, показывая только заставку. На консоли не отображается трассировка ошибок.

Есть ли обходной путь для запуска и запуска таких приложений в многоядерной среде? В настоящее время я должен либо перезагрузиться, если я хочу зарегистрироваться, либо работать с настройкой одного ядра. Я использую эту виртуальную машину для разработки, и make -j8 веселее, чем просто make ;)

Я попытался взломать вызов сценария запуска, например schedtool -a 0x1 -v -e java ... (установив привязку процессора к одному), но безуспешно - такое же поведение.

То же самое произошло на более старой установке (более старая виртуальная машина, более старая Linux, тот же StarTeam), но у меня нет номеров версий тех. Вот настройка текущей системы:

  • VMWare Workstation 9.0.3 build-1410761, установлены гостевые дополнения
  • Debian Wheezy (Linux cmd-vm 3.2.0-4-686-pae # 1 SMP Debian 3.2.46-1+deb7u1 i686 GNU/Linux)
  • Java (TM) SE Runtime Environment (сборка 1.7.0_25-b15)
  • скрипт запуска: LAXUNIX.SH - LaunchAnywhere (tm) версия 5.0
  • Кроссплатформенный клиент StarTeam Build 7.0.0-133

1 ответ1

0

Как указывалось выше, ограничение количества процессорных ядер достаточно слабое. Мне пришлось использовать cpulimit чтобы уменьшить использование процессора этой программой:

Сразу после вызова Java я добавил эту строку в сценарий запуска:

cpulimit -e java -l 25 -b

Это ограничивает Java до 25% от максимальной скорости одного процессора / ядра. Ограничение количества процессоров (опция -c не обязательна). Вероятно, просто условие гонки при инициализации программы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .