커널은 약간 잘못된 것입니다. Linux 커널은 여러 프로세스 / 스레드 + 모듈 ( lsmod
)로 구성되어 있으므로 전체 그림을 보려면 단일 구성 요소가 아닌 전체 볼을 확인해야합니다.
부수적으로 광산 쇼 slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
에 대한 맨 페이지 slabtop
도 다음과 같이 말했습니다.
슬랩 탑 통계 헤더는 사용중인 슬래브의 바이트 수를 추적하며 실제 메모리의 척도는 아닙니다. / proc / meminfo 파일의 'Slab'필드는 사용 된 슬랩 물리적 메모리에 대한 정보를 추적합니다.
캐시 삭제
귀하의 질문에 대한 의견에서 @derobert이 제안한 대로 내 캐시를 삭제 하면 다음과 같이됩니다.
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
3을 보내면 무료 pagecache, dentries 및 inode가 수행됩니다. 이 U & L Q & A에서 제목 : 메모리 캐시와 버퍼를 덤프하는 방법이나 도구가 있습니까? ". 따라서 페이지 캐시, 덴 트리 및 inode에 관한 정보를 유지함으로써 110MB의 공간이 사용되었습니다.
추가 정보
- 관심이 있으시면
slabtop
조금 더 자세히 설명하는이 블로그 게시물을 찾았습니다 . 제목 : 오늘의 Linux 명령 : slabtop .
- 슬랩 캐시는 Wikipedia에서 제목 : 슬랩 할당 에 대해 자세히 설명합니다 .
커널에서 사용하는 RAM 용량은 얼마입니까?
이 사진은 나에게는 조금 안개가 낀 것이지만 여기에 내가 우리가 알고있는 것들이 있습니다.
투수판
이 기술을 사용하여 Slab 사용량의 스냅 샷을 얻을 수 있습니다. 기본적으로 우리는이 정보를 꺼낼 수 있습니다 /proc/meminfo
.
$ grep Slab /proc/meminfo
Slab: 100728 kB
모듈
또한 다음에서이 값을 가져와 커널 모듈의 크기 값을 얻을 수 있습니다 (디스크에서 크기인지 RAM인지 확실하지 않음) /proc/modules
.
$ awk '{print $1 " " $2 }' /proc/modules | head -5
cpufreq_powersave 1154
tcp_lp 2111
aesni_intel 12131
cryptd 7111
aes_x86_64 7758
슬라브 정보
SLAB에 대한 자세한 내용은이 proc 구조에서 액세스 할 수 있습니다 /proc/slabinfo
.
$ less /proc/slabinfo | head -5
slabinfo - version: 2.1
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
nf_conntrack_ffff8801f2b30000 0 0 320 25 2 : tunables 0 0 0 : slabdata 0 0 0
fuse_request 100 125 632 25 4 : tunables 0 0 0 : slabdata 5 5 0
fuse_inode 21 21 768 21 4 : tunables 0 0 0 : slabdata 1 1 0
Dmesg
시스템이 부팅되면 Linux 커널이로드 된 직후 메모리 사용량을보고하는 줄이 있습니다.
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
참고 문헌