답변1
top
맨페이지에는 이러한 필드가 설명되어 있지 않지만free
~의하다:
완충기
커널 버퍼에서 사용하는 메모리(
Buffers
in/proc/meminfo
)은닉처
태블릿(
Cached
및 )SReclaimable
에서 사용되는 페이지 캐시 및 메모리/proc/meminfo
이득/캐시
버퍼와 캐시의 합
쓸 수 있는
스왑 없이 새 응용 프로그램을 시작하는 데 사용할 수 있는 메모리 양을 추정합니다. 캐시 또는 여유 필드에서 제공하는 데이터와 달리 이 필드는 페이지 캐시를 고려하며 사용 중인 프로젝트로 인해 모든 회수 가능한 메모리 조각이 회수되는 것은 아닙니다( 시뮬레이션 시 커널 3.14
MemAvailable
에서 사용 가능/proc/meminfo
, 커널 2.6.27+에서 사용 가능) ), 그렇지 않으면 무료와 동일)
기본적으로 "버프/캐시"는 디스크에 있거나 곧 종료되어야 하는 데이터에 사용되는 메모리를 계산하여 사용할 수 있거나(읽은 후 수정되지 않은 경우 해당 메모리를 즉시 사용할 수 있음) 또는 주어진 충분한 시간(있는 경우), "여유"는 추가 교환을 발생시키지 않고 할당하고 사용할 수 있는 메모리 양을 측정합니다.배포판에서 이식 가능한 사용 가능한 메모리 양을 얻는 방법은 무엇입니까?상세 사항은).
답변2
조금 명확하게 말하자면,완충기인 것을 가리킨다.쓴-- 쓰기가 완료될 때까지 메모리를 회수할 수 없습니다.
은닉처통과된 데이터를 말합니다.읽다-- 다시 읽어야 할 경우를 대비해 보관하되 디스크에서 언제든지 다시 읽을 수 있으므로 즉시 재활용하세요.
답변3
이 정보의 정식 출처는 다음과 같습니다. /usr/src/linux/Documentation/filesystems/proc.txt
완충기: 원시 디스크 블록의 비교적 임시 저장 공간이 너무 커지면 안 됩니다(20MB 정도). 은닉처: 디스크에서 읽은 파일의 메모리 캐시(페이지 캐시)입니다. SwapCached는 제외됩니다.
자세한 내용도 확인하실 수 있습니다여기.
Linux 페이지 캐시("은닉처:" from meminfo )는 대부분의 시스템에서 RAM을 가장 많이 사용하는 단일 소비자입니다. 디스크의 파일에서 read()할 때마다 해당 데이터는 메모리와 페이지 캐시(1.buffer
) 로 읽혀집니다.완충기:" in meminfo)는 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