centos – 为什么’top’表示内存使用率低,而’free’表示内存使用率高?

前端之家收集整理的这篇文章主要介绍了centos – 为什么’top’表示内存使用率低,而’free’表示内存使用率高?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么’top’表示内存使用率低,而’free’表示内存使用率高?
Mem:    262144k total,225708k used,36436k free,47948k buffers
Swap:   262136k total,40k used,262096k free,110704k cached

 PID  USER      PR   NI VIRT  RES  SHR  S %cpu %MEM  TIME+   COMMAND                         
 1652 root      15   0  79456 14m  1728 S 0.0  5.6   0:00.02 miniserv.pl                  
 3544 root      15   0  87920 3356 2584 R 0.0  1.3   0:00.01 sshd  
 3707 root      16   0  86704 3104 2416 S 0.0  1.2   0:00.00 sshd    
 3708 sshd      15   0  61864 1452 872  S 0.0  0.6   0:00.00 sshd          
 3548 root      16   0  10872 1432 1116 S 0.0  0.5   0:00.00 bash                      
 1908 root      15   0  10876 1392 1072 S 0.0  0.5   0:00.00 sh      
  918 root      15   0  60520 1204 664  S 0.0  0.5   0:00.07 sshd                        
 3624 root      15   0  12584 1180 920  R 0.0  0.5   0:00.00 top                       
  926 root      18   0  19672 1152 576  S 0.0  0.4   0:00.00 crond         
    1 root      15   0  10324 704  588  S 0.0  0.3   0:00.02 init               
  311 root      16  -4  12580 704  388  S 0.0  0.3   0:00.06 udevd                       
  874 root      16   0  5884  592  472  S 0.0  0.2   0:00.06 syslogd                   
  877 root      18   0  3780  420  336  S 0.0  0.2   0:00.00 klogd

总MEM用量= 12.1%

但是,226mb使用了226mb,免费使用了36mb,即使用了86.25%.

即使考虑到交换,总内存262mb * 2 = 524mb.使用226mb时,使用43.12%.两者都比顶部列出的实际处理要高得多.

服务器是运行CentOS 5.2的全新256MB VPS – 还没有安装任何东西.运行webadmin;即没有Plesk.

这个问题基本上是关于顶部似乎提供的冲突信息;但我也想知道这个内存使用是否正常,对于没有运行任何特别内存密集型应用程序的服务器.我打算安装Apache / Ruby EE / Passenger;但是,如果内存使用率已经很高,我不确定它将如何处理它.

Top,即%MEM列中的数字,计算RSS内存量(驻留段大小,基本上是内存中具有实际数据的页面)占机器或VPS中物理内存总量的百分比.

另一方面,free只计算那些没有数据的物理内存页面数量,并且还没有分配给缓冲区,缓存或内核.在类似Unix的操作系统中,操作系统通过使用磁盘缓存的空闲页面尽力保持尽可能低的数量.只有在你的机器启动之后,或者你退出一个消耗大量物理内存的程序时,你才有可能获得高可用内存值.

这个内存使用是否正常?简短的回答是肯定的. Unix程序通常会分配(即要求操作系统)显着多于他们使用的内存.如果查看VSS列,对于列出的进程,总计超过463mb.那是因为

> glibc说,每个进程占用的大量内存将物理映射到同一个库
>操作系统通常会向应用程序过度使用内存,因为大多数应用程序永远不会收集他们要求的内容.

弄清楚进程内存的使用是一门艺术,而不是科学恕我直言,请参阅http://lwn.net的讨论.我的建议是密切关注iostat -xm,并确保您的机器不会大量交换.

原文链接:https://www.f2er.com/centos/373729.html

猜你在找的CentOS相关文章