운영 체제: 우분투 16.04
free
출력에는 약 2GB의 공유 메모리가 표시됩니다. 공유 메모리는 일정 시간이 경과한 후에도 할당된 상태로 유지됩니다.로그아웃이며 목록의 특정 프로세스가 top
이를 차지하지 않습니다.
ipcs -m
이 소비에 대한 단일 프로세스(또는 합계)에 대한 표시는 없습니다.
sync
또는 sysctl vm.drop_caches={1..3}
공유 메모리가 줄어들지 않습니다. (예상 캐시만 해당)
실제로 쓰기 차단 장치를 사용하려는 잘못된 시도로 인해 문제가 발생하여 dd
에서 물리적 파일이 생성된다는 것을 알고 있습니다 /dev/
(답변 참조).
참고로:
> grep ' /dev ' /proc/mounts
udev /dev devtmpfs rw,nosuid,relatime,size=1941504k,nr_inodes=485376,mode=755 0 0
무엇이 공유 메모리를 점유하고 있는지 알아내기 위해 일반적으로 어떤 단계를 취합니까?
답변1
그 이유는 dd 명령에 오류를 입력하고 물리적 파일 /dev/mmcblk1을 썼기 때문입니다.
> ll /dev/mmcblk*
-rw-r--r-- 1 root root 1.9G 2017-11-03 18:09 /dev/mmcblk1
brw-rw---- 1 root disk 179, 0 2017-11-03 18:10 /dev/mmcblk2
SD 카드를 제거하고 오류를 확인한 후 실제 파일을 삭제하고 캐시 사용량이 2GB 감소했습니다.
예제를 재현하려면 다음을 수행하십시오.
> free -h
total used free shared buff/cache available
Mem: 3.7G 1.7G 919M 163M 1.2G 1.6G
> sudo dd if=/dev/zero of=/dev/BIG bs=1M count=700 status=progress
700+0 records in
700+0 records out
734003200 bytes (734 MB, 700 MiB) copied, 0.743527 s, 987 MB/s
> free -h
total used free shared buff/cache available
Mem: 3.7G 1.7G 221M 859M 1.8G 982M
> sudo rm /dev/BIG
> free -h
total used free shared buff/cache available
Mem: 3.7G 1.7G 904M 160M 1.2G 1.6G