有一天晚上,我尝试重新启动 NFS 服务,但收到以下错误消息:
kernel: [81818.428785] nfsd: unable to allocate nfsd_file_hashtbl
rpc.nfsd[15567]: error starting threads: errno 12 (Cannot allocate memory)
systemd[1]: nfs-server.service: Main process exited, code=exited, status=1/FAILURE
考虑到系统的 buff/cache 中还剩下 12+GB 的 RAM,这是一个奇怪的错误。据我了解,buff/cache内存是内核用来缓存信息的内存,但如果应用程序需要RAM,它们仍然可以使用。
然后我运行了以下命令:
sync && echo 3 > /proc/sys/vm/drop_caches
内存从缓冲/缓存转移到空闲,并且 NFS 启动没有任何问题。
我读到的所有内容都表明这基本上是最糟糕的事情之一。
我的问题是这是 NFS 中的错误还是其他错误?看来这是一个相当热门的话题,我并不是在争论它是否可以 - 我所能报告的是当我运行 NFS 时没有任何问题启动,我很想知道为什么。
我正在运行 Debian 10,带有 proxmox 6.3-6,NFS 版本 1:1.3.4-2.5+deb10u1
编辑:
我还注意到 proxmox 的问题(即 VNC 控制台无法工作或无法连接到不同的节点) - 在我的两个节点上运行上述命令可以解决所有这些问题。