【问题标题】:How to interpret the memory usage figures?如何解释内存使用数据?
【发布时间】:2010-09-19 05:46:13
【问题描述】:

有人可以用实际的方式解释一下吗?示例表示一个使用 Nginx 和 3 个 Mongrel 集群的低流量 Rails 站点的使用情况。我问是因为我的目标是了解页面缓存,想知道这些数字是否对该过程有重要意义。谢谢你。很棒的网站!

me@vps:~$ free -m
                   total       used       free     shared    buffers     cached
Mem:           512        506            6             0          15           103
-/+ buffers/cache:       387        124
Swap:         1023        113        910

【问题讨论】:

    标签: ruby-on-rails memory-management vps


    【解决方案1】:

    物理内存已全部用完。为什么?因为它在那里,所以系统应该正在使用它。

    您还会注意到系统正在使用 113M 的交换空间。坏的?好的?这取决于。

    另见有 103M 的缓存磁盘;这意味着系统已经决定最好缓存 103M 的磁盘并将这 113M 换出;可能您有一些进程正在使用未使用的内存,因此被分页到磁盘。

    正如另一位发帖人所说,您应该使用其他工具来查看发生了什么:

    1. 您的看法:网站在您使用时是否正常运行?
    2. 基准测试:您的客户看到的响应时间是多少?
    3. 更细粒度的诊断:
      1. 顶部:您可以实时查看哪些进程正在使用内存和 CPU
      2. vmstat:它产生这种输出:
    alex@armitage:~$ vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu-- -- r b swpd 免费缓冲区缓存 si so bi bo in cs us sy id wa 2 1 71184 156520 92524 316488 1 5 12 23 362 250 13 6 80 1 0 0 71184 156340 92528 316508 0 0 0 1 291 608 10 1 89 0 0 0 71184 156364 92528 316508 0 0 0 0 308 674 9 2 89 0 0 0 71184 156364 92532 316504 0 0 0 72 295 723 9 0 91 0 1 0 71184 150892 92532 316508 0 0 0 0 370 722 38 0 62 0 0 0 71184 163060 92532 316508 0 0 0 0 303 611 17 2 81 0

    这将向您显示交换是否对您造成伤害(si 上的高数字,所以)并且更容易查看随时间变化的性能统计数据。

    【讨论】:

      【解决方案2】:

      根据我的阅读,您已经使用了几乎所有的内存,有 6 M 可用空间,并且将进入大约 10% 的交换空间。一个更有用的工具是使用 top 或 ps 来查看每个单独的 mongrel 在 RAM 中使用了多少。因为您要进行交换,所以您可能会遇到更多的减速。您可能会发现只有 2 个 mongrel 而不是 3 个实际上可能响应更快,因为它可能不会进入交换内存。

      页面缓存肯定会大大缩短响应时间,所以如果您的页面是可缓存的(例如,它们没有个人用户独有的内容),我会说一定要检查一下

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-30
        • 1970-01-01
        • 1970-01-01
        • 2013-06-30
        • 2012-06-02
        • 2013-04-14
        相关资源
        最近更新 更多