我的Ruby on Rails应用程序消耗了大约129 MB的内存,这正常吗?我每天有大约3,000个独立访问者,我没有复杂的查询...我的users表大约有18 k行。
4szc88ey1#
129MB对我来说并不算太多。我觉得更重要的是:这个数字会随着时间的推移而增长吗?如果是这样,那么问题可能是在请求时将多少数据集加载到内存中。看看this blog post。简而言之:示例化太多的活动记录对象会增加Rails应用程序的内存占用。如果在一个请求中,由于某种原因,你要遍历所有18k个用户,更糟糕的是,遍历他们所有的帖子(或者你拥有的任何关联),你将示例化大量的对象,这些对象应该在请求之后被清除,但是Ruby在内存被分配之后并没有把内存还给系统。
ih99xse12#
我见过rails应用程序的内存占用高达500mb。我敢肯定还有更大的应用程序。唯一访问者和数据库查询不是内存占用的原因。这是Ruby中昂贵而庞大的内存计算。尝试AB测试这些方法,看看你的内存使用率有多高。这可能会解决一些内存问题。
2条答案
按热度按时间4szc88ey1#
129MB对我来说并不算太多。我觉得更重要的是:这个数字会随着时间的推移而增长吗?
如果是这样,那么问题可能是在请求时将多少数据集加载到内存中。
看看this blog post。
简而言之:示例化太多的活动记录对象会增加Rails应用程序的内存占用。
如果在一个请求中,由于某种原因,你要遍历所有18k个用户,更糟糕的是,遍历他们所有的帖子(或者你拥有的任何关联),你将示例化大量的对象,这些对象应该在请求之后被清除,但是Ruby在内存被分配之后并没有把内存还给系统。
ih99xse12#
我见过rails应用程序的内存占用高达500mb。我敢肯定还有更大的应用程序。唯一访问者和数据库查询不是内存占用的原因。这是Ruby中昂贵而庞大的内存计算。
尝试AB测试这些方法,看看你的内存使用率有多高。这可能会解决一些内存问题。