已使用 2GB 共享内存,如 free [关闭] 所示

已使用 2GB 共享内存,如 free [关闭] 所示

操作系统:Ubuntu 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

相关内容