Ejercicios - 332.3 Control de Recursos
Pregunta 1
¿Que comando muestra el limite maximo de archivos abiertos (hard limit) para la sesion actual?
a) ulimit -n
b) ulimit -Hn
c) ulimit -a | grep files
d) limits -nofile
Respuesta
b) ulimit -Hn
La opcion -H muestra el hard limit y -n se refiere a los archivos abiertos (nofile). Sin -H o -S, ulimit muestra el soft limit por defecto.
Pregunta 2
¿Que linea en /etc/security/limits.conf limita a 500 el numero maximo de procesos para todos los usuarios?
a) * soft nproc 500
b) * hard nproc 500
c) all hard processes 500
d) everybody hard nproc 500
Respuesta
b) * hard nproc 500
El asterisco (*) aplica a todos los usuarios, hard establece el limite maximo que no puede ser sobrepasado, y nproc es el item que controla el numero de procesos.
Pregunta 3
¿Que comando crea un cgroup v1 con controladores de CPU y memoria llamado “webapps”?
a) cgroup create --cpu --memory webapps
b) cgcreate -g cpu,memory:webapps
c) mkdir /sys/fs/cgroup/cpu,memory/webapps
d) cgset --create cpu,memory webapps
Respuesta
b) cgcreate -g cpu,memory:webapps
cgcreate crea un nuevo cgroup. La opcion -g especifica los controladores y el nombre del grupo en formato controlador1,controlador2:nombre.
Pregunta 4
¿Que directiva de systemd limita un servicio a un maximo de 512MB de memoria?
a) MemoryLimit=512M
b) MemoryMax=512M
c) MaxMemory=512M
d) LimitMEMORY=512M
Respuesta
b) MemoryMax=512M
MemoryMax establece el limite duro de memoria para el servicio. Si el servicio intenta usar mas, el OOM killer lo terminara. MemoryHigh es el limite suave que aplica presion de reclamacion.
Pregunta 5
¿Que mecanismo protege mejor contra una fork bomb?
a) Aumentar kernel.pid_max
b) Establecer un limite hard de nproc en limits.conf
c) Deshabilitar el swap
d) Aumentar la memoria RAM
Respuesta
b) Establecer un limite hard de nproc en limits.conf
Un limite hard de nproc restringe el numero maximo de procesos que un usuario puede crear, impidiendo que una fork bomb consuma todos los PIDs del sistema. Aumentar pid_max solo retrasaria el problema.
Pregunta 6
¿Cual es la diferencia principal entre cgroups v1 y v2?
a) v2 no soporta limites de memoria b) v1 usa una jerarquia unica, v2 usa multiples c) v2 usa una jerarquia unica unificada, v1 usa una jerarquia por controlador d) v2 solo funciona con systemd, v1 funciona de forma independiente
Respuesta
c) v2 usa una jerarquia unica unificada, v1 usa una jerarquia por controlador
En cgroups v1, cada controlador (cpu, memory, etc.) tiene su propia jerarquia independiente. Cgroups v2 unifica todos los controladores en una sola jerarquia, simplificando la gestion.
Pregunta 7
¿Que comando ejecuta un proceso dentro de un cgroup v1 especifico?
a) cgroup-run -g cpu:migrupo /usr/bin/app
b) cgexec -g cpu,memory:migrupo /usr/bin/app
c) cgrun --group cpu,memory:migrupo /usr/bin/app
d) cgstart -g cpu:migrupo /usr/bin/app
Respuesta
b) cgexec -g cpu,memory:migrupo /usr/bin/app
cgexec ejecuta un comando dentro de un cgroup existente. La opcion -g especifica los controladores y el nombre del grupo.
Pregunta 8
¿Que significa CPUQuota=200% en una unidad systemd?
a) El servicio tiene prioridad doble sobre otros b) El servicio puede usar hasta 2 cores de CPU c) La cuota se aplica al 200% del limite normal d) Es un valor invalido, el maximo es 100%
Respuesta
b) El servicio puede usar hasta 2 cores de CPU
CPUQuota se expresa como porcentaje de un core. 100% = 1 core, 200% = 2 cores. En un sistema con 4 cores, el maximo seria 400%.
Pregunta 9
¿Que modulo PAM debe estar habilitado para que los limites de /etc/security/limits.conf se apliquen?
a) pam_ulimit.so
b) pam_limits.so
c) pam_security.so
d) pam_resource.so
Respuesta
b) pam_limits.so
El modulo pam_limits.so lee /etc/security/limits.conf y aplica los limites durante la autenticacion. Debe estar presente como session required pam_limits.so en los archivos PAM correspondientes.
Pregunta 10
¿Que comando de systemd muestra en tiempo real el uso de recursos (CPU, memoria) por cgroup, similar a top?
a) systemd-cgtop
b) systemd-cgls
c) systemctl resource-top
d) cgstats
Respuesta
a) systemd-cgtop
systemd-cgtop muestra en tiempo real el uso de CPU, memoria y I/O de cada cgroup, similar a top pero organizado por cgroups. systemd-cgls muestra la jerarquia en forma de arbol sin datos de uso.
Pregunta 11
En cgroups v2, que archivo dentro del directorio del cgroup define el limite maximo de memoria para el grupo?
a) memory.limit b) memory.max c) memory.hard_limit d) mem.max
Respuesta
b) Correcta
En cgroups v2, memory.max define el limite duro de memoria. Si el grupo supera este valor el OOM killer actua. memory.high es el limite suave que aplica presion de reclamacion antes del limite duro.
Pregunta 12
Que comando de systemd muestra la jerarquia completa de cgroups en forma de arbol?
a) systemd-cgtop b) systemd-cgls c) systemctl cgroup-tree d) systemctl show —cgroup
Respuesta
b) Correcta
systemd-cgls muestra la jerarquia de cgroups en forma de arbol con los procesos asignados a cada grupo. systemd-cgtop muestra el uso de recursos en tiempo real.
Pregunta 13
Que linea en /etc/security/limits.conf limita a 4 el numero maximo de sesiones simultaneas para todos los usuarios?
a) * hard sessions 4 b) * hard maxlogins 4 c) all hard logins 4 d) * soft maxsessions 4
Respuesta
b) Correcta
El item maxlogins en limits.conf controla el numero maximo de sesiones de login simultaneas. Con * hard maxlogins 4 ningún usuario excepto root puede tener mas de 4 sesiones activas.
Pregunta 14
Que directiva de una unidad systemd establece un limite de CPU del 50% de un core para el servicio?
a) CPULimit=50% b) CPUQuota=50% c) CPUMax=50% d) CPUWeight=50
Respuesta
b) Correcta
CPUQuota establece la cuota de CPU como porcentaje de un core. 50% equivale a medio core. Para usar 2 cores completos se usaria CPUQuota=200%. CPUWeight define el peso relativo de planificacion.
Pregunta 15
Que controlador de cgroups v1 limita el numero total de procesos y tareas en el grupo?
a) cpu b) nproc c) pids d) tasks
Respuesta
c) Correcta
El controlador pids en cgroups v1 y v2 limita el numero total de procesos y tareas (threads) que pueden existir en el cgroup. Se configura mediante pids.max en v2.
Pregunta 16
Que opcion de ulimit establece simultaneamente el limite soft y hard para archivos abiertos a 8192?
a) ulimit -n 8192 b) ulimit -SHn 8192 c) ulimit -Hn 8192 y ulimit -Sn 8192 por separado d) ulimit -fn 8192
Respuesta
b) Correcta
La opcion -SH aplica el valor tanto al soft como al hard limit simultaneamente. Sin especificar S o H, ulimit -n solo modifica el soft limit.
Pregunta 17
Que archivo de configuracion de cgroups v1 define la asignacion automatica de procesos de un usuario a un cgroup especifico?
a) /etc/cgconfig.conf b) /etc/cgrules.conf c) /etc/cgroup.conf d) /etc/cgexec.conf
Respuesta
b) Correcta
/etc/cgrules.conf define reglas para asignar automaticamente procesos de usuarios o grupos a cgroups especificos. El formato es: usuario controladores nombre_cgroup. /etc/cgconfig.conf define la estructura de los cgroups.
Pregunta 18
Que valor de CPUQuota en una unidad systemd permite que el servicio use hasta 4 cores de CPU?
a) CPUQuota=4 b) CPUQuota=400% c) CPUQuota=4000m d) CPUQuota=4core
Respuesta
b) Correcta
CPUQuota se expresa como porcentaje de un core: 100% = 1 core, 200% = 2 cores, 400% = 4 cores. En un sistema con 8 cores el maximo seria 800%.
Pregunta 19
Que comando mueve el proceso con PID 1234 al cgroup v1 llamado migrupo con controladores cpu y memory?
a) cgmove -g cpu,memory:migrupo 1234 b) cgclassify -g cpu,memory:migrupo 1234 c) cgroup-set —pid 1234 cpu,memory:migrupo d) cgassign -p 1234 -g cpu,memory:migrupo
Respuesta
b) Correcta
cgclassify mueve un proceso ya en ejecucion a un cgroup existente. A diferencia de cgexec que lanza el proceso directamente en el cgroup, cgclassify reasigna procesos existentes.
Pregunta 20
Que parametro del kernel limita el numero maximo de PIDs que pueden existir simultaneamente en el sistema?
a) kernel.pid_max b) kernel.max_pids c) kernel.nproc_max d) kernel.task_max
Respuesta
a) Correcta
El parametro kernel.pid_max define el limite maximo de identificadores de proceso. El valor por defecto suele ser 32768. Puede ajustarse via sysctl -w kernel.pid_max=valor para entornos con muchos procesos.
Pregunta 21
Que comando muestra en tiempo real el uso de CPU, memoria e I/O de cada cgroup del sistema?
Respuesta
systemd-cgtop
systemd-cgtop es similar a top pero organizado por jerarquia de cgroups. Muestra el consumo de recursos actualizado periodicamente para cada cgroup y sus procesos.
Pregunta 22
Que opcion de ulimit muestra todos los limites actuales tanto soft como hard de la sesion?
Respuesta
ulimit -a
ulimit -a muestra los soft limits. Para ver los hard limits se usa ulimit -Ha. Sin la opcion -H o -S se muestran los soft limits por defecto.
Pregunta 23
Que linea en /etc/security/limits.conf impide que el grupo developers cree mas de 50 procesos?
Respuesta
@developers hard nproc 50
El prefijo @ indica que el dominio es un grupo. hard establece el limite que no puede superarse. nproc controla el numero maximo de procesos por usuario dentro del grupo.
Pregunta 24
Que comando de systemctl aplica un limite de memoria de 256MB a mi-servicio de forma persistente?
Respuesta
systemctl set-property mi-servicio.service MemoryMax=256M
systemctl set-property aplica cambios que por defecto son persistentes (crea archivos drop-in). Con —runtime el cambio es solo temporal hasta el reinicio del servicio.
Pregunta 25
Que archivo de configuracion de systemd se usa para definir limites de recursos para un slice personalizado?
Respuesta
/etc/systemd/system/miapp.slice
Un slice se define como un archivo .slice en /etc/systemd/system/. Dentro del bloque [Slice] se especifican directivas como CPUQuota, MemoryMax y TasksMax para controlar los recursos del grupo.