“free”命令不显示正确的值

“free”命令不显示正确的值

我们的一台机器 redhat 7.2 上遇到了一个非常奇怪的问题。

它怎么可能是免费的 - 0 ,而已使用的却是总数 47 中的 43 ?

[root@master ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:             47          43           0           0           3           3
Swap:             7           5           1
[root@master ~]# free -k
              total        used        free      shared  buff/cache   available
Mem:       49552508    45570336      296216      237396     3685956     3510224
Swap:       8093692     6053196     2040496

top

top - 17:34:40 up 10:39,  2 users,  load average: 0.77, 0.81, 0.83
Tasks: 789 total,   1 running, 788 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.7 us,  0.4 sy,  0.0 ni, 97.7 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 49552508 total,   831304 free, 45669236 used,  3051968 buff/cache
KiB Swap:  8093692 total,  2056872 free,  6036820 used.  3412568 avail Mem

答案1

您看错了栏目。在第一个输出中,空闲内存即可用于新应用程序的 RAM(没有任何交换使用)显示在available列中。这会正确报告 3 Gb,或 3510224 Kb。

47 Gb - 43 Gb =(有舍入误差)3 Gb

Linux 借用任何未使用的内存进行磁盘缓存,这就是您在该free列中看到零的原因。但是,一旦其他应用程序请求分配给磁盘缓存的内存,就会立即释放它。

相关内容