JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Languages on JVM » JRuby  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
己加入精華區
by koji at 2007-05-15 13:48
本主題所含的標籤
無標籤
作者 [解決]mongrel自己消失的問題 [精華]
koji

秒速5センチメートル

站長

發文: 8415
積分: 19
於 2007-05-11 21:37 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
前幾天有人問說他mongrel停住,剛好就問我有沒有碰過
但是我也沒碰過..orz..因為從來沒有架個服務用都是寫好玩的
所以好奇也去查了一下,就順便memo一下

Q: Mongrel stops working if it’s left alone for a long time.

If you find that Mongrel stops working after a long idle time and you’re using MySQL then you’re hitting a bug in the MySQL driver that doesn’t properly timeout connections. What happens is the MySQL server side of the connection times out and closes, but the MySQL client doesn’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’s interactive_timeout setting. This will make sure that ActiveRecord checks the connection often enough to reset the connection.

from http://mongrel.rubyforge.org/faq.html

但是好像也沒用
所以後來查了官方
http://rubyforge.org/forum/message.php?msg_id=15097

但是好像也沒用
mongrel 在debug mode好像不會這樣

環境是一台跑apache,一台跑mongrel_cluster,一台跑mysql
如果一陣子沒人mongrel就會自己消失的問題
希望以上解法對發生問題的有幫助一點..

koji


koji edited on 2007-05-15 11:28
reply to postreply to post
JCConf Taiwan 2015 開始售票了!!
Facebook上的TWJUG社團,歡迎加入
作者 Re:[尚未解]mongrel自己消失的問題 [Re:koji]
weijenlu





發文: 30
積分: 6
於 2007-05-13 14:30 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
那個mongrel會自己死掉的事主就是我啦,ㄏㄏ。跟各位報告一下我處理的過程。

我的系統有四台電腦,一台apache/一台app server/兩台mysql DB
OS都是RHEL 5
在app server中開10個mongrel_rails

原本呢,我只要睡一覺起來,他就會全部死光光,mongrel_rails一個都不留,

我曾經以為是因為mongrel太久沒動了,所以變成zombie,所以在/etc/crontab中每30分鐘,用curl去讓mongrel動一下。可是沒用,沒多久一樣死光光。

於是呢,我就開了Debug mode,睡一覺起來,ㄟ,都還在耶,原本以為可以先檔一陣子,先把客戶的錢騙到再說,沒想到,他只是死的比較慢而已,還是會死,不過這次不會全死,只有死一部分而已。但是還是不行呀,因為apache還是會導到死掉的port上。

然後感謝koji幫我找到mongrel官網上的faq,就如上篇所說的。所以我在我的environment.rb上加了一行:
1
 config.active_record.verification_timeout = 14400

不知道這樣對不對。我是加在
1
Rails::Initializer.run do |config|  ...  end

的中間。 可是仍然沒能解較問題。

其實google大師上面有一個方式,是改用ruby-mysql,可是我的rhel 5就是裝不起來,後來我才知道原來是因為我當初裝rhel 5的mysql時,是用default,所以不會裝mysql-devel,所以我就先裝mysql-devel再裝ruby-mysql,就可以了,安裝的指令是:
1
gem install mysql -- --with-mysql-include=/usr/inclu de/mysql --with-mysql-lib=/usr/lib/mysql

我寫這篇時,我的app server已經重開約兩小時了,都還活著,當然,我也不知道接下來會怎樣。只希望他可以繼續活下去。

目前我還是開著debug mode,/etc/crontab中的curl也還是每30分鐘去叫一次mongrel,如果上面的方式可以解決,那我會一個一個撤掉,我會再上來跟各位報告。

在這過程中感謝qing與koji兩位幫了我很多。謝謝。

----2007/05/13 19:34-----
現在的已經跑了7個小時了,竟然一個都沒死,真是好消息,希望這真的是解決方法。

-----2007/05/14 10:09-----
已經跑超過21個小時了,全都活著,且正常,現在我會把Debug mode與crontab中的curl去掉,並重開機。希望可以繼續正常。

-----2007/05/15 11:11-----
拿掉Debug mode與crontab中的curl後,重開機已經24小時,一切正常。看來這真的是解決方法了。


weijenlu edited on 2007-05-15 11:14
reply to postreply to post
» JWorld@TW »  Languages on JVM » JRuby

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8