Tag: 独角兽

`parse_rackup_file’:rackup文件(config.ru)不可读(ArgumentError)

我的proc文件中有这个“web:bundle exec unicorn -p $ PORT -c ./config/unicorn.rb”。 启动服务器后,我收到以下错误消息。 foreman start 12:29:20 web.1 | started with pid 4876 12:29:20 web.1 | exited with code 1 12:29:20 system | sending SIGTERM to all processes 12:29:20 | /home/stcadmin/.rvm/gems/ruby-1.9.3-p448@cpi2/gems/unicorn-4.7.0/lib/unicorn/configurator.rb:659:in `parse_rackup_file’: rackup file (config.ru) not readable (ArgumentError) 12:29:20 | from /home/stcadmin/.rvm/gems/ruby-1.9.3-p448@cpi2/gems/unicorn-4.7.0/lib/unicorn/configurator.rb:77:in `reload’ 12:29:20 | from /home/stcadmin/.rvm/gems/ruby-1.9.3-p448@cpi2/gems/unicorn-4.7.0/lib/unicorn/configurator.rb:68:in `initialize’ 12:29:20 | […]

rails 500错误没有生产日志条目

我在与另一个应用程序相同的服务器上安装了新的rails应用程序。 原版运行正常,但新的应用程序给了我臭名昭着的“我们很抱歉,但出了点问题”,但生产日志中没有条目。 生产日志中的最后一个条目来自我使用rake的迁移。 我发现如果我运行cap deploy:冷却它会工作但是接下来的yupdate将再次失败而没有sock文件。 然后是cap deploy:每次更新时都需要冷。 编辑:如果我运行/etc/init.d/unicorn_taxidata restart我得到“无法重新加载”然后如果我再次运行它立即开始正常。 该应用程序正在开发中。 环境是NGINX,独角兽,postgresql,rails 4.0.0.0,ruby 2.0.0p195。 我的nginx错误日志中有这个错误: [crit] 889#0: *65 connect() to unix:/tmp/unicorn.myapp.sock failed (2: No such file or directory) while connecting to upstream, client: 1.123.13.26, server: myapp.com.au, request: “GET /login HTTP/1.1”, upstream: “http://unix:/tmp/unicorn.myapp.sock:/login”

如何使rails + unicorn记录器线程安全?

我们一直在使用独角兽来部署我们的应用程序。 除了production.log文件之外,一切都很顺利,因为独角兽的设计方式,这个文件变得难以理解。 每个独角兽的实例写到同一个文件,导致所有的线条意大利面。 那么有没有办法告诉记录器在多个独角兽实例中独立记录?

我的机架文件出了什么问题?

当我尝试启动我的unicorn服务器时,我有下一个堆栈跟踪:无法理解rackup文件有什么问题? 为什么它不可读? sites@bck:~/fatfreecrm$ /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/bin/unicorn_rails -E -D production -c /home/sites/fatfreecrm/config/unicorn.rb /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/gems/unicorn-3.7.0/lib/unicorn/configurator.rb:600:in `parse_rackup_file’: rackup file (production) not readable (ArgumentError) from /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/gems/unicorn-3.7.0/lib/unicorn/configurator.rb:74:in `reload’ from /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/gems/unicorn-3.7.0/lib/unicorn/configurator.rb:65:in `initialize’ from /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/gems/unicorn-3.7.0/lib/unicorn/http_server.rb:102:in `new’ from /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/gems/unicorn-3.7.0/lib/unicorn/http_server.rb:102:in `initialize’ from /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/gems/unicorn-3.7.0/lib/unicorn.rb:30:in `new’ from /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/gems/unicorn-3.7.0/lib/unicorn.rb:30:in `run’ from /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/gems/unicorn-3.7.0/bin/unicorn_rails:208:in `’ from /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/bin/unicorn_rails:19:in `load’ from /home/sites/.rvm/gems/ruby-1.9.2-p180@fatfreecrm/bin/unicorn_rails:19:in `’

如何使用Unicorn进行滚动重启?

假设我对我的rails应用程序进行了一些更改,例如更改html布局。 如何使用Unicorn进行滚动重启? 实际上,有人希望为最新版本的rails应用程序启动独角兽进程(或工作人员?),然后将流量从旧的独角兽进程/工作者primefaces转换为新的。 从谷歌搜索中我无法得到一个具体的明确解释,说明如何做到这一点以及围绕它的所有问题。

Unicorn不关闭数据库连接

我正在使用rails 3.2 + unicorn + postgres DB,我有一个问题 – 独角兽如何处理数据库连接? 我的理解: 独角兽主进程分叉X子进程。 每个子进程设置DB连接 – 在before_fork中关闭,在after_fork中建立连接。 我们使用每个进程的连接(如果我们使用rails DB连接池,我们创建Y(来自database.yml)每个进程的DB连接) – 即如果进程正在工作(它始终有效,直到我们不杀死它)我们保持连接打开并且每个Web请求使用相同的连接(在after_fork中打开)。 打开的连接将在postgres(或任何其他数据库)中显示为空闲或活动。 这是正确的还是我错过了什么?

切换到heroku cedar-14会导致内存消耗不断增加

Heroku最近宣布,在今年11月之后将不再支持雪松10。 切换到雪松-14导致内存消耗增加,直到我遇到R14“超出内存配额”错误并且不得不重启heroku。 在我开始使用unicorn_worker_killer gem之前,使用独角兽会增加内存使用量。 cedar-14和unicorn / unicorn_worker_killer是否存在已知问题? 我没找到任何东西。

真的需要一个db连接池用于unicorn rails吗?

我找不到任何描述独角兽数据库连接池效应的文档。 Unicorn分叉了几个工人流程。 我配置了prefork,关键是不要在worker之间共享数据库连接,所以我在fork之后重置db连接。 我的rails应用程序每个服务器有8个worker,而database.yml中的pool大小是5,然后我看到了45个与mysql的连接。 每个worker都是单线程的,一次处理1个请求。 SQL查询应该是阻塞的。 似乎其他4个连接都没用? 我可以将池大小设置为1以获得更好的性能吗?

独角兽吃记忆

我在亚马逊有一个m1.small实例,我的rails应用程序运行8GB硬盘空间。 它运行平稳了2个星期,然后崩溃说内存已满。 应用程序正在rails 3.1.1,unicorn和nginx上运行 我根本不明白13G是什么? 我杀死了独角兽,’free’命令显示了一些自由空间,而df仍在说100% 我重新启动了实例,一切正常。 免费(在杀死独角兽之前) total used free shared buffers cached Mem: 1705192 1671580 33612 0 321816 405288 -/+ buffers/cache: 944476 760716 Swap: 917500 50812 866688 df -l(在杀死独角兽之前) Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 8256952 7837520 4 100% / none 847464 120 847344 1% /dev none 852596 0 852596 0% […]

bundler错误地尝试在生产中安装“开发”和“测试”组gem

我有一个小型的网络应用程序,它使用了一堆gem。 其中一些仅用于test和development环境。 现在,当我尝试使用以下命令在生产服务器上启动独角兽时,它会失败。 unicorn_rails -E production -D -c config/unicorn.rb 我在日志文件中看到的错误是: Refreshing Gem list Could not find gem ‘spork (>= 0.9.0.rc2, runtime)’ in any of the gem sources listed in your Gemfile. Try running `bundle install`. 我在下面粘贴了我的gemfile: source ‘http://rubygems.org’ gem ‘rails’, ‘3.0.1’ gem ‘unicorn’ gem ‘mongoid’, ‘>= 2.0.0.beta.19’ gem ‘devise’ gem ‘cancan’ gem ‘haml’, ‘>= 3.0.0’ […]