Com establir límits per als processos en execució dels usuaris a Linux


Una de les belleses de Linux és que podeu controlar gairebé tot. Això proporciona a l'administrador del sistema un gran control sobre el seu sistema i una millor utilització dels recursos del sistema.

Tot i que alguns potser no han pensat mai en fer-ho, és important saber que a Linux podeu limitar la quantitat de recursos que pot utilitzar un únic usuari i durant quant de temps.

En aquest breu tema, us mostrarem com limitar el nombre de processos iniciats per l'usuari i com comprovar els límits actuals i modificar-los.

Abans d'anar més enllà, hem de destacar dues coses:

  1. Necessiteu accés root al vostre sistema per modificar els límits d'usuari
  2. Heu de tenir molta cura si teniu previst modificar aquests límits

Per configurar els límits d'usuari, haurem d'editar el fitxer següent:

/etc/security/limits.conf

Aquest fitxer s'utilitza per aplicar el límit creat pel pam_module.

El fitxer té la sintaxi següent:

<domain> <type> <item> <value>

Aquí ens aturarem a parlar de cadascuna de les opcions:

  • Domini: inclou noms d'usuari, grups, rangs de guies, etc.
  • Tipus: límits suaus i durs
  • Item: l'element que estarà limitat: mida del nucli, mida del fitxer,  nproc, etc.
  • Valor: aquest és el valor del límit donat

Una bona mostra per a un límit és:

@student          hard           nproc                20

La línia anterior estableix un límit dur de 20 processos com a màxim al grup \student\.

Si voleu veure els límits d'un procés determinat, simplement podeu cat el fitxer de límits com aquest:

# cat /proc/PID/limits

On PID és l'identificador real del procés, podeu esbrinar l'identificador del procés mitjançant l'ordre ps. Per obtenir una explicació més detallada, llegiu el nostre article que diu: Trobeu processos Linux en execució i establiu límits de procés per nivell d'usuari

Així que aquí teniu un exemple:

# cat /proc/2497/limits
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             32042                32042                processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       32042                32042                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us   

Totes les línies s'explicaran per si mateixes. Tanmateix, si voleu trobar més opcions de configuració que podeu introduir al fitxer limits.conf, podeu fer una ullada al manual que es proporciona aquí.

Si teniu cap pregunta o comentari, no dubteu a enviar-los a la secció de comentaris a continuació.