Red Hat Training

A Red Hat training course is available for RHEL 8

20.3.6. Mudando a prioridade dos serviços durante o processo de inicialização

Usando o serviço systemd, é possível estabelecer prioridades em tempo real para os serviços lançados durante o processo de inicialização. O unit configuration directives é usado para alterar a prioridade de um serviço durante o processo de inicialização.

A mudança de prioridade do processo de inicialização é feita utilizando as seguintes diretrizes na seção de serviços:

CPUSchedulingPolicy=
Define a política de programação da CPU para os processos executados. É utilizada para definir as políticas other, fifo e rr.
CPUSchedulingPriority=
Define a prioridade de programação da CPU para os processos executados. A faixa de prioridade disponível depende da política de agendamento de CPU selecionada. Para políticas de programação em tempo real, um número inteiro entre 1 (prioridade mais baixa) e 99 (prioridade mais alta) pode ser usado.

O procedimento seguinte descreve como alterar a prioridade de um serviço, durante o processo de inicialização, utilizando o serviço mcelog.

Pré-requisitos

  1. Instale o pacote sintonizado:

    # yum instalar afinado
  2. Habilitar e iniciar o serviço sintonizado:

    # systemctl habilitado --agora sintonizado

Procedimento

  1. Veja as prioridades de agendamento dos fios em execução:

    # tuna --show_threads
                          thread       ctxt_switches
        pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
      1      OTHER     0     0xff      3181          292         systemd
      2      OTHER     0     0xff       254            0        kthreadd
      3      OTHER     0     0xff         2            0          rcu_gp
      4      OTHER     0     0xff         2            0      rcu_par_gp
      6      OTHER     0        0         9            0 kworker/0:0H-kblockd
      7      OTHER     0     0xff      1301            1 kworker/u16:0-events_unbound
      8      OTHER     0     0xff         2            0    mm_percpu_wq
      9      OTHER     0        0       266            0     ksoftirqd/0
    [...]
  2. Criar um arquivo de diretório de configuração de serviços suplementar mcelog e inserir o nome e a prioridade da política neste arquivo:

    # cat <<-EOF > /etc/systemd/system/mcelog.system.d/priority.conf
    
    >
    [SERVICE]
    CPUSchedulingPolicy=_fifo_
    CPUSchedulingPriority=_20_
    EOF
  3. Recarregar a configuração dos scripts do sistema:

    # systemctl daemon-reload
  4. Reinicie o serviço de mcelog:

    # systemctl restart mcelog

Etapas de verificação

  • Exibir a prioridade mcelog definida pela edição systemd:

    # tuna -t mcelog -P
    thread       ctxt_switches
      pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
    826     FIFO    20  0,1,2,3        13            0          mcelog

Recursos adicionais

  • Para mais informações, consulte as páginas de homem de systemd e tuna.
  • Para obter mais informações sobre a faixa de prioridade, consulte Descrição da faixa de prioridade.