背景:
手头的某个项目系统上线运行了很长一段时间了,之前一直在给客户解决功能性的需求问题,现在才着手处理系统运行中的稳定性问题和性能问题。
环境:
Ruby 1.9.3-p374 + Rails 3.2.11 + Unicorn 4.5.0 + Nginx
现象:
现象 1:unicorn.stderr.log 中几乎每天都有几条这样的出错信息:Error: Couldn't open file ':source'
(就这么一行几个单词,前面连时间都没有),nginx 的 error.log 中时不时也有这样的出错信息:2013/01/06 13:56:58 [error] 1484#0: *12266 upstream timed out (110: Connection timed out) while reading response header from upstream...
,但在 production.log 中却没有显示
现象 2:系统运行时似乎存在内存泄漏,内存占用会一直地缓慢上升,让我不得不十天半个月左右重启一下 unicorn
问题:
问题 1:现象 1 中的Error: Couldn't open file ':source'
是否就是upstream timed out
引起的?(由于 unicorn 的这一条出错信息前没有时间,所以我只是怀疑,无法肯定)原因是什么?如何消灭它?
问题 2:内存泄漏一般说来是什么引起的?是我代码的问题还是 Rails 本来就有这个问题?
请各位不吝指教,谢谢。