GNU/Linux >> Tutoriales Linux >  >> Linux

La creación de subprocesos falla con "Recurso temporalmente no disponible" con kernel 4.3

El problema es causado por el TasksMax atributo systemd. Se introdujo en systemd 228 y hace uso del subsistema pid de cgroups, que se introdujo en el kernel de Linux 4.3. Un límite de tareas de 512 por lo tanto, está habilitado en systemd si se está ejecutando el kernel 4.3 o más reciente. La característica se anuncia aquí y se introdujo en esta solicitud de extracción y los valores predeterminados se establecieron mediante esta solicitud de extracción. Después de actualizar mi kernel a 4.3, systemctl status docker muestra un Tasks línea:

# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2016-01-15 19:58:00 CET; 1min 52s ago
     Docs: https://docs.docker.com
 Main PID: 2770 (docker)
    Tasks: 502 (limit: 512)
   CGroup: /system.slice/docker.service

Ajuste TasksMax=infinity en el [Service] sección de docker.service soluciona el problema docker.service suele estar en /usr/share/systemd/system , pero también se puede poner/copiar en /etc/systemd/system para evitar que el administrador de paquetes lo anule.

Una solicitud de extracción está aumentando TasksMax para los archivos systemd de ejemplo de docker, y un informe de error de Arch Linux está tratando de lograr lo mismo para el paquete. Hay una discusión adicional en el Foro de Arch Linux y en un informe de error de Arch Linux con respecto a lxc.

DefaultTasksMax se puede utilizar en el [Manager] sección en /etc/systemd/system.conf (o /etc/systemd/user.conf para servicios ejecutados por el usuario) para controlar el valor predeterminado para TasksMax .

Systemd también aplica un límite para los programas que se ejecutan desde un shell de inicio de sesión. Estos predeterminados son 4096 por usuario (se incrementará a 12288 ) y están configurados como UserTasksMax en el [Login] sección de /etc/systemd/logind.conf .


La respuesta de cdauth es correcta, pero hay otro detalle que agregar.

En mi sistema Ubuntu 16.04 con systemd 229 y un kernel 4.3, se impuso un límite de 512 pid en los ámbitos de sesión de forma predeterminada, incluso cuando UserTasksMax se configuró en el nuevo valor predeterminado aumentado de 12288. Por lo tanto, cualquier ámbito de sesión de usuario se limitó a 512 subprocesos.

La única forma que encontré para eliminar el límite fue establecer DefaultTasksMax=unlimited en /etc/systemd/system.conf y systemctl daemon-reexec (o reiniciar).

Puede verificar si esto está sucediendo emitiendo systemctl status , eligiendo un ámbito de sesión y cat /sys/fs/cgroup/pids/user.slice/user-${UID}.slice/session-FOO.scope/pids.max .


Linux
  1. Seguimiento del kernel con trace-cmd

  2. Analizar el kernel de Linux con ftrace

  3. Cómo corregir su USUARIO falla con su:no se puede crear un proceso secundario:recurso temporalmente no disponible ¿Error en CloudLinux?

  4. Los comandos de Docker cuelgan sin respuesta

  5. Ejecutar dos comandos con docker exec

Creación de listas de palabras con Crunch en Kali Linux

Tutorial de Podman:comience a usar Podman

Creando un sistema híbrido Linux-Windows con Cygwin

Cómo implementar CouchDB como un clúster con Docker

Instalar WordPress con Docker en Ubuntu 20.04

¿Qué puede causar un "Recurso temporalmente no disponible" en el comando sock send ()?