proc
매뉴얼 에서 :
/proc/kcore
이 파일은 시스템의 물리적 메모리를 나타내며 ELF 코어 파일 형식으로 저장됩니다. 이 의사 파일과 제거되지 않은 커널(/usr/src/linux/vmlinux) 바이너리를 통해 GDB는 모든 커널 데이터 구조의 현재 상태를 검사하는 데 사용할 수 있습니다.
파일의 총 길이는 물리적 메모리(RAM) 크기에 4KB를 더한 크기입니다.
제가 볼 수 있는 크기는 /proc/kcore
물리적 메모리(RAM) 크기에 4KB를 더한 크기입니다.
하지만 내 경우 SuSE Linux
:
# ls -lt --block-size=M /proc/kcore
-r-------- 1 root root 134217727M Nov 15 21:09 /proc/kcore
# cat /proc/meminfo
MemTotal: 792680 kB
MemFree: 79960 kB
MemAvailable: 351664 kB
Buffers: 40 kB
Cached: 246588 kB
SwapCached: 212 kB
Active: 282992 kB
Inactive: 292896 kB
Active(anon): 122652 kB
Inactive(anon): 214164 kB
Active(file): 160340 kB
Inactive(file): 78732 kB
Unevictable: 100 kB
Mlocked: 100 kB
SwapTotal: 1532924 kB
SwapFree: 1531088 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 329148 kB
Mapped: 71888 kB
Shmem: 7556 kB
Slab: 63088 kB
SReclaimable: 46300 kB
SUnreclaim: 16788 kB
KernelStack: 1888 kB
PageTables: 0 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1929264 kB
Committed_AS: 1451492 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 7580 kB
VmallocChunk: 34359726080 kB
HardwareCorrupted: 0 kB
DirectMap4k: 867568 kB
DirectMap2M: 0 kB
파일 크기가 /proc/kcore
실제 메모리 크기보다 훨씬 큰 이유는 무엇입니까?
답변1
kcore
커널에 RAM이 가상으로 할당되어 있습니까? 64비트 시스템에서 이 크기에 대한 절대적인 제한은 128T입니다. 이는 시스템이 할당할 수 있는 최대 용량이기 때문입니다.