【问题标题】:Ruby on Rails VPS RAM amountRuby on Rails VPS RAM 数量
【发布时间】:2013-02-02 15:22:42
【问题描述】:

目前我有一个最简单的 VPS:1 核,256 MB RAM,Ubuntu 12.04 LTS。我的应用程序似乎运行得很好(我正在使用 unicorn 和 nginx),但是当我为我的 delayed_jobs 运行我的 rake jobs:work 命令时,unicorn 进程被杀死了。

我想知道这是否与 RAM 数量有关?

当 unicorn 进程启动并运行时,free -m 命令显示大约 230 MB 的 RAM 被占用。 我想知道,我总共需要多少内存? 512? 1024 ? 我应该选择哪一个?

很高兴收到任何答案!

谢谢

【问题讨论】:

    标签: ruby-on-rails delayed-job vps ram


    【解决方案1】:

    你可以从

    开始
    ulimit -S -a 
    

    找出环境的限制

    【讨论】:

    • 核心文件大小(块,-c)无限制,数据段大小(kbytes,-d)无限制,调度优先级(-e)0,文件大小(块,-f)无限制,待处理信号(-i) 772251, 最大锁定内存 (kbytes, -l) 64, 最大内存大小(kbytes, -m) 无限制, 打开文件 (-n) 1024, 管道大小 (512 bytes, -p) 8, POSIX 消息队列(bytes, -q) 819200, 实时优先级 (-r) 0, 堆栈大小 (kbytes, -s) 10240, cpu time (seconds, -t) 无限制, max user processes (-u) 772251, virtual memory ( kbytes, -v) 无限制,文件锁 (-x) 无限制 这就是我收到的!不知道如何正确分析
    【解决方案2】:

    您的 DJ 工作者将运行您的 Rails 应用程序的另一个实例,因此您需要确保至少有足够的 RAM 用于该其他实例,并为您正在运行的其他进程留有余量。

    • 检查 ps aux 了解 Rails 应用的内存使用情况。
    • 运行 top 并查看有多少物理内存可用(在 Rails 应用运行时)。

    我的猜测是您必须将 RAM 增加到 512 MB。你当然不希望你的内存使用溢出来交换。

    当然,除此之外,您还需要确保您的应用程序和数据库已经足够优化,不会出现令人难以置信的内存使用高峰。

    【讨论】:

    • 我对我的 VPS 提供商非常满意。他们提供的下一个包是 1 GB RAM。这对于应用程序本身 + DJ 来说就足够了吗?非常感谢您的回答。我还想知道为网站的每个访问者分配了多少 RAM?如何估算?
    • RAM 使用量通常根据您运行的应用程序实例的数量来估算。如果您正在运行一个 Rails 实例来处理您的 Web 请求,那么您一次可以处理一个 Web 请求。如果您想同时处理多个 Web 请求,请增加实例数量。运行 ps aux 并查看 Rails 应用程序使用了多少内存。然后将其乘以(您的 Web 实例数 + 延迟作业的 1)。但是请检查top,因为您的一些内存也会用于您的操作系统和您正在运行的其他服务,看看您实际需要多少。
    • 好吧,这有点太复杂了 :) 我想,我会选择 1 Gig 或 RAM,这对于我的网站来说应该足够了。我很好奇,一次会有太多访问者 - 它会杀死我的 HTTP 服务器(独角兽)进程吗?或任何其他进程,如 mysql-server ?
    • 如果您有预算,1GB 可能是安全的。 :-) Unicorn 不会有问题,因为如果已达到最大积压请求数(未由 Rails Web 实例处理),它将直接拒绝 Web 请求。 MySQL 服务器的负载取决于您拥有的 Web 实例的数量。
    • 好吧,我显然没有其他选择 :) 256mb 或 1 gb(考虑到我不想更改我的提供商)。非常感谢您的回答:)
    猜你喜欢
    • 2014-06-09
    • 2012-04-24
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 2012-12-28
    相关资源
    最近更新 更多