Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Выполнение команды java удаленно через ssh завершается с ошибкой GC

Автор вопроса: pommeОтветов: 2

Я пытался выполнить java-приложение с использованием SSH с удаленного компьютера, но оно не очень хорошо работает :(

Чтобы выполнить это приложение на локальном компьютере, я написал сценарий оболочки, включающий команду java, и на локальном компьютере он работает нормально.

Итак, я попытался выполнить этот сценарий оболочки удаленно через ssh, как показано ниже.

ssh username@hostname execute.sh

Сначала казалось, что это сработало, но затем выдает следующую ошибку и выключение.

Предупреждение сборщика мусора: повторное выделение очень большого блока (примерный размер 929792): может привести к утечке памяти и снижению производительности.

Предупреждение сборщика мусора: недостаточно памяти! Возврат НИЛ!

Я понял, что означает сообщение, прочитав эту страницу ( http://www.hpl.hp.com/personal/Hans_Boehm/gc/debugging.html ), однако я понятия не имею, почему эта ошибка возникает только при удаленном выполнении команды java.

Кто-нибудь знает что-нибудь об этом? Или есть ли лучший способ удаленно выполнить команду java, кроме ssh?

Любая идея или информация будет принята с благодарностью!

С уважением, май


версия Java: Java(TM) SE Runtime Environment (сборка 1.6.0_18-b07)

  • Не могли бы вы уточнить, что вы подразумеваете под тем, что это работает нормально на локальном компьютере. Является ли локальная та же машина, что и удаленная, и вы говорите о том, что она работает, когда вы используете TTY, а не когда вы подключаетесь удаленно через SSH? Кроме того, ulimit -a интересно? rlibby 12.04.2011
  • Можете ли вы предоставить то, что у вас есть в сценарии execute.sh? Вы куда-нибудь перенаправляете stdout и stderr? Salman A. Kagzi 13.04.2011

sshjavajvmgarbage-collection

Ответы

Ответ 1 · рейтинг 1 · qwerty

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

Ответ 2 · рейтинг 1 · pomme

Это удалось с помощью команды "ожидать". Тем не менее, я не знаю причину предупреждений GC. Спасибо, ребята, за все комментарии.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы