首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在slicehost上交换Rails应用程序的问题

在slicehost上交换Rails应用程序的问题
EN

Stack Overflow用户
提问于 2010-12-09 08:00:40
回答 2查看 214关注 0票数 1

我有一个在slicehost (256M)上运行的Rails 2.3.8应用程序。我对后端一点也不熟悉,我基本上是按照slicehost教程中的步骤安装Apache的。内存使用率非常高,于是我更改了我的Apache conf文件,将MaxClient数减少到10...但我的那一块还在换。

这是我在我的网站上点击几下后得到的内存使用量:

代码语言:javascript
复制
    top - 23:57:12 up 28 min,  2 users,  load average: 0.43, 0.54, 0.30
Tasks:  79 total,   1 running,  78 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 97.8%id,  0.1%wa,  0.0%hi,  0.0%si,  2.0%st
Mem:    262364k total,   258656k used,     3708k free,      260k buffers
Swap:   524280k total,   262772k used,   261508k free,     6328k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                       
 4004 web-app   20   0  178m  72m 1888 S    0 28.4   0:04.38 ruby1.8                                        
 4001 web-app   20   0  172m  61m 1932 S    0 24.2   0:02.72 ruby1.8                                        
 3941 root      20   0  164m  57m 1672 S    0 22.5   0:21.44 ruby                                           
 3990 web-app   20   0  209m  21m 1696 S    0  8.4   0:18.00 ruby1.8                                        
 3950 web-app   20   0  165m 7464 1548 S    0  2.8   0:20.40 ruby1.8                                        
 3684 mysql     20   0  224m 6504 2084 S    0  2.5   0:14.34 mysqld                                         
 3938 root      20   0 53632 3048 1036 S    1  1.2   0:01.50 starling                                       
 3839 root      20   0  243m 1456 1248 S    0  0.6   0:00.34 apache2                                        
 3897 www-data  20   0  243m 1452 1072 S    0  0.6   0:00.04 apache2                                        
 3894 www-data  20   0  243m 1368 1008 S    0  0.5   0:00.04 apache2                                        
 3895 www-data  20   0  243m 1220  960 S    0  0.5   0:00.02 apache2                                        
 3888 root      20   0 46520 1204 1100 S    0  0.5   0:02.29 ruby1.8                                        
 3866 root      20   0 17648 1184  896 S    0  0.5   0:00.08 bash                                           
 3896 www-data  20   0  243m 1180  952 S    0  0.4   0:00.00 apache2                                        
 3964 www-data  20   0  243m 1164  956 S    0  0.4   0:00.02 apache2                                        
 3892 www-data  20   0  243m 1132  956 S    0  0.4   0:00.00 apache2                                        
 3948 www-data  20   0  243m 1132  956 S    0  0.4   0:00.00 apache2                                        
 3962 www-data  20   0  243m 1132  956 S    0  0.4   0:00.02 apache2                                        
 3963 www-data  20   0  243m 1132  956 S    0  0.4   0:00.00 apache2                                        
 3965 www-data  20   0  243m 1080  888 S    0  0.4   0:00.00 apache2                                        
 3887 root      20   0 89008  960  796 S    0  0.4   0:00.00 ApplicationPool                                

我不知道下一步该怎么做。我可以升级到更大的部分,但现在我在这个应用上几乎没有流量,所以我认为这更多的是我的配置或代码的问题?

欢迎任何具体的建议!谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-09 08:17:05

看起来你的rails应用程序正在使用你所有的可用内存。我会推荐三件事:

  1. 升级服务器上的内存。对于一个Rails应用程序来说,256MB并不是很多。转到512可能会缓解你的问题。如果解决了这个问题,那么你需要考虑额外的成本($18/mo)和你的应用程序跟踪性能issues.
  2. Profile所需的时间,以找出哪些请求消耗了最多的内存。这很可能是您发现大量记录的地方,也可能包括一些相关的表。有几个工具可以帮助您缩小可能出现问题的范围。我用过oink,但肯定还有其他的。一旦你找到了问题所在,你可以做一些调整来尝试减少你在Apache中使用的Passenger的内存usage.
  3. Assuming,你可以在Passenger配置文件中减少并发请求的数量。这可能对该https://serverfault.com/questions/15350/running-ruby-on-rails-app-on-apache-passenger-to-much-memory

很有用

票数 1
EN

Stack Overflow用户

发布于 2010-12-09 08:30:17

简而言之,256MB对于Rails应用程序来说太紧了。您并没有详细说明您是如何运行rails的,但我假设您使用的是带有Passenger模块的Apache。乘客模块可以根据其保持运行的实例数进行配置。您有4个ruby实例在web-app帐户下运行。我猜这些是乘客的。在配置中,您可以限制Passenger启动的实例数量。这将减少内存需求。

另一方面,当你只使用256MB,并且你只托管1个rails应用程序时,使用另一个安装可能会更好。我之前使用的设置是一个Nginx web服务器,以及一个具有2个mongrels的混合集群( 192MB,应用程序仅用于测试目的)。基本上,这意味着在任何时候,您都可以并行处理2个(而且只有2个) rails请求。设置可能比Apache+Passenger难一点,但绝对不难。我认为当你坚持使用256MB时,这是一个更好的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4393598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档