故障描述
在 Linux 操作系统的弹性云主机上执行命令top, free -m, df -h 等命令时出现错误提示:-bash: fork: Cannot allocate memory 报错。
故障原因
通常是因为内存不足,或者达到最大pid 数量限制。
故障排查思路
登录 Linux 操作系统弹性云主机。
多次尝试使用 free -m 或者 top 命令查看当前内存使用情况。若可用内存很少,可根据业务需要释放一些非必要的进程,或者增加 swap 空间。
若可用内存充足,则查看操作系统最大 pid 数量限制,命令如下:
sysctl -a | grep pid_max
或者
cat /proc/sys/kernel/pid_max
查看当前进程数,命令如下:
ps -eLf | wc -l
若 pid_max 的值偏小时会影响 pid 的创建,可以根据业务需要调整最大 pid 数量限制,临时调整的命令如下:
sysctl -w kernel.pid_max=65535
若要弹性云主机重启后调整命令仍然生效,可执行如下命令:
echo "kernel.pid_max=65535" >> /etc/sysctl.conf