Unicorn无法分配内存

Ant*_*nAL 6 ruby-on-rails unicorn

我需要你的帮助!

我使用Nginx,MySQL,Solr和Unicorn在Ubuntu 12.04中部署了我的Rails应用程序.

每个提到的服务都是启动的,而不是独角兽,它说:

我,[2013-02-11T16:10:20.187989#27547]信息 - :刷新宝石列表I,[2013-02-11T16:10:52.159198#27547]信息 - :取消链接现有的套接字=/var/www/staging/shared/unicorn.sock I,[2013-02-11T16:10:52.159488#27547]信息 - :收听addr =/var/www/staging/shared/unicorn.sock fd = 12 E,[2013- 02-11T16:10:52.161513#27547]错误 - :无法分配内存 - fork(2)(Errno :: ENOMEM)/var/www/staging/shared/gems/ruby/1.9.1/gems/unicorn-4.5 .0/lib/unicorn/http_server.rb:496:in fork' /var/www/staging/shared/gems/ruby/1.9.1/gems/unicorn-4.5.0/lib/unicorn/http_server.rb:496:in spawn_missing_workers'/var /www/staging/shared/gems/ruby/1.9.1/gems/unicorn-4.5.0/lib/unicorn/http_server.rb: 142 :在 start' /var/www/staging/shared/gems/ruby/1.9.1/gems/unicorn-4.5.0/bin/unicorn_rails:209:in '/var/www/staging/shared/gems/ruby/1.9.1/bin/unicorn_rails:23:in load' /var/www/staging/shared/gems/ruby/1.9.1/bin/unicorn_rails:23:in '

VDS拥有1.5Gb的RAM,对于独角兽来说已经足够了:

cat /proc/meminfo
Run Code Online (Sandbox Code Playgroud)
MemTotal:        1585152 kB
MemFree:          989580 kB
Cached:           425296 kB
Active:           348504 kB
Inactive:         175356 kB
Active(anon):      98488 kB
Inactive(anon):       76 kB
Active(file):     250016 kB
Inactive(file):   175280 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:        204800 kB
SwapFree:         204800 kB
Dirty:                12 kB
Writeback:             0 kB
AnonPages:         98564 kB
Shmem:              3604 kB
Slab:              71680 kB
SReclaimable:      66144 kB
SUnreclaim:         5536 kB
Run Code Online (Sandbox Code Playgroud)

我有unicorn_rails v4.5.0

Unicorn从以下命令开始:

bundle exec unicorn_rails -c /var/www/staging/current/config/unicorn.rb -E production -D

我在这里做错了什么?


嗯,我记得,以前我有以下奇怪的错误:

failed: "rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-1.9.3-p327' -c 'cd /var/www/staging/current && bundle exec unicorn_rails -c /var/www/staging/current/config/unicorn.rb -E production -D'" 
Run Code Online (Sandbox Code Playgroud)

也许它与记忆问题有某种关系......

Die*_*ion 2

看来错误是在分叉新进程时发生的。您可能需要减少 config/unicorn.rb 文件中的工作人员。每个worker都是一个进程,每个进程将应用程序环境加载到RAM中。