Linux彈性云主機執行命令或啟動服務時出現錯誤:Cannot allocate memory
更新時間 2023-09-03 15:00:08
最近更新時間: 2023-09-03 15:00:08
分享文章
本文帶您解決在 Linux 操作系統的彈性云主機上執行命令時出現 Cannot allocate memory 的問題 。
故障描述
在 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