!["free" 명령이 올바른 값을 표시하지 않습니다.](https://linux55.com/image/132645/%22free%22%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%EC%98%AC%EB%B0%94%EB%A5%B8%20%EA%B0%92%EC%9D%84%20%ED%91%9C%EC%8B%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
우리 컴퓨터 중 하나인 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
해당 열에 0이 표시되는 이유입니다. 그러나 다른 애플리케이션이 디스크 캐시에 할당된 메모리를 요청하면 즉시 해제됩니다.