답변:
top
의 맨 페이지는 필드를 설명하지 않지만 free
의 내용 은 다음과 같습니다.
버퍼
커널 버퍼
Buffers
에서 사용되는 메모리 ( in/proc/meminfo
)은닉처
페이지 캐시와 (석판에 의해 사용되는 메모리
Cached
와SReclaimable
의/proc/meminfo
)버프 / 캐시
버퍼와 캐시의 합
유효한
스와핑하지 않고 새 응용 프로그램을 시작하는 데 사용할 수있는 메모리 양 추정 캐시 또는 무료 필드에서 제공하는 데이터와는 달리,이 필드는 모든 재생 가능한 메모리 석판 인해 사용 (에있는 항목에 재생됩니다하지 않는 것이 또한 계정 페이지 캐시에 소요하고
MemAvailable
있는/proc/meminfo
커널에 에뮬레이트, 커널 3.14 볼, 2.6.27+ 그렇지 않으면 무료와 동일)
기본적으로 '버프 / 캐시'는 디스크에 있거나 곧 끝나야하는 데이터에 사용 된 메모리를 계산하여 결과적으로 사용 가능할 수 있습니다 (해당 메모리는 즉시, 캐시의 경우 또는 충분한 시간이 주어질 수 있음) 버퍼의 경우-후자는 어쨌든 작게 유지됩니다); "사용 가능"은 더 많은 스와핑을 발생시키지 않고 할당 및 사용할 수있는 메모리의 양을 측정합니다 ( 분산에서 이식 가능한 메모리의 양을 어떻게 얻을 수 있습니까? 참조).
비트를 명확히하기 위해 버퍼 는 기록 중인 데이터를 말합니다 . 기록이 완료 될 때까지 메모리를 회수 할 수 없습니다.
캐시 는 읽은 데이터를 말합니다. 다시 읽어야 할 경우를 대비하여 보관하지만 디스크에서 항상 다시 읽을 수 있기 때문에 즉시 회수 할 수 있습니다.
/proc/meminfo
으로 필드가 Writeback
있습니다. 이 별도의 필드는 Buffers
, 그것은으로 표시됩니다 무엇 buffers
에서 free -w
. Buffers
메모리 사용 의 일반적인 이유 는 다음과 같습니다. " RAM의 30 %가"버퍼 "입니다. 무엇입니까? "
Buffers
(현재) 페이지 캐시의 일부입니다. 에 포함되지 Cached
않지만의 일부로 계산됩니다 Active(file) + Inactive(file)
. Stephen Kitt의 답변에 대한 의견을 참조하십시오. Dirty
는 페이지 캐시의 일부로 쓰여졌으므로 결국 디스크에 다시 써야합니다. Writeback
포함되지 않습니다Dirty
. 따라서 Writeback
값의 일부가 아닙니다 Buffers
.
Buffers
실제로 의미하는 블록 장치와 관련된 페이지 캐시입니다. 일부 파일 시스템은 이것을 내부적으로 사용합니다. 다른 사람들은 전혀 사용하지 않습니다. / "RAM의 30 %가 버퍼입니다"질문에 대한 답변을 수정합니다.
이 정보의 표준 소스는 /usr/src/linux/Documentation/filesystems/proc.txt입니다.
버퍼 : 원시 디스크 블록에 대한 상대적 임시 저장은 대단히 큰 (그래서 20메가바이트 이상)하지합니다 캐시 파일은 디스크 (페이지 캐시)에서 읽기에 메모리 캐시를 :. SwapCached는 포함되어 있지 않습니다.
Linux 페이지 캐시 ( meminfo의 " Cached :")는 대부분의 시스템에서 RAM의 최대 단일 소비자입니다. 디스크의 파일에서 read ()를 수행 할 때마다 해당 데이터는 메모리로 읽히고 페이지 캐시 (1)로 이동합니다.
버퍼 캐시 ( meminfo의 " Buffers :")는 dentry / inode 캐시에 상대적으로 가깝습니다.
또는 분석과 같은 소스 코드를 이 .
금액은 buffers
함수의 반환 값입니다.nr_blockdev_pages(void)
long nr_blockdev_pages(void)
{
struct block_device *bdev;
long ret = 0;
spin_lock(&bdev_lock);
list_for_each_entry(bdev, &all_bdevs, bd_list) {
ret += bdev->bd_inode->i_mapping->nrpages;
}
spin_unlock(&bdev_lock);
return ret;
}
금액 cached
:
global_page_state(NR_FILE_PAGES) – total_swapcache_pages – i.bufferram