如何解释内存使用数据?

时间:2008-10-26 02:27:30

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

有人能以实际的方式解释这个吗?示例表示使用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

2 个答案:

答案 0 :(得分:3)

物理内存全部耗尽。为什么?因为它在那里,系统应该使用它。

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

另请参阅有103M的缓存磁盘;这意味着系统已经决定最好缓存103M磁盘并更换这些113M;也许你有一些进程使用未被使用的内存,因此被分页到磁盘。

正如另一张海报所说,你应该使用其他工具来看看发生了什么:

  1. 您的看法:当您使用网站时,网站是否正常运行?
  2. 基准测试:您的客户看到的响应时间是什么?
  3. 更精细的诊断:
    1. top:你可以看到哪些进程正在使用内存和CPU
    2. vmstat:它会产生这种输出:
  4.  alex@armitage:~$ vmstat 1
    procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
     r  b   swpd   free   buff  cache   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上的数字很高,所以),并且更容易看到性能随时间变化的统计数据。

答案 1 :(得分:1)

通过我的阅读,你已经使用了几乎所有的记忆,有6米的免费,并且将进入大约10%的掉期。更有用的工具是使用top或ps来查看每个单独的mongrels在RAM中使用了多少。因为你要进行交换,你可能会变得更慢。你可能会发现只有2个mongrel而不是3个可能实际上响应更快,因为它可能不会进入交换内存。

页面缓存肯定可以帮助减少响应时间,所以如果您的页面是可缓存的(例如,他们没有单个用户独有的内容),我会说肯定检查出来