캐시를 제외하고 사용 가능한 물리적 메모리의 양을 알려주는 스크립트를 작성 중인데 Fedora 시스템이 Unix 계정이 있는 CentOS 시스템과 다른 출력 형식을 표시하는 것을 발견했습니다.
$ free
total used free shared buff/cache available
Mem: 7865868 3934924 241300 485916 3689644 3093784
Swap: 8388604 950988 7437616
$ ssh -q centos free
total used free shared buffers cached
Mem: 1921876 1848024 73852 0 10120 87124
-/+ buffers/cache: 1750780 171096
Swap: 2097148 240428 1856720
$ free -V
free from procps-ng 3.3.10
$ ssh -q centos free -V
procps version 3.2.8
free
Fedora 출력을 CentOS 출력처럼 보이게 하는 방법이 있습니까 ?
답변1
아니요, 불가능합니다.
이는 단순한 형식 문제가 아닙니다. procps-ng의 프로그램은 최근 Linux 커널에 도입된 새로운 측정항목을 free
포함하도록 업데이트되었습니다 . 이는 일반적인(종종 잘못된) "사용 가능 + 버퍼/캐시"보다 실제 사용 가능한 메모리를 더 잘 나타냅니다. MemAvailable
추정치(아래 참조).
procps-ng 3.3.10에 포함된 프로그램은 free
이 정보를 비활성화하는 옵션을 제공하지 않습니다. 사실, 여러분이 보는 것은 이미 "압축된" 형식입니다. 버퍼와 캐시를 집계하지 않는 "와이드" 옵션(try -w
또는 ) 도 있습니다 .--wide
사용 가능한 메모리를 찾기 위한 스크립트를 작성하는 경우 "free + buffers/cache" 대신 free로 보고된 "available" 값을 사용하는 것이 좋습니다. 바라보다이 댓글MemAvailable
도입 이유는 Linux 커널 메일링 리스트에 설명되어 있습니다 .
많은 로드 밸런싱 및 작업 부하 배치 프로그램은 /proc/meminfo를 확인하여 사용 가능한 메모리 양을 추정합니다. 일반적으로 "무료"와 "캐시"를 추가하여 이 작업을 수행하는데, 이는 10년 전에는 괜찮았지만 오늘날에는 거의 확실히 잘못된 것입니다.
Cached에는 공유 메모리 세그먼트, tmpfs 및 ramfs와 같이 페이지 캐시로 해제할 수 없는 메모리가 포함되어 있고 대부분의 유휴 시스템에서 대부분의 메모리를 차지할 수 있는 회수 가능한 슬랩 메모리가 포함되어 있지 않기 때문에 이는 잘못된 것입니다. 시스템 메모리의 파일.