"free -m"명령의 출력을 해석하는 방법은 무엇입니까?


48

출력 free -m은 다음과 같습니다.

                     total    used    free    shared  buffers  cached
Mem:                  595      482     112         0       63     324
-/+ buffers/cache:              93     501
swap:                   0        0       0

사용 된 메모리의 어떤 값이 482 또는 93입니까?

답변:


40

112MB의 완전히 사용 가능한 메모리가 있지만 501MB에는 '캐시'메모리가 없습니다. 즉, OS가 메모리에 일부 내용을 더 빨리 넣었 음을 의미합니다. "이용됨"(따라서 '무료'번호는 112에 불과 함)이라고하지만 필요한 경우 실제로 사용할 수 있습니다.

사용하지 않는 메모리는 쓸모없는 메모리이기 때문에 이것은 좋은 것입니다. 필요한 경우 캐시 된 메모리를 지울 수 있습니다. 사람들이 Windows 95에 사용했던 오래된 "메모리를 정리해야합니다"는 여기에 필요하지 않습니다.

찾고있는 숫자는 501 무료입니다 (때문에 메가 바이트 -m).

이 페이지를 참조하십시오 :

http://www.linuxatemyram.com/
http://www.itworld.com/it-managementstrategy/280695/making-sense-memory-usage-linux


기본적으로 : "두 번째 줄 (버퍼 / 캐시가있는 줄)을보십시오".
Nanne

25

출력 해석 free: 출력 목록
의 첫 번째 라인 free:

  • total 총 실제 메모리 (가상화가 없다고 가정)
  • used 그 중 얼마가 현재 사용되고 있습니까?
  • free 그 중 어느 것이 완전 무료입니까 (전혀 사용되지는 않음)
  • shared (아무것도, 그 열을 무시하십시오)
  • buffers 커널 버퍼가 사용하는 메모리
  • cached 캐시에 사용되는 메모리

마지막 두 항목 인 캐시와 버퍼는 특정 사용자 프로세스에 할당되지 않은 메모리입니다. 전체 성능을 향상시키기 위해 커널이 예약 한 메모리이지만 "응용 프로그램"메모리는 아닙니다. 이러한 영역은 캐싱, 메모리 부족, 응용 프로그램 I / O 패턴 등과 관련한 커널 정책에 따라 늘어나거나 줄어 듭니다.

이 두 열은 사용자가 할당 한 메모리가 아니며 사용자 할당에 필요한 경우 영역이 실질적으로 0으로 줄어들 수 있기 때문에 "무료"라는 의미가 있습니다. 적극적으로 필요합니다.

이것이 두 번째 줄이 알려줍니다. used열 에서 버퍼 및 캐시 메모리를 제거하고 (즉, -의미) 열에 추가합니다 ( +) free. (반올림 문제가 발생합니다.)

(마지막 줄은 스왑 공간의 상태를 보여줍니다.)

예의 : https://unix.stackexchange.com/a/33549/14497

따라서 귀하의 경우 112MB 는 완전히 사용 가능한 메모리이며 캐싱에 사용되는 메모리를 고려하면 필요한 경우 사용자 응용 프로그램에 할당 할 수 있습니다. 다음 501메가바이트는 사용할 수있는 실제 최대 메모리입니다.


메모리의 판독 값을 찾는 사람은 메모리가 완전히 비워지는 정도에 관심이 있거나 거의 사용하지 않는 것에 관심이 없습니다. 캐시 된 메모리는 '사용 중'이지만 자유롭게 사용할 수 있으므로이를 확인해야합니다.
Nanne

왜 그런 말을하는지 모르겠습니다. 누군가가 의도적으로 캐시를 제거한다는 것을 암시하는 것 같습니다 (사실 나쁜 것입니다)? 요점은 사용하려는 프로그램과 같은 acuall 항목을 해당 메모리에로드하는 것이 실제로 옵션이라는 것입니다. 112 숫자를 가능한 한 낮추기를 원하지만 이론 상으로는 프로그램을 열 수 없다는 의미입니다. 내가 말하려는 목표가 아닙니다. 또한 : 그 캐시는 디스크 캐시 일뿐만 아니라 시스템 캐시와 그와
비슷한 것입니다

@Nanne, Ok. 동의합니다. 수정 해 주셔서 감사합니다. 동일한 내용을 반영하여 답변을 업데이트했습니다.
saji89

##### 감사합니다. @ Nanne @ devav2 @ saji89 지식 공유를 위해 – 당신은 굉장합니다 #####
amoooc

10

@ saji89의 대답은 훌륭하지만 요즘 free -m더 이상 -/+ buffers/cache줄을 인쇄하지 않지만 대신 사용 가능한 RAM의 양을 available첫 번째 줄 의 새 열에 넣습니다 .

ubuntu@pg_master:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          61406        1571         506       17131       59328       42150
Swap:             0           0           0
ubuntu@pg_master:~$ free -V
free from procps-ng 3.3.10

repo 에서 줄을 제거한 free (1) 커밋을 읽을 수 있습니다 . 또한 available열 을 추가하려는 커밋 .


4

free 명령은 사용되지 않고 사용 된 메모리 및 스왑 공간에 대한 정보를 표시합니다.

아래는 http://www.linfo.org/free.html에서 제공하는 설명입니다 .

Mem 이라는 첫 번째 행 에는 버퍼 및 캐시에 할당 된 메모리 양을 포함하여 실제 메모리 사용률이 표시됩니다. 버퍼 메모리라고도하는 버퍼는 일반적으로 HDD, 키보드, 프린터 또는 네트워크와 같은 외부 장치로 보내거나받는 데이터의 임시 보관 장소로 설정되는 메모리의 일부로 정의됩니다.

-/ + buffers / cache로 시작하는 두 번째 데이터 행은 현재 시스템 버퍼 캐시에 할당 된 실제 메모리의 양을 보여줍니다. read () 및 write () 시스템 calls1을 사용하여 수행되는 시스템의 파일에서 액세스 한 모든 데이터가이 캐시를 통과하므로 이는 응용 프로그램과 관련하여 특히 의미가 있습니다. 이 캐시는 HDD 또는 다른 디스크에서 읽거나 쓸 필요를 줄임으로써 데이터에 대한 액세스 속도를 크게 높일 수 있습니다.

Swap으로 시작하는 세 번째 행 은 총 스왑 공간과 현재 사용중인 공간 및 사용 가능한 공간을 보여줍니다.

시스템의 메모리 사용량을 분석 할 수 있습니다

당신은 사용한 free메가 바이트에 결과를 표시하는 데 사용되는 '-m'옵션으로 명령을

-m, --mega
              Display the amount of memory in megabytes.

총 메모리는 595 (사용 + 무료)입니다

중고 : 482 자유 : 112

시스템에서 595MB 중 482MB가 사용되며 활성 프로그램에서 93MB 만 사용되며 나머지 324MB는 캐시에 있습니다.

따라서 나중에 프로그램을 실행할 때는 120MB 이상이 필요하다고 말합니다. 112MB (현재 비어 있음)가 모두 제공되며 나머지 8MB는 비활성 프로그램 버퍼 / 캐시에서 가져옵니다.

편집 :이 링크를 찾았습니다 .


나는 이것이 옳지 않다고 생각합니다. 캐시를 폐기하면 93MB가 사용되므로 501이 남습니다.
Nanne

왜 그것이 틀렸다고 생각합니까? OP 시스템의 사용 가능한 메모리는 112MB + 324MB (캐시)입니다. 따라서 새 프로그램이 시작되면 먼저 112MB를 사용한 다음 캐시를 사용합니다.
devav2

기본적으로 595-93=501 and (반올림에 1MB를 주거나 가져 오기) 112때문에 op가 찾고 있다고 생각하는 숫자 인 것처럼 읽습니다 .
Nanne

501이 맞으며 이것이 제가 설명하려고하는 것입니다. 595 중에서 482가 사용됩니다. 프로그램에서 사용하는 활성 메모리는 93입니다. 따라서 112는 사용 가능한 여유 공간 + 더 필요한 경우 이전에 사용되었지만 현재 활성화되지 않은 캐시에서 메모리를 가져올 수 있습니다.
devav2

좋아, 그럼 동의 :)
Nanne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.