天天看點

fork Cannot allocate memory 問題背景排查方案解決方案

作者:楓凡

問題背景

fork Cannot allocate memory 問題背景排查方案解決方案

執行 經常會遇到 cannot allocate memory的提示

排查方案

從提示來看,一般會認為是記憶體不足導緻無法給程序配置設定記憶體,這種正常的解法

通過free top指令以及檢視/var/log/message 是否存在oom的記錄

還有一種可能

目前程序Process 比較多,占用Pid也會很多,導緻無法配置設定pid,也會提示Cannot allocate memory

解決方案

\[root@iZ23pddtofdZ \~\]# sysctl \-a \| grep pid_max
kernel.pid_max = 32768           

Linux系統有最大pid數量的限制

執行指令 可以檢視到最大pid的數量限制

sysctl kernel.pid_max

預設為32768

如果該值設定比較小,當Pid較多時會影響新的Pid建立,提示Cannot allocate memory

sysctl -w kernel.pid_max=99999 臨時修改pid_max

echo "kernel.pid_max=99999" >> /etc/sysctl.conf 永久修改pid_max

http://docs.alibaba-inc.com/pages/viewpage.action?pageId=401117574

繼續閱讀