如果在 /etc/nsswitch.conf 文件中为主机或 IP 节点查找指定了 DNS,并且系统正在运行多线程的应用程序,则 nscd 守护程序会发生故障。此问题之所以发生,是因为 nscd 守护程序的大小会慢慢增大,并且会耗尽 4 GB 的交换空间。如果所有的交换空间都被耗尽,则 nscd 将崩溃,而其它新进程可能会受到各种随机错误的干扰。
解决方法:若要避免发生此问题,请按以下这些步骤修改 nscd 设置。
成为超级用户。
停止 nscd 守护程序。
# /etc/init.d/nscd stop |
在 /etc/nscd.conf 文件中添加或修改下列各行。
keep-hot-count hosts 0
keep-hot-count ipnodes 0
重新启动 nscd 守护程序。
# /etc/init.d/nscd start |
不运行 nscd 将导致执行主机查找的任何多线程应用程序中出现相同的泄漏。
在下列情况中,Solaris 点对点协议 (PPP) 4.0 守护程序 (pppd) 可能意外退出。
pppd 守护程序空闲。
pppd 守护程序的 demand 和 holdoff 选项已启用。
在 holdoff 期间有数据包到达。
如果 pppd 守护程序意外退出,则相应的系统日志文件中将记录一条类似下列消息的消息。
当前日期 主机名 pppd[PID]: [ID 702911 daemon.error] 无法设置要传递的 IP: 无效参数 当前日期 主机名 pppd[PID]: [ID 702911 daemon.error] 无法启用 IPCP |
有关 pppd 守护程序的 demand 和 holdoff 选项,请参阅 pppd( 1M)。
解决方法:选择以下解决方法之一。
如果在守护程序尝试重新初始化链接之前不需要 pppd 守护程序等待,请不要对 pppd 守护程序使用 holdoff 选项。
将 holdoff 选项值设置为 0。
从类似下列 Bourne 外壳程序脚本的循环脚本运行 pppd 守护程序。
#!/bin/sh while :; do /usr/bin/pppd cua/b lock idle 60 demand nodetach noauth \ 38400 10.0.0.1:10.0.0.2 holdoff 20 done
如果在两个 IP 节点之间配置多个通道, 并且启用 ip_strict_dst_multihoming 或其他 IP 筛选器,可能会导致包丢失。
解决方法:选择以下解决方法之一。
通过使用带 addif 选项的 ifconfig 命令在两个 IP 节点之间配置单个通道并将地址添加到该通道。
不要在两个 IP 节点间的通道上启用 ip_strict_dst_multihoming。