Limitar los recursos de procesos con systemd en linux

Limitar los recursos de procesos con systemd en linux.

Por defecto, systemd establece unos límites predeterminados a los procesos que se inician. En sistemas con grandes cargas de trabajo, es posible que este límite sea demasiado pequeño.

Algunas aplicaciones o procesos específicos, pueden necesitar unos valores de recursos más altos que los asignados por el sistema. Por suerte este problema tiene solución, además bastante simple.

En el artículo de hoy veremos como aumentar este límite (a nivel global), o reducirlo si es necesario. También aprenderemos a realizar la misma operación, pero… a un proceso específico.

 

Limitar los recursos de procesos con systemd

Normalmente, la regla que permite aumentar el valor global viene comentada de forma predeterminada. Puedes verificarlo con el siguiente comando.

cat /etc/systemd/system.conf | grep DefaultLimitMEMLOCK

ejemplo de salida…

sololinux # cat /etc/systemd/system.conf | grep DefaultLimitMEMLOCK
#DefaultLimitMEMLOCK=

Ahora modificamos / agregamos un valor.

sudo nano /etc/systemd/system.conf

Busca la linea «#DefaultLimitMEMLOCK=».

Limitar los recursos de procesos en DefaultLimitMEMLOCK

Limitar los recursos de procesos en DefaultLimitMEMLOCK

Descomenta la linea y agregas un valor, por ejemplo si quisiéramos poner una limitación general de 128k…

#DefaultLimitNOFILE=
#DefaultLimitAS=
#DefaultLimitNPROC=
DefaultLimitMEMLOCK=128000
#DefaultLimitLOCKS=
#DefaultLimitSIGPENDING=
#DefaultLimitMSGQUEUE=

Guarda el archivo, cierra el editor y reinicia el sistema.

sudo reboot

 

Si queremos limitar o aumentar un proceso específico, la forma de operar es un poco diferente. Primero lo identificamos, así que ejecuta el comando systemctl.

sudo systemctl

En nuestro ejemplo queremos modificar el sshd.service. Ejecutamos status para identificar su ruta.

sudo systemctl status sshd.service

Identificamos la ruta en: /usr/lib/systemd/system/sshd.service (puede variar dependiendo de tu distribución linux).

[root@62 ~]# systemctl status sshd.service
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since sáb 2020-05-23 07:03:25 CEST; 3 days ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1066 (sshd)
   CGroup: /system.slice/sshd.service
           └─1066 /usr/sbin/sshd -D

Editamos el archivo del servicio que nos interesa.

sudo nano /usr/lib/systemd/system/sshd.service

Nos aparece algo similar a…

[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

Lo que haremos es agregar la siguiente linea (a continuación de ExecStart).

LimitMEMLOCK=128000

El resultado será más o menos así.

[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
LimitMEMLOCK=128000
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

Guarda el archivo, cierra el editor y reinicia el sistema.

reboot

Este manual ha sido verificado en: CentOS 7, Ubuntu 18.04 y Linux Mint 18.3. Limitar los recursos de procesos con systemd en linux.

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Limitar los recursos de procesos con systemd en linux.

 

4 Comentarios

  1. Genaro
    26/05/2020
    • Sergio G.B.
      26/05/2020
  2. carlosnewmusic
    27/05/2020
    • Sergio G.B.
      27/05/2020

Agregar comentario