cgroups Linux pueden ser utilizados bajo el control de memoria física para una variedad de escenarios, debido a que más lo cgroups, este artículo le dará una breve introducción bajo cgroups Linux, que todos tienen su Una comprensión preliminar.
A partir de la versión 2.6.24 de comenzar, núcleo de Linux proporciona una característica llamada cgroups (grupo control). Cgroups es una abreviatura de grupos de control, que se utiliza para limitar, contar y aislar los recursos ocupados por un grupo de procesos. También es uno de los cimientos de la tecnología de virtualización ligera actual lxc (contenedor de Linux). Cada conjunto de procesos es un grupo de control, que es un cgroup. cgroups dividido en varios subsistemas, cada uno representa una instalación o un controlador de recursos de recursos de programación utilizando un cierto tipo, como reloj de la CPU, la memoria, y otra pieza de equipo. En la realización, cgroups y no hay nuevas llamadas al sistema, pero mostró un sistema de archivos cgroup, se puede poner uno o más subsistemas monta en un directorio. El Sitio
código es el siguiente:
mount -t cgroup -o cpu cpu /sys /fs /cgroup /cpu
subsistemas de la CPU se monta en el directorio /sys /Fs /cgroup /cpu. También se puede montar en un directorio de los subsistemas, o incluso montados todos en un directorio es posible, pero creo que, para cada subsistema se montan en diferentes directorios tienen una mejor flexibilidad. Utilizar montaje |
awk y lsquo; $ 5 == " cgroup y " {print $ 0} ’ ver grupo de control montado actualmente. Utilice cat /proc /cgroups para ver el estado de todos los grupos de control actuales. La siguiente secuencia de comandos puede montar todos los subsistemas en sus respectivos directorios.
El código es el siguiente:
#! /Bin /bash "/p" "p" cgroot = " $ {1: - /sys /fs /cgroup} "
SUBSYS = " $ {2: CPU -blkio dispositivos cpuacct cpuset congelador net_cls memoria net_prio ns perf_event} " "/p" "p" mount -t tmpfs cgroup_root y " $ {} cgroot y "
para SS en $ SUBSYS; hacer
mkdir -p y " $ cgroot /$ ss y "
mount -t cgroup -o y " $ ss y " " $ ss y " " $ cgroot /$ ss y "
hecho
Mira los directorios que son un poco embarazosos, como ls /sys /fs /cgroup /cpu.
código es el siguiente:
cgroup.event_control cpu.cfs_period_us cpu.rt_period_us cpu.shares notify_on_release tareas
cgroup.procs cpu.cfs_quota_us cpu.rt_runtime_us cpu.stat release_agent
Donde <; cpu. " comienza con algo específico de este subsistema. Los otros están en el directorio correspondiente a cada subsistema. Estos archivos se utilizan para leer la información de uso de recursos y las restricciones de recursos. Para crear un grupo de control, cree un directorio en el subsistema deseado. Por ejemplo, mkdir /sys /fs /cgroup /cpu /foo crea un grupo de control para /foo. El mismo conjunto de archivos aparecerá en el directorio recién creado. En este directorio, puede continuar creando cgroups creando directorios. En otras palabras, cgroups puede ser tan jerárquico como la estructura de directorios. Montar un directorio de puntos con cada subsistema es equivalente al directorio raíz. Cada ruta diferente representa un cgroup diferente. En diferentes subsistemas, la misma ruta representa el mismo grupo de control. Por ejemplo, la CPU, la memoria, tanto en directorio /bar foo que se puede utilizar /foo /bar operados CPU, memoria dos subsistemas. Para el mismo subsistema, cada proceso pertenece y pertenece a solo un cgroup, y el valor predeterminado es el cgroup raíz. La jerarquía facilita la organización y gestión de los grupos de control. Para algunos elementos de configuración, la jerarquía también está relacionada con la asignación de recursos. Alternativamente, puede modificar el propietario de un directorio para que los usuarios no root también puedan operar en ciertos grupos de seguridad.
La configuración y lectura de cgroups se realiza leyendo y escribiendo esos archivos. Por ejemplo
código es el siguiente:
2048 # echo "/sys/fs/cgroup/cpu/foo/cpu.shares
put /cpu foo del grupo de control. El parámetro de acciones está configurado en 2048.
Como se mencionó anteriormente, algunos archivos son comunes a todos los directorios. Esos son los ajustes universales. Entre ellas, las tareas y cgroups.procs se utilizan para administrar procesos en el grupo de control. Para agregar un proceso a un grupo de control, escriba el pid en el archivo de tareas en el directorio apropiado. El Sitio
código es el siguiente:
5678 # echo "/sys /fs /cgroup /cpu /foo /tareas
se añade al proceso de poner grupo de control 5678 /foo. Entonces, ¿cuál es la diferencia entre tareas y cgroups.procs? Las restricciones de gestión en el "proceso" mencionado anteriormente en realidad no son lo suficientemente precisas. La unidad que el sistema programa para las tareas es hilos. Aquí, lo que ves en las tareas es el ID de hilo. El cgroups.procs es el id del grupo de hilos, que también se conoce como el id del proceso. A pid general escrito a las tareas, sólo la rosca correspondiente pid, así como otros procesos generados por el mismo, pertenece a la rosca grupo de control, otros hilos no son originales. Escribir en cgroups.procs agregará todos los subprocesos actuales. Si los cgroups.procs escritura no es un identificador de grupo de hilos, sino un ID del tema general, se encontrará automáticamente el ID del grupo de hilos que corresponde a participar. Después de que un proceso se une a un grupo de control, las restricciones correspondientes al grupo de control surten efecto inmediatamente. Para saber a qué grupo de control pertenece un proceso, puede verlo por cat /proc /"pid" /cgroup.
Para mover el proceso fuera del grupo de control, escriba el pid en el archivo de tareas del cgroup raíz. Debido a que cada proceso pertenece y pertenece a solo un cgroup, después de agregar el nuevo cgroup, se libera la relación original. Para eliminar un cgroup, puede usar rmdir para eliminar el directorio correspondiente. Pero antes de eliminar, debe dejar que se retiran del proceso, se han dado a conocer los recursos del subsistema correspondientes, de lo contrario no se puede eliminar.
Anteriormente, los cgroups se manipulaban mediante el acceso al sistema de archivos. De hecho, también hay un conjunto de herramientas de línea de comandos.
lssubsys -AM puede ver el punto de montaje de los subsistemas, así como un conjunto de y " CG " el principio del comando se puede utilizar para administrar. Donde cgexec se puede usar para ejecutar un programa directamente en un grupo de control específico en algunos subsistemas. Como cgexec -g " cpu, blkio: /foo " bash. Otros comandos y parámetros específicos pueden ser vistos por el hombre.
Aquí es una versión de la cgexec fiesta, demuestra el uso de cgroups, y también se puede utilizar en casos de incertidumbre acerca de si la herramienta de instalación de línea de comandos.
El código es el siguiente:
#! /bin /bash "/p" "p" # uso:
#. /cgexec.sh CPU: G1, memoria: G2 /G21 sueño 100 "/p" "p" blkio_dir = " /sys /fs /cgroup /blkio y "
memory_dir = " /sys /fs /cgroup /memoria y "
cpuset_dir = " /sys /fs /cgroup /cpuset y "
perf_event_dir = " /sys /fs /cgroup /perf_event y "
freezer_dir = y " /sys /fs /cgroup /congelador y "
net_cls_dir = " /sys /fs /cgroup /net_cls y "
cpuacct_dir = " /sys /fs /cgroup /cpuacct y "
cpu_dir = " /sys /fs /cgroup /cpu y "
hugetlb_dir = " /sys /fs /cgroup /hugetlb y "
devices_dir = " /sys /fs /cgroup /dispositivos y " "grupos = " $ 1 y "
de cambio" P "/p" "/p" "P" IFS = ‘, ’ g_arr = ($ grupos)
para g en $ {g_arr [@]}; hacer
IFS = ‘: y rsquo; g_info = ($ g)
si [$ {# g_info [@]} -ne 2]; a continuación,
echo " malo arg $ g " "&2
continuar
fi
g_name = $ {g_info [0]}
g_path = $ {g_info [1]}
Si [" $ g_path y " == y " $ { g_path # /} "]; a continuación,
g_path = " /$ g_path y "
fi
echo $ g_name $ g_path
var = " $ {g_name} _dir "
d = $ {! var}
if [-z y " $ d "]; a continuación,
Echo " malo cg $ nombre g_name y " "&2
continuar
fi
ruta = " $ {d} $ {} g_path y "
if [! -d y " $ trayectoria y "]; a continuación,
Echo " cg no existe y " "&2
continuar
fi
Echo " $$ y " "" $ {ruta} /tareas "
hecho" /p "" p "exec $ *
la descripción anterior se relaciona con la cgroups Linux, cgroups proporcionar múltiples funciones, este artículo sólo se describen algunos conceptos básicos cgroups, si usted quiere saber más cgroups, permanece atento a los sistemas de sitio de origen.
El sistema Linux en el sitio web tiene problemas, puede reiniciar la base de datos de Oracle para pr
Como administrador del sistema Linux, debe administrar los permisos de los usuarios y grupos de Linu
Después de instalar el sistema Debian en la notebook de HP, el sonido tiene un problema, la mayoría
Bajo el sistema Linux, puede usar el comando de historial para ver el historial de
Cómo instalar Linux para configurar la base de datos MariaDB
Cómo utiliza Linux el comando setfacl para crear archivos de permisos
Cómo configurar la fuente yum en el sistema CentOS
Cómo actualizar el sistema Ubuntu al kernel 4.x
¿Qué debo hacer si la resolución de la pantalla de inicio de sesión de Ubuntu es demasiado alta?
Cómo Linux establece IPMI a través de la línea de comandos
El método para instalar el comando whois en el sistema CentOS
¿Qué debo hacer si se pierde el archivo inittab del sistema Linux?
Ejemplo de operación de instalación automática de Linux
Linux eliminar habilidades de operación de archivos ilegibles
22 consejos básicos para Windows 7
Permita que el escritorio remoto de Windows XP juegue también con la administración multiusuario
Fácil de recuperar la contraseña de inicio de sesión del sistema xp. Raiders
¿Cómo modificar la imagen en lotes? Ps batch modificar imagen tutorial
Tienda de aplicaciones de Windows 8 perdió ningún problema resuelto
Actualización de aniversario de Windows 10 no se puede cerrar Cortana Qué hacer
Enséñele a usar su propia foto para crear un paquete de tema de Win 7 con personalidad
El sistema Windows 7 le ofrece un Game Manager
Win7 Ultimate usa la actualización de novato al maestro; debe ver
¿Cuándo se lanzará la versión oficial del sistema de teléfono móvil Win10? No hay drama