今天生產機器突然無法登錄了,正好有一個用top掛着,但是退出top,執行任何命令都報-bash: fork: Cannot allocate memory,但是查看內存還是有很多空閑,然后在百度上查了很多資料,經過在虛擬機上測試,找到了解決辦法。
原因是進程數滿了,超過了系統設置的默認值
查看最大進程數 sysctl kernel.pid_max
查看所有進程數ps -eLf | wc -l
會發現所有進程數基本快超過系統默認的進程數量了
修改最大進程數后系統即可恢復,無需重啟進程。
echo 1000000 > /proc/sys/kernel/pid_max
永久生效
echo "kernel.pid_max=1000000 " >> /etc/sysctl.conf
sysctl -p
參考:https://blog.csdn.net/woshizhangliang999/article/details/66473884