我在使用RVM和mongrel_rails方面遇到了麻烦,所以任何帮助都会非常感激.
我可以愉快地使用Ruby gem mongrel使用脚本/服务器启动我的Rails 2.x应用程序.详情:哪个rails/opt/local/bin/rails哪个mongrel_rails/opt/local/bin/mongrel_rails哪个gem/opt/local/bin/gem
但是我刚刚用Ruby 1.8.7添加了RVM并安装了我的所有宝石,包括mongrel但是当我尝试用脚本/服务器启动我的rails应用程序时,我现在得到:没有这样的文件要加载 - mongrel_rails(MissingSourceFile)
运行几个检查我发现:
其中mongrel_rails /Users/daniellewis/.rvm/gems/ruby-1.8.7-p334@nacore/bin/mongrel_rails which rails /Users/daniellewis/.rvm/gems/ruby-1.8.7-p334@nacore/bin/rails哪个宝石/Users/daniellewis/.rvm/rubies/ruby-1.8.7-p334/bin/gem
.profile有:export PATH =/opt/local/bin:/ opt/local/sbin:/ usr/local/mysql/bin:$ PATH [[-s"$ HOME/.rvm/scripts/rvm"]] && ."$ HOME/.rvm /脚本/ RVM"
(我正在使用macports)
有关为什么脚本/服务器无法找到mongrel_rails的任何想法?我只能猜测它与.profile有关,但我不确定是什么.
谢谢!
我一直在玩并评估rails的默认WEBrick服务器的其他选项,而Thin是最无痛,最干净的东西,效果非常好!!
你会推荐哪一个Mongrel,Thin,WEBrick和Passenger以及为什么......?是否有任何可扩展性特权(集群友好或配置,可以处理某种规模),这些服务器随附任何这些服务器.或者在评估它们时,可扩展性甚至应该是一个参数?
任何人都知道通过capistrano以"滚动"方式重新启动杂种群集的好方法,例如,一次只有一个杂种.很高兴在每个地方都有一些等待时间,让杂物也加载rails应用程序.
我做了一些搜索,并没有找到太多,所以在我自己潜入mongrel_cluster gem之前寻求帮助.
谢谢!
我正在编写一个Web应用程序来监控家具厂的生产流程.它有数千个数据需要处理.到目前为止,我在Mongrel + MySQL上运行RoR并且它真的很慢(对于某些视图为2-4分钟).当我查看RoR日志时,似乎数据库查询不是很慢(0-10ms).
RoR在将数据库数据转换为对象时是否会变慢?杂种慢吗?
编辑:第一件事:我在开发中.ENV.在生产环境中,最慢的视图需要2分钟(在好的计算机上会减少不到1分钟,我的是5年).使用ruby-prof和一些常识,我发现哪些方法正在减慢应用程序的速度.问题是在大型数据集的循环中调用单个SQL查询:
ofs = Ofkb.find_by_sql ["..some large sql query..."]
for of in ofs # About 700-1000 elements
ops = Operation.find(..the single query..)
etc.
end
Run Code Online (Sandbox Code Playgroud)
以下是这些方法的ruby-prof结果:
%self total self wait child calls name
32.19 97.91 97.91 0.00 0.00 55 IO#gets (ruby_runtime:0}
28.31 86.39 86.08 0.00 0.32 32128 Mysql#query (ruby_runtime:0}
6.14 18.66 18.66 0.00 0.00 12432 IO#write (ruby_runtime:0}
0.80 2.53 2.42 0.00 0.11 32122 Mysql::Result#each_hash (ruby_runtime:0}
Run Code Online (Sandbox Code Playgroud)
问题是:我无法真正避免那些单一的查询.我有数以千计的事件,我必须从中计算复杂的数据.现在我在那些方法上使用memcached,除非你是第一个请求页面的人.
我已经看到mongrel的最后一次更新是大约一年前...
http://mongrel.rubyforge.org/wiki/WikiStart?action=diff&version=35
它被推迟了吗?
Windows开发盒还有其他轻量级替代品吗?
好的,所以我想在Rails中创建一个动作来重启自己.我做了一点搜索,发现:
http://snippets.dzone.com/posts/show/5002
这表示2个命令,一个停止,另一个重启.以下杀戮:
ps -a|grep "/usr/local/bin/ruby script/server"|grep -v "grep /usr"|cut -d " " -f1|xargs -n 1 kill -KILL $1
Run Code Online (Sandbox Code Playgroud)
-HUP信号没有为我重新启动,所以我试图破坏上面的命令(调整使命令工作正常,我在Ubuntu下启动服务器):
ps -eaf|grep "ruby script/server"|grep -v grep|cut -d " " -f3|xargs -n 1 kill -KILL $1;script/server
Run Code Online (Sandbox Code Playgroud)
这在我的环境中工作正常,所以我尝试设置一个动作来执行它:
def restart
fork { exec "ps -eaf|grep \"ruby script/server\"|grep -v grep|cut -d \" \" -f3|xargs -n 1 kill -KILL $1;script/server" }
redirect_to "/server_maintenance"
end
Run Code Online (Sandbox Code Playgroud)
该操作可以很好地杀死服务器,但实际上并没有启动服务器备份:
=> Booting Mongrel
=> Rails 2.3.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to …Run Code Online (Sandbox Code Playgroud) 我的rails网站运行Mongrel,我使用的内存量有问题.我的ruby-bin进程占用了大约66 MB的驻留内存.如何减少rails使用的内存量?
如果以这种速度占用内存,在一台机器上运行许多rails服务器是不太经济的.我的php5 fcgi进程位于15-25 MB之间.
我对RoR很不熟悉,会不会使用JRuby的帮助?任何有助于减少内存占用和提高性能的评论都非常受欢迎.
我在Mongrel上使用Redmine作为项目经理,我使用批处理文件(start-redmine.bat)来启动mongrel中的redmine.有2个问题与我的设置:1.我有一个占据启动redmine.bat必须定期检查,看它是否是由导致重启后停止HTTP端口(80)2.在服务器上运行IIS Windows更新服务.
对于第一个问题,我别无选择,只能在像3000这样的端口上运行mongrel,对于第二个问题,我必须创建一个在Windows启动时在后台自动运行的Windows服务; 这就麻烦了!
至少有3种方法可以运行redmine作为我所知道的服务; 他们都不能满足这个主题的表现观点.您可以阅读有关 如何配置rails应用程序(redmine)以在Windows上作为服务运行的内容吗?
我尝试了所有这些.设置此类服务的最简单方法是使用mongrel_service方法; 在三行命令中你已经完成了.但性能明显低于运行该批处理文件...
现在,我想告诉你我的方法:
首先假设我们有红宝石安装到C:\红宝石,我们已发出命令创业板安装杂种获得安装到杂种宝石C:\红宝石\ BIN
此外,假设我们已经安装了管理平台进入像c:\ redmine这样的文件夹; 我们的PATH环境变量中有ruby的路径(即c:\ ruby\bin).
现在从microsoft网站下载并安装Windows NT资源工具包工具.打开Resource Kit附带的命令行工具(从开始菜单).使用instsrv使用以下命令安装名为Redmine的虚拟服务:
"[path-to-instsrv.exe]\instsrv"Redmine"[path-to-srvany.exe]\srvany.exe"
在我的情况下(这是默认情况)它是这样的:
"C:\ Program Files\Windows Resource Kits\Tools\instsrv"Redmine"C:\ Program Files\Windows Resource Kits\Tools\srvany.exe"
现在创建批处理文件.打开记事本并将这些说明粘贴到其中,然后将其另存为" c:\ redmine\start-redmine.bat "
@echo off
cd c:\ redmine\
mongrel_rails start -a 0.0.0.0 -p 3000 -e production
现在我们需要配置之前创建的虚拟服务.看看你从这里做什么,或者你可能会破坏你的WINDOWS.要配置该服务,请打开Windows注册表编辑器(开始 - >运行 - > regedit)并导航到此节点:
HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\管理平台
右键单击"Redmine"节点并使用上下文菜单,创建一个名为Parameters的新键(New - > Key)右键单击"Parameters"并创建一个名为Application的String Value属性.再次执行此操作并创建另一个名为AppParameters的字符串值.现在双击"Application"并将cmd.exe …
如何使用Mongrel使用Rails 3和Ruby 1.9.2创建Windows服务?
我想说服我的管理层使用Apache +乘客设置是继续生产而不是使用webrick或mongrel
我从网上找到了一些观点.
如果你可以添加你的想法会有很大的帮助,因为这会非常有助于我提出我的观点.(欢迎提供技术细节)
如果你有任何链接,你会发送一些链接会很棒
提前致谢
干杯
sameera
mongrel ×10
ruby ×5
passenger ×2
windows ×2
capistrano ×1
deployment ×1
jruby ×1
mysql ×1
production ×1
redmine ×1
rvm ×1
scalability ×1
service ×1
thin ×1
webrick ×1