我怎么知道有多少内存可用?

时间:2014-03-16 13:55:36

标签: unix memory

top 2 10结果如下所示。我如何解释行#4('记忆') - 它是好的,坏的还是丑的?

/# top 2 10
load averages:  7.51,  7.75,  7.42;                    up 26+20:51:52  14:51:35
51 processes: 44 sleeping, 6 on cpu, 1 swapped
CPU states: 76.2% idle,  5.9% user, 17.9% kernel,  0.0% iowait,  0.0% swap
Memory: 1024M phys mem, 3267M free mem, 2048M total swap, 1519M free swap

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
  1101 mysql     21  59    0  133M  114M cpu/19 685:21  1.36% mysqld
 47426 www        1  28    0   43M   22M cpu/1    0:13  0.38% httpd

2 个答案:

答案 0 :(得分:2)

来自http://www.unixtop.org/man.shtml

内存摘要行显示以下内容:

   phys mem      Total amount of physical memory that can be allocated for
                 use by processes (it does not include memory reserved for
                 the kernel's use).

   free mem      The amount of unallocated physical memory.

   total swap    The total amount of swap area allocated on disk.

   free swap     The  amount of swap area on disk that is still available.

所以,你的参数对我来说很好看:

  • 您的系统有1024M的物理内存可用于进程, 除了3267M未分配的内存
  • 在2048M中,仍然有1519M的交换空间

答案 1 :(得分:2)

我假设您使用的是Solaris。

这些统计信息可疑,因为您不应该从1 GB中免费获得3.2 GB。

top输出显示过去存在严重的RAM短缺,因为有一个进程被换出。此过程存储在交换区域中,使用率约为25%。

我怀疑top被区域内存上限等资源控制机制所迷惑。

我会使用Solaris本机工具来获取可靠的数字,从:

开始
prstat -Z
swap -s
echo ::memstat | mdb -k