当在 /etc/nsswitch.conf 中指定了 DNS,并且有多线程的应用程序在运行时,libresolv.so.2 会用尽交换文件空间 (4646349)
如果在 /etc/nsswitch.conf 文件中为主机或 IP 节点查找指定了 DNS,并且系统正在运行多线程的应用程序,则 nscd 守护程序会发生故障。此问题之所以发生,是因为 nscd 守护程序的大小会慢慢增大,并且会耗尽
4 GB 的交换空间。如果所有的交换空间都被耗尽,则 nscd 将崩溃,而其它新进程可能会受到各种随机错误的干扰。
解决方法:若要避免发生此问题,请按以下这些步骤修改 nscd 设置。
-
成为超级用户。
-
停止 nscd 守护程序。
-
在 /etc/nscd.conf 文件中添加或修改下列各行。
-
keep-hot-count hosts 0
-
keep-hot-count ipnodes 0
-
重新启动 nscd
守护程序。
注意:
不运行 nscd 将导致执行主机查找的任何多线程应用程序中出现相同的泄漏。