free
특정 서버에서 여유 공간을 확보하는 데 사용합니다 . 출력은 다음과 유사합니다.
$ free -m
total used free shared buffers cached
Mem: 374 366 8 0 58 98
-/+ buffers/cache: 209 165
Swap: 1906 120 1785
나에게 남은 여유 공간은 얼마나 됩니까?
답변1
free
출력 목록 의 첫 번째 줄은 다음과 같습니다 .
total
총 실제 메모리(가상화가 없다고 가정)used
현재 얼마나 (아무거나) 사용됩니까?free
그 중 완전 무료(전혀 사용되지 않음)는 몇 개입니까?shared
tmpfs에서 사용하는 메모리(주로)(Linux의 경우 커널 >= 2.6.32)buffers
커널 버퍼에서 사용되는 메모리cached
캐싱에 사용되는 메모리
마지막 두 항목인 캐시와 버퍼는 특정 사용자 프로세스에 할당되지 않은 메모리입니다. 전반적인 성능을 향상시키기 위해 커널이 예약한 메모리이지만 "응용 프로그램" 메모리는 아닙니다. 이러한 영역은 캐시, 메모리 압력, 애플리케이션 I/O 패턴 등과 관련된 커널 정책에 따라 늘어나거나 줄어듭니다.
이 두 열은 사용자 할당 메모리가 아니며 사용자 할당에 필요한 경우 영역이 축소될 수 있으므로(사실상 0으로) 어떤 의미에서는 "사용 가능"합니다. 응용 프로그램에 메모리가 있으면 커널이 RAM을 적극적으로 확보할 수 있습니다. 그것.
이것이 두 번째 줄이 말하는 것입니다. 컬럼에서 버퍼와 캐시 메모리를 제거하고 used
(즉 -
, 컬럼 +
에 추가합니다 ( ). free
(반올림 문제가 발생합니다.)
(마지막 줄에는 스왑 공간의 상태가 표시됩니다.)
답변2
스왑이 없으면 실제 여유 공간은 165입니다. 캐시를 사용하면 8MB의 여유 공간이 있습니다. 캐싱이 없으면 165MB의 여유 공간이 있습니다. -/+
해당 라인은 캐시되지 않습니다. 첫 번째 줄은 캐시입니다.