"free"コマンドは正しい値を表示しません。

私たちのコンピュータの1つである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表示されます。これは3Gbまたは3510224Kbを正しく報告します。

47Gb - 43Gb = (丸め誤差あり) 3Gb

Linux は、ディスクキャッシュに使用されていないメモリを借りています。、これが対応freeする列にゼロが表示される理由です。ただし、他のアプリケーションがディスクキャッシュに割り当てられたメモリを要求すると、すぐに解放されます。

おすすめ記事