procps-ng 3.3.10 무료 와이드 출력 형식을 비활성화하는 방법은 무엇입니까?

procps-ng 3.3.10 무료 와이드 출력 형식을 비활성화하는 방법은 무엇입니까?

캐시를 제외하고 사용 가능한 물리적 메모리의 양을 알려주는 스크립트를 작성 중인데 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

freeFedora 출력을 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와 같이 페이지 캐시로 해제할 수 없는 메모리가 포함되어 있고 대부분의 유휴 시스템에서 대부분의 메모리를 차지할 수 있는 회수 가능한 슬랩 메모리가 포함되어 있지 않기 때문에 이는 잘못된 것입니다. 시스템 메모리의 파일.

관련 정보