我最近更新为Ubuntu20.04.3(内核5.11.0-34-泛型#36~20.04.1-UbuntuSMP),所以这可能是一个bug。使用几个小时后,共享内存分区就会被填满。根据df
,分区/dev/shm
中有16G的数据:
Filesystem Size Used Avail Use% Mounted on
...
tmpfs 16G 16G 0 100% /dev/shm
...
试图向该分区写入新文件的尝试失败:
$ echo "foobar" > /dev/shm/foobar.txt
bash: echo: write error: No space left on device
但是,当我查看该分区中的文件时,文件只使用170 K左右:
$ du -h /dev/shm/*
0 /dev/shm/foobar.txt
4.0K /dev/shm/sem.CiscoAcMemoryLock
4.0K /dev/shm/sem.CiscoAcNamedEventNVM
4.0K /dev/shm/sem.CiscoAcNamedEventOpenDNS
4.0K /dev/shm/sem.CiscoAcNamedEventPostureISE
156K /dev/shm/tmp
我注意到这是因为google-chrome转储核心,并且我不能重新启动Chrome,直到/dev/shm
中有空间,而我找到的唯一方法是重新启动内存。
如何在/dev/shm中找到使用空间的方法?
发布于 2021-09-10 16:42:04
文件存在于文件系统上,只要它们仍然有目录条目,或者正在被当前进程打开。运行du -h /dev/shm/
(添加*
排除以.
开头的文件)只会显示前者。
您还需要运行sudo lsof /dev/shm
,它显示了该文件系统上当前打开的文件。
例如:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
QtWebEngi 654092 user DEL REG 0,31 2610 /dev/shm/.org.chromium.Chromium.eAzBpJ
QtWebEngi 654092 user DEL REG 0,31 2613 /dev/shm/.org.chromium.Chromium.eY7oKn
QtWebEngi 654092 user DEL REG 0,31 2624 /dev/shm/.org.chromium.Chromium.zuBEOF
QtWebEngi 654092 user 22u REG 0,31 144 2610 /dev/shm/.org.chromium.Chromium.eAzBpJ (deleted)
QtWebEngi 654092 user 29u REG 0,31 144 2613 /dev/shm/.org.chromium.Chromium.eY7oKn (deleted)
QtWebEngi 654092 user 46r REG 0,31 1048576 2624 /dev/shm/.org.chromium.Chromium.zuBEOF (deleted)
以(deleted)
结尾的行将不会被du
找到,但只要任何进程都坚持该文件,它们仍将占用空间。
发布于 2021-09-28 07:55:06
Ubuntu20.04LTS(内核版本5.11.0.34.36,更新到5.11.0.36.40)也有同样的问题。将内核更新为最新版本后,问题得到了解决。通过Marc的帖子,请参阅14.7.2021中的https://unix.stackexchange.com/questions/654004/ubuntu-20-04-problems-with-chrome-teams-visual-studio-code-maybe-related-wi,他解决了将内核更新到5.12.10版本的问题。我使用https://linuxhint.com/install-upgrade-linux-kernel-ubuntu-linux-mint/将版本升级到5.14.8-051408-泛型,问题似乎得到了解决.
https://askubuntu.com/questions/1362967
复制相似问题