У меня есть приложение Rails, работающее на jruby-9.0.4.0
и использующее Puma в качестве веб-сервера.Как передать Java-возможности демону Puma?
Я пытаюсь увеличить предел памяти puma
; текущие флаги - -Xmx500m -Xss2048k
. Я добавил _JAVA_OPTIONS=-Xss4096k -Xmx2048m
в мой env
, и все процессы jruby
используют его, например, rake assets:precompile
, но сам экземпляр puma
этого не делает.
Часть Capistrano следа
DEBUG [0aec947c] Command: cd
/dummy/production/releases/20160707071111 && (
export RBENV_ROOT="/usr/local/rbenv" RBENV_VERSION="jruby-9.0.4.0"
RAILS_ENV="production" ; /usr/local/rbenv/bin/rbenv exec bundle exec
rake assets:precompile)
DEBUG [0aec947c] Picked up _JAVA_OPTIONS: -Xss4096k -Xmx2048m
конфигурации/puma.rb
# Min and Max threads per worker
threads 8, 512
# Default to production
rails_env = ENV['RAILS_ENV'] || 'production'
environment rails_env
app_dir = "/dummy/#{rails_env}/current"
# Set up socket location
bind "tcp://localhost:3000"
# Logging
stdout_redirect "#{app_dir}/log/puma.stdout.log", "#{app_dir}/log/puma.stderr.log", true
# Set master PID and state locations
pidfile "#{app_dir}/pids/puma.pid"
state_path "#{app_dir}/pids/puma.state"
activate_control_app
ENV переменные
JAVA_OPTS=-Xss4096k -Xmx2048m
_JAVA_OPTIONS=-Xss4096k -Xmx2048m
JAVA_HOME=/usr/lib/jvm/java-7-oracle-amd64
Выход cat /proc/<pid>/environ
RBENV_ROOT =/USR/местные/rbenvprevious = NUPSTART_JOB = rcPATH =/манекена/производство/общий/комплект/JRuby/2.2.0/бен:/USR/местные/rbenv/версии/JRuby-9.0.4.0/бен:/USR/местные/rbenv/libexec:/USR/местные/SBIN:/USR/местные/бен:/SBIN:/бен:/USR/SBIN:/USR/binPWD =/манекена/производство/выпуски/20160707133222RBENV_DIR =/манекена/производство/выпуски/20160707133222SUPERVISOR_SERVER_URL = Unix: ///var/run/supervisor.sockUPSTART_EVENTS=runlevelRUNLEVEL=2NLSPATH=/usr/dt/lib/nls/msg/%L/%N.catSUPERVISOR_PROCESS_NAME = dummyprocessSUPERVISOR_ENABLED = 1XFILESEARCHPATH =/USR/дт/приложение-умолчанию /% L/DtSHLVL = 0UPSTART_INSTANCE = PREVLEVEL = NRBENV_VERSION = JRuby-9.0.4.0RBENV_HOOK_PATH =:/USR/местные/rbenv/rbenv.d:/USR/местные/и т.д. /rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooksrunlevel=2SUP ERVISOR_GROUP_NAME = dummyprocessTERM = linuxRUBYOPT = -rbundler/setupRUBYLIB =/USR/местные/rbenv/версии/JRuby-9.0.4.0/Библиотека/рубин/драгоценные камни/общие/драгоценные камни/пакетирования-1.11.2/libroot
машина является 8-ядерным с 24 ГБ оперативной памяти.
Как я могу позволить экземпляру puma
также выбрать опции Java
?
У меня уже есть эти переменные в моей среде, демон Puma, похоже, не забирает их. Он запускается со своими собственными флагами, поэтому игнорирует все другие переменные. Я обновлю вопрос, чтобы добавить свой env. Спасибо хоть. –
Как запускается демон Puma? Какова реальная среда процесса Puma? Вы можете распечатать его, запустив 'cat/proc//environ', где' 'является идентификатором процесса для демона Puma. –
Добавил его к вопросу, так как он слишком длинный для комментария. –