不知道有没有人遇到过,Mongrel假死,Web访问无反应
当前位置:首页 ----> Web开发 ----> Ruby/Python
关键词:Mongrel,Web,SCGI Mongrel,Rails,SCGI,Windows,LightTPD,on Rails RoR,Apache
chrishzb:
相关文章: X    对SCGI/Mongrel的作者的访谈(关於Rails企业级应用、放弃SCGI等的言论)   在Windows平台使用LightTPD和Mongrel运行Ruby on Rails  RoR部署方案深度剖析    <img src=http://www.javaeye.com/images/icon_more.gif/>          我这里用Mongrel 部署了应用 , 用浏览器直接访问mongrel (没通过Apache 、Lighttpd 之类的) 是没问题的。 第二天早上再访问,就没反应了。症状是浏览器进度条在走,页面空白,十几二十分钟没反应。 必须强制重启 Mongrel 才能正常访问。 不知道有没有人有这样的经历。 知道怎样找到解决方案吗?


idragon:
我也遇到过这个问题,没有解决:(


chrishzb:
呀, 那就郁闷了。我被这个问题困扰了两周了


lgn21st:
我提供一个思路您试试看:

Mongrel stops working if it&rsquo;s left alone for a long time.


If you find that Mongrel stops working after a long idle time and you&rsquo;re using MySQL then you&rsquo;re hitting a bug in the MySQL driver that doesn&rsquo;t properly timeout connections. What happens is the MySQL server side of the connection times out and closes, but the MySQL client doesn&rsquo;t detect this and just sits there.


What you have to do is set:
ActiveRecord::Base.verification_timeout = 14400


Or to any value that is lower than the MySQL server&rsquo;s interactive_timeout setting. This will make sure that ActiveRecord checks the connection often enough to reset the connection.

因为服务器端每隔28800秒检查一次客户端链接,而客户端确不做这个检查,假如超过28800服务器端收不到客户链接,就释放掉这个链接了,解决办法是在客户端AR上设置超时检查,时间正好是服务器端检查的一半,楼主试试看能不能解决。


pkysoft:
我也遇到了,只要数据库和应用不再同一个服务器一定会出现,用了很多办法包括楼上说的都没用,后来就用cron让系统自动一分钟访问应用,基本可以解决,再后来干脆换lighttpd,什麽问题也没了。 这问题出现非常久了,不知道为什麽至今没有解决,而且也鲜有人提出,我还觉得就自己这么倒霉了。


netco:
pkysoft 写道我也遇到了,只要数据库和应用不再同一个服务器一定会出现,用了很多办法包括楼上说的都没用,后来就用cron让系统自动一分钟访问应用,基本可以解决,再后来干脆换lighttpd,什麽问题也没了。 这问题出现非常久了,不知道为什麽至今没有解决,而且也鲜有人提出,我还觉得就自己这么倒霉了。 我的数据库和应用就不在一台机器上面,用了2个月了都没有出现过这样的问题,环境是Apache2.0.59+Mongrel


phoenix520:
我也遇到过这种情况,数据库和应用服务器是在同一台电脑上的,结果写了一个线程去定时访问web服务来解决这个问题。


lihaona:
常常遇到mongrel假死,在xp系统下,当鼠标无意中选中了console窗口的一段内容,mongrel 就会假死,鼠标单击console窗口,就会解决


iamawalrus:
gdb attach上,看看call stack,死在哪一看就明白。


chrishzb:
我用了个别的方法解决了。写了个 crontab 定期通过mongrel访问数据库保持数据库链接可用


seacolor:
这个问题我碰到过,现在已经彻底解决。 我部署 redmine + mongrel + mysql5 后,每天早上总无法访问redmine. 经过分析,主要问题确实在数据库连接上。是ruby 自带的mysql连接器的问题。 安装 mysql/ruby 2.7.3 后,该问题再也没有出现。 具体可以参考: http://rubyforge.org/forum/forum.php?thread_id=16180&forum_id=7505


dazuiba:
lihaona 写道常常遇到mongrel假死,在xp系统下,当鼠标无意中选中了console窗口的一段内容,mongrel 就会假死,鼠标单击console窗口,就会解决 您这个不是假死,是dos开了“快速编辑模式”,鼠标选中某内容后,除非按回车键或点鼠标右键,要不然windows会一直暂停该程序。


yautah:
seacolor 写道这个问题我碰到过,现在已经彻底解决。 我部署 redmine + mongrel + mysql5 后,每天早上总无法访问redmine. 经过分析,主要问题确实在数据库连接上。是ruby 自带的mysql连接器的问题。 安装 mysql/ruby 2.7.3 后,该问题再也没有出现。 具体可以参考: http://rubyforge.org/forum/forum.php?thread_id=16180&forum_id=7505 正正正解!!!!! 自带的mysql连接确实有问题,基本撑不过一晚上mongrel就会假死 gem install mysql 问题解决!


lgn21st:
我的问题是ruby自带的mysql链接器(mysql驱动)是哪一个? 比如,我用Ubuntu,安装ruby我用的是Ubuntu源里面自带的二进制版本 顺便我也会安装libmysql-ruby 这样我的ruby就能用native驱动访问mysql了,您们所说的ruby自带mysql驱动问题是指这个么? 另外假如没有安装任何mysql的ruby驱动,rails就会用自带的一个纯ruby实现的mysql驱动,是这个驱动有问题么?
原文出处:http://www.javaeye.com/topic/124699