제가 올바르게 이해했다면 free로 생성된 다음 출력에서 3535m은 애플리케이션에서 사용할 수 있는 실제 사용 가능한 메모리이고 413m만 사용되는 것입니다. 이것이 맞습니까? Mem과 -/+ 버퍼/캐시 라인 간의 차이점을 명확히 해야 합니다.
자유-m 사용된 캐시된 여유 공유 버퍼의 총 개수 메모리: 3949 3854 95 0 9 3431 -/+ 버퍼/캐시: 413 3535 교환: 2047 1322 725
답변1
이 Mem: total
숫자는 애플리케이션이 사용할 수 있는 총 RAM 용량입니다. 이는 시스템에 설치된 총 RAM에서 다음을 뺀 값입니다.
- 하드웨어 장치에 의해 예약된 메모리(그래픽 카드에 자체 RAM이 없는 경우 일반적으로 비디오 메모리)
- 커널 자체에서 사용하는 메모리입니다.
이 합계에는 다음이 포함됩니다.
free
: 현재 어떤 목적으로든 사용되는 메모리입니다.shared
: 이 개념은 더 이상 존재하지 않습니다. 이는 이전 버전과의 호환성을 위해 출력에 유지됩니다(스크립트가 구문 분석할 수 있는 일부 출력이 있음free
). (현재 시스템에서는 일반적으로 0이 아닌 값이 표시됩니다.shared
용도가 변경되었습니다기억을 표시하다공유 메모리 메커니즘을 통한 명시적 공유. 이전 시스템에서는 여러 프로세스에 의해 매핑된 파일과 그 뒤에 공유되는 공유 가능한 메모리가 포함됩니다fork()
. )buffers
: 필요한 경우 디스크에 쓸 수 있는 파일로 지원되는 메모리입니다.cache
: 언제든지 회수할 수 있는 파일로 지원되는 메모리(차이점은buffers
버퍼를 재사용하기 전에 디스크에 저장해야 하는 반면 캐시는 디스크에서 다시 로드할 수 있는 콘텐츠로 구성된다는 점입니다)used -buffers/cache
: 애플리케이션에서 사용하는 메모리입니다(교체하지 않음).
위기 상황에서는 시스템이 버퍼와 캐시 없이 실행되어 애플리케이션용 RAM을 예약하고 캐시 없이 디스크 읽기 및 쓰기를 체계적으로 수행할 수 있습니다. 이 -/+ buffers/cache
숫자는 애플리케이션에서 직접 사용하는 RAM의 양( used
열)과 애플리케이션에서 사용하지 않는 RAM의 양( free
열)을 나타냅니다.
매우 다양하지만 정상적인 시스템은 일반적으로 RAM의 약 절반을 애플리케이션 전용으로 사용하고 나머지 절반은 버퍼 및 캐시 전용으로 사용합니다. 전용 파일 서버를 실행하지 않는 한 시스템에는 현재 수행 중인 작업에 필요한 것보다 더 많은 RAM이 있습니다. 숫자가 낮 으면 free - buffers/cache
시스템에 RAM이 충분하지 않다는 의미입니다(일반적인 믿음과는 달리 버퍼 및 캐시 전용 메모리를 많이 확보하는 것은 시스템 성능에 매우 중요하며 응용 프로그램을 위해 더 많은 메모리를 예약하려고 하면 결과가 좋지 않습니다). 시스템 성능 저하)는 시스템의 99.99% 속도를 느리게 만듭니다).
이 swap
줄은 간단합니다. 이는 사용 중인 스왑 양(애플리케이션 또는 tmpfs
스토리지에 의해)과 사용되지 않은 양을 보여줍니다.
답변2
당신 말이 맞아요. 버퍼와 캐시는 운영 체제에서 사용되지만 애플리케이션에서는 즉시 사용할 수 있습니다. 운영 체제는 다음 메모리 요청을 충족하기 위해 일부 캐시를 무효화하고 폐기합니다.
답변3
다른 대답은 무료에 대한 훌륭한 해석입니다. 그런데 왜 무료로 시청하고 싶나요? 아마도 시스템에 메모리가 부족해서 걱정이 될 것입니다.
이에 대한 업데이트로 Linux 커널 4.20이 추가되었습니다 /proc/pressure/
("스트레스 지연 정보"). 여기에는 병목 현상(CPU, I/O 또는 메모리)으로 인해 시스템 속도가 느려지는 시기를 알려주는 표시기가 포함되어 있습니다.
/proc/Pressure/Memory의 내용을 보면 프로세스가 메모리 할당을 기다리고 있는 샘플의 비율을 알 수 있습니다. 이 숫자가 모두 0이면(전체 제외) 시스템에 메모리가 부족하지 않고 메모리를 기다리지 않는 것입니다.