我有一台安装了 Fedora 31 的“裸机”机器。
当我使用 VSCode 远程时,每隔 1~2 小时,我就无法运行tail -f
或journalctl
等命令podman
。 (VSCode 终端和 SSH)
我可以杀死 vscode 服务器来解决这个问题(临时)。我认为 vscode 服务器泄漏了 fds,但找不到原因。
我遵循了从谷歌找到的每一篇文章,但未能解决这个问题。
sysctl fs.file-nr
:
fs.file-nr = 10512 0 2000000
这个命令:https://stackoverflow.com/questions/21752067/counting-open-files-per-process/21752125#21752125
194 fds (PID = 4313), command: /usr/libexec/mysqld --basedir=/usr
141 fds (PID = 1), command: /usr/lib/systemd/systemd --switched-root --system --deserialize 29
119 fds (PID = 3448), command: /usr/bin/qbittorrent --profile=/opt
90 fds (PID = 18100), command: /usr/sbin/smbd --foreground --no-process-group
72 fds (PID = 1180), command: /usr/lib/systemd/systemd-journald
57 fds (PID = 8781), command: /usr/sbin/smbd --foreground --no-process-group
52 fds (PID = 3976), command: /usr/lib/systemd/systemd
47 fds (PID = 3785), command: /usr/bin/mongod -f /etc/mongod.conf
43 fds (PID = 1758), command: dbus-broker --log 4 --controller 9 --machine-id 48d17ca8e2184a66b9043781fdc8f037 --max-bytes 536870912 --max-fds 4096 --max-matches 16384 --audit
40 fds (PID = 1766096), command: /root/.vscode-server/bin/26076a4de974ead31f97692a0d32f90d735645c0/node /root/.vscode-server/bin/26076a4de974ead31f97692a0d32f90d735645c0/out/vs/server/main.js --host=127.0.0.1 --enable-remote-auto-shutdown --port=0
ulimit -n
500000
lsof | awk '{print $9}' | sort | uniq | wc -l
2003
并且内存足够大:
free -g
total used free shared buff/cache available
Mem: 59 8 6 0 44 50
Swap: 63 0 63
杀死 vscode 服务器后:
sysctl fs.file-nr
fs.file-nr = 10320 0 2000000
您可以看到打开的文件总数是一个“很小”的数字(与某些高负载服务器相比)。
vscode 服务器只使用了 40 个 fd,但是在我杀死它之后,file-nr 减少了 200 多个。这可能吗?
我正在使用该root
用户并禁用了 SELinux,还有什么可以限制我的资源使用吗?