Linux服务器突然出现故障,打开终端输入命令全部提示 -bash: fork: 无法分配内存,打开系统日志,报以下错误:
expire_proc: expire thread create for /misc failed
expire_proc: expire thread create for /net failed
错误出现不久后,ssh无法连接,vnc桌面一片空白,没法执行任何命令。
网上查找原因,说是线程数超过了系统配置的数量。尝试把进程数量,pid数量全部改大。
执行
#ps -ef | wc -l
#ps -eLf | wc -l
可查看进程数量。
1. 修改内核pid参数
查看内核pid最大值
#sysctl kernel.pid_max
编辑/etc/sysctl.conf,增加kernel.pid_max=1000000
执行 #sysctl -p
2.编辑 /etc/security/limits.d/90-nproc.conf
修改nprco值改为1000000
2. 编辑/etc/security/limits.conf
修改nprco值改为1000000
3. 执行#ulimit -u 1000000
参考资料:
https://www.cnblogs.com/rutor/p/7016338.html
https://blog.csdn.net/chenjinlong1/article/details/77961877
https://blog.csdn.net/gatieme/article/details/51058797
http://blog.163.com/cklgl_521/blog/static/229408620148108376346/
https://blog.csdn.net/cfaster/article/details/53065738
http://fjjiaboming.iteye.com/blog/1220207
http://www.iteye.com/problems/55323
测试测试测试测试测试测试测试测试测试测试测试测试测试测试
48448
测试