
私たちのコンピュータの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
する列にゼロが表示される理由です。ただし、他のアプリケーションがディスクキャッシュに割り当てられたメモリを要求すると、すぐに解放されます。