日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Alibaba Cloud Linux 2系統的ECS實例創建大量進程失敗,如何處理?

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

本文為您介紹Alibaba Cloud Linux 2系統的ECS實例創建大量進程失敗的原因及解決方案。

問題描述

Alibaba Cloud Linux 2系統的ECS實例中執行系統調用(fork/clone)時,進程創建失敗,返回“-1 EAGAIN (Resource temporarily unavailable)”錯誤。一般有如下兩種場景:

  • 場景一:通過Shell命令交互時,系統返回“bash: fork: retry: No child processes”錯誤。

  • 場景二:部分應用內創建進程或者線程失敗,同時在系統的其他應用中卻可以創建成功。

問題原因

不同的場景,問題原因不同,請根據現場實際情況匹配對應的場景:

  • 場景一:系統用戶創建的線程數達到最大值。通過ulimit -u命令可查看線程最大值。

  • 場景二:部分應用的運行用戶所創建的進程數(nr_user_process)大于應用的進程數限制(app_limit),引發報錯。

解決方案

調整系統用戶可創建的最大線程數

  1. 切換到root用戶,查看進程創建失敗用戶的所有應用。

  2. 通過kill命令強制關閉占用線程數較多的應用。

    警告

    kill命令屬于風險操作,確保操作前為ECS實例創建快照或者備份重要文件,確保數據安全。

  3. 調整系統用戶可創建的最大線程數。

    ulimit -u <$Num_Of_Process>
    說明

    <$Num_Of_Process>指調整后的最大線程值,建議您合理規劃ulimit資源。

調整某個進程的limit資

  1. 安裝util-linux工具。

    yum install -y util-linux
    說明

    如果已安裝該工具,可跳過本步驟。

  2. 調整進程的limit資源。

    prlimit --pid <$PID> --nproc=unlimited
    說明

    <$PID>指進程或線程創建失敗的進程PID。