Как запустить TeamCity на 64-bit JVM
Я только что узнал, что TeamCity работает на 32-битной JVM в Windows по какой-то причине.
Я вижу ошибки памяти, зарегистрированные при проверке большого (не такого большого) репозитория Git, и уже на максимальном размере кучи для JVM. Я ничего не знаю о Java или JVM, или TomCat.
Как я могу запустить TeamCity на современном 64-битном JVM? Я чувствую, что это будет боль, иначе это будет по умолчанию.
мы крошечная команда, и если что-то не имеет Apple уровни "это просто работает", то мы пропускаем его.
мы можем жить с этим проектом не на сервере CI, но было бы неплохо знать, что связано и взвесить инвестиции.
любые советы с благодарностью.
редактировать
хорошо, поэтому Маркус указал на этот фрагмент (который я прочитал), но я не вижу никакой информации, объясняющей, что делать.
использование 64-битной Java для запуска TeamCity Server TeamCity может работать под обоими Тридцать два и 64 бит JVM. Рекомендуется использовать 32-битный JVM, если вам не нужно посвятить процессу TeamCity более 1,3 Гб памяти.
Если вы решили использовать x64 JVM, обратите внимание, что использование памяти почти в два раза при переключении с 32 на 64 бит JVM, поэтому, пожалуйста, сделайте конечно, вы указываете по крайней мере в два раза больше памяти, чем для 32-битной JVM, см. Настройка параметров памяти для сервера TeamCity.
Если вы запустите TeamCity как службу и переключитесь на бит x64, вы также необходимо использовать исполняемые файлы x64 Tomcat, см. Подробнее.
Я что-то пропустил?
Изменить 2
Ах, хорошо, похоронен в некоторых абзацах выше этой ссылки:
" Если вы работаете как служба Windows и хотите обновить JRE до 64 бит версия, вам нужно будет заменить jre на соответствующую Среда JRE"
Итак, я думаю, мне нужно скопировать некоторые файлы в папку /jre?
3 ответов
фрагмент из обновленного вопроса имел ссылку в оригинале, указывающую на инструкции по обновлению Java для TeamCity server в TeamCity Online doc.
в основном инструкции варьируются в зависимости от используемого дистрибутива TeamCity и способа запуска сервера.
Если вы намерены увеличить память для сервера TeamCity, пожалуйста, не забудьте прочитать соответствующий раздел на том же doc страница.
еще одно примечание: последние версии TeamCity выполняют git fetch в отдельном процессе, и связанные с Git Проблемы памяти во время fetch могут потребовать тонкой настройки опции.
Как я заставил его работать (TeamCity 8, Windows server 2008 r2):
установить 64-разрядную JRE на целевой машине, теперь есть два способа сделать это
A -> если вы используете TeamCity в комплекте JRE, замените папку JRE ([папка сервера TC]\JRE) на папку JRE во вновь установленной JRE x64 - вы должны закрыть Службу сервера TC (вместе со всей java.exe * 32 службы, которые также могут использовать это Среда JRE)
-
B - > измените внутренние свойства TeamCity, чтобы указать на недавно установленный JRE x64 (см. документацию для TC версии 8, TC версии 9 можно найти здесь):
java.home=C\:\<JRE x64 install folder>\jre java.ext.dirs=C\:\<JRE x64 install folder>\jre\lib\ext\;C\:\Windows\Sun\Java\lib\ext java.library.path=C\:\<JRE x64 install folder>\jre\bin\;C\:\Windows\Sun\Java\bin\;C\:\Windows\system32\;C\:\Windows\;C\:\local\Oracle\clients\112_64\bin\;C\:\local\Oracle…
альтернативой точке B было бы изменение переменной среды JAVA_HOME, это более просто, но после этого требуется перезапуск Windows server
Если вы запустите службу сервера TC сейчас, она должна запустите как 64-разрядный процесс Java (chceck через PID в диспетчере задач) :
-
Не тревожьтесь, если сервер не запускается с ошибкой:
Error: SQL error when doing: Connecting to MSSQL: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property
скачать JTDS-1.3.1 (http://sourceforge.net/projects/jtds/files/jtds/1.3.1/) и установить его
взять ntlmauth.dll файлы файл из папки установки [jtds-1.3.1] / x64/SSO папка и замените ее в папке [TC Server folder]\bin
сервер TC теперь должен работать нормально, как 64-битный процесс Java
вы можете увеличить выделение памяти (так как это весь смысл обновления) теперь на сервере, как описано здесь : https://confluence.jetbrains.com/display/TCD8/Installing+and+Configuring+the+TeamCity+Server#InstallingandConfiguringtheTeamCityserver-SettingUpMemorysettingsforTeamCityserver
" Итак, я думаю, мне нужно скопировать некоторые файлы в папку /jre?"
нет. Вы установить 64-разрядная JRE и обновите соответствующую настройку, чтобы указать на JRE 64-разрядной установки.
Не копируйте материал из одной установки JRE в другую. Вы будете ломать вещи!