Red Hat Training
A Red Hat training course is available for RHEL 8
9.4. Papel do sistemad em grupos de controle versão 1
O Red Hat Enterprise Linux 8 move as configurações de gerenciamento de recursos do nível de processo para o nível de aplicação, ligando o sistema de hierarquias cgroup
com a árvore de unidades systemd
. Portanto, você pode gerenciar os recursos do sistema com o comando systemctl
, ou modificando os arquivos da unidade systemd
.
Por padrão, o gerente de sistemas e serviços systemd
faz uso do slice
, das unidades scope
e service
para organizar e estruturar os processos nos grupos de controle. O comando systemctl
permite modificar ainda mais esta estrutura através da criação do slices
personalizado. Além disso, systemd
monta automaticamente hierarquias para importantes controladores de recursos do kernel no diretório /sys/fs/cgroup/
.
Três tipos de unidade systemd
são usados para o controle de recursos:
Service - Um processo ou um grupo de processos, que
systemd
começou de acordo com um arquivo de configuração de unidade. Os serviços encapsulam os processos especificados para que eles possam ser iniciados e parados como um conjunto. Os serviços são nomeados da seguinte forma:<name>.service
Scope - Um grupo de processos criados externamente. Os escopos encapsulam processos que são iniciados e interrompidos pelos processos arbitrários através da função
fork()
e depois registrados porsystemd
em tempo de execução. Por exemplo, sessões de usuários, contêineres e máquinas virtuais são tratados como escopos. Os escopos são nomeados da seguinte forma:<name>.scope
Slice - Um grupo de unidades organizadas hierarquicamente. As fatias organizam uma hierarquia na qual são colocados os escopos e serviços. Os processos reais estão contidos em escopos ou em serviços. Cada nome de uma unidade de fatias corresponde ao caminho para um local na hierarquia. O traço ("-") funciona como um separador dos componentes do caminho para uma fatia da fatia da raiz de
-.slice
. No exemplo a seguir:<parent-name>.slice
parent-name.slice
é uma subplaca deparent.slice
, que é uma subplaca da fatia de raiz de-.slice
.parent-name.slice
pode ter sua própria subplaca chamadaparent-name-name2.slice
, e assim por diante.
As unidades service
, scope
, e slice
mapeiam diretamente os objetos da hierarquia do grupo de controle. Quando estas unidades são ativadas, elas mapeiam diretamente para os caminhos do grupo de controle construídos a partir dos nomes das unidades.
O seguinte é um exemplo abreviado de uma hierarquia de grupo de controle:
Control group /: -.slice ├─user.slice │ ├─user-42.slice │ │ ├─session-c1.scope │ │ │ ├─ 967 gdm-session-worker [pam/gdm-launch-environment] │ │ │ ├─1035 /usr/libexec/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart │ │ │ ├─1054 /usr/libexec/Xorg vt1 -displayfd 3 -auth /run/user/42/gdm/Xauthority -background none -noreset -keeptty -verbose 3 │ │ │ ├─1212 /usr/libexec/gnome-session-binary --autostart /usr/share/gdm/greeter/autostart │ │ │ ├─1369 /usr/bin/gnome-shell │ │ │ ├─1732 ibus-daemon --xim --panel disable │ │ │ ├─1752 /usr/libexec/ibus-dconf │ │ │ ├─1762 /usr/libexec/ibus-x11 --kill-daemon │ │ │ ├─1912 /usr/libexec/gsd-xsettings │ │ │ ├─1917 /usr/libexec/gsd-a11y-settings │ │ │ ├─1920 /usr/libexec/gsd-clipboard … ├─init.scope │ └─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 18 └─system.slice ├─rngd.service │ └─800 /sbin/rngd -f ├─systemd-udevd.service │ └─659 /usr/lib/systemd/systemd-udevd ├─chronyd.service │ └─823 /usr/sbin/chronyd ├─auditd.service │ ├─761 /sbin/auditd │ └─763 /usr/sbin/sedispatch ├─accounts-daemon.service │ └─876 /usr/libexec/accounts-daemon ├─example.service │ ├─ 929 /bin/bash /home/jdoe/example.sh │ └─4902 sleep 1 …
O exemplo acima mostra que os serviços e escopos contêm processos e são colocados em fatias que não contêm processos próprios.
Recursos adicionais
-
Para mais informações sobre
systemd
, arquivos de unidades e uma lista completa desystemd
tipos de unidades, veja as seções relevantes em Configuring basic system settings. -
Para mais informações sobre controladores de recursos, consulte a seção O que são controladores de recursos do kernel e as páginas do manual
systemd.resource-control(5)
,cgroups(7)
. -
Para mais informações sobre
fork()
, consulte as páginas do manualfork(2)
.