You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
Linux操作系统问题
Linux实例启动服务时提示:task: Cannot allocate memory
复制全文
下载 pdf
Linux实例启动服务时提示:task: Cannot allocate memory
您可以通过调高kernel.pid_max值,解决因ECS实例启动某个服务进程时,提示task: Cannot allocate memory错误问题。​
说明​
该操作仅适用于v4.1以下内核版本,若为v4.1以上内核版本,您可以提交工单,获取技术支持。​
问题原因​
可能是操作系统进程数超限导致。​
Linux内核通过内核配置参数kernel.pid_max限制进程的数量,当运行服务的总进程数超出kernel.pid_max值时,创建新进程,系统会提示task: Cannot allocate memory错误。​
操作步骤​
  1. 登录目标实例,操作详情可参考登录Linux实例。​
  1. 查看系统当前已运行的进程数是否大于最大进程数。​
  1. 执行以下命令,查看系统当前已运行的进程数。​
  • ​
    ps -eLf | wc -l​
    ​
  • ​​​
  1. 执行以下命令,查看系统的最大进程数。​
  • ​
    sysctl kernel.pid_max​
    ​
  • ​​​
  1. 若系统当前已运行的进程数大于最大进程数,请根据业务实际情况将kernel.pid_max配置项调高至合理值,调整完成后,立即生效。​
说明​
  • kernel.pid_max值调整完成后,立即生效。​
  • 若操作系统当前已运行的进程数超过最大进程数(kernel.pid_max)的三分之二时,也建议您立即调高kernel.pid_max的值,避免影响后续的业务运行。​
  • 临时设置:执行以下任意一条命令,临时调高kernel.pid_max的值,但重启实例后,将会失效。​
  • ​
    sysctl -w kernel.pid_max=expectedPidMaxValue​
    echo expectedPidMaxValue > /proc/sys/kernel/pid_max​
    ​
说明​
请将命令中的expectedPidMaxValue替换为kernel.pid_max实际需要调高的值。​
  • 永久设置:执行以下命令,不受实例状态影响,永久调高kernel.pid_max的值。​
  • ​
    echo "kernel.pid_max=expectedPidMaxValue" >> /etc/sysctl.conf​
    sysctl -p​
    ​
说明​
请将命令中的expectedPidMaxValue替换为kernel.pid_max实际需要调高的值。​
最近更新时间:2025.04.28 10:09:44
这个页面对您有帮助吗?
有用
有用
无用
无用