Tous les produits
Search
Centre de documentation

Alibaba Cloud Linux:Que faire si un grand nombre de processus ne peuvent pas être créés sur une instance Alibaba Cloud Linux 2 ?

Dernière mise à jour :Aug 12, 2026

Cette rubrique décrit les causes et les solutions aux échecs de création de processus sur une instance Elastic Compute Service (ECS) exécutant Alibaba Cloud Linux 2.

Symptômes

Lors de l'exécution de l'appel système fork ou clone sur l'instance, l'erreur -1 EAGAIN (Resource temporarily unavailable) apparaît et aucun nouveau processus ne peut être créé. Cet échec se manifeste de deux manières :

  • Échec des commandes shell : L'exécution de commandes shell renvoie le message bash: fork: retry: No child processes.

  • Échec spécifique à une application : La création de processus ou de threads échoue pour certaines applications, mais fonctionne normalement pour d'autres.

Causes

L'erreur EAGAIN se déclenche lorsque l'une des limites système suivantes est atteinte :

Limite Description Commande de diagnostic
Limite de threads par utilisateur Le nombre maximal de threads que l'utilisateur système peut créer est atteint. Cela provoque généralement un échec généralisé des commandes shell. ulimit -u
Limite spécifique à une application (app_limit) Le nombre de processus (nr_user_process) créés par l'utilisateur d'exécution pour une application donnée dépasse la limite supérieure de cette application. Seule l'application concernée est en échec. —

Solution 1 : Augmenter la limite de threads pour l'utilisateur système

Appliquez cette solution lorsque les commandes shell échouent avec le message bash: fork: retry: No child processes.

Étape 1 : Identifier et arrêter les threads consommant trop de ressources

  1. Identifiez les applications consommant le plus de threads.

  2. Arrêtez toute application occupant un nombre excessif de threads. Remplacez <PID> par l'ID de processus (PID) de l'application à arrêter.

    Avertissement

    La commande kill termine immédiatement les processus et peut entraîner une perte de données. Avant de l'exécuter, créez un snapshot de l'instance ou sauvegardez les fichiers critiques.

    kill -9 <PID>

Étape 2 : Augmenter la limite de threads

Remplacez <$Num_Of_Process> par la nouvelle valeur de limite.

ulimit -u <$Num_Of_Process>

Solution 2 : Augmenter la limite de ressources pour un processus spécifique

Recourez à cette solution lorsque seules certaines applications ne parviennent pas à créer des processus ou des threads.

  1. (Facultatif) Si util-linux n'est pas installé, installez-le au préalable.

    yum install -y util-linux
  2. Définissez la limite de processus sur illimitée pour le processus cible. Remplacez <$PID> par le PID du processus.

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

    Cette modification prend effet immédiatement pour le processus en cours d'exécution, mais ne persiste pas après son redémarrage.