GNU/Linux >> Znalost Linux >  >> Cent OS

Jak ovládat prostředek (cgroup) pomocí systemd pro skupinu uživatelských procesů v CentOS/RHEL 7

Základy

RHEL7 posouvá nastavení správy prostředků z úrovně procesu na úroveň aplikace tím, že sváže systém hierarchií cgroup se stromem jednotek systemd. Starý způsob konfigurace cgroup pomocí úprav několika /etc/cg*.conf soubory jsou stále dostupné, ale již se nedoporučuje.

Systemd nabízí tři typy jednotek (slice , rozsah , služba ), které se používají pro účely řízení zdrojů.

Obsluha cgroup se servisní jednotkou systemd

1. Upravte servisní jednotku pro vaši službu v /etc/systemd/system , pokud vaše služba nemá systémovou servisní jednotku. Pro správu vaší služby musíte vytvořit start/stop skript.

# cat /etc/systemd/system/mytask.service
[Unit]
Description= **
After=remote-fs.target nss-lookup.target

[Service]
ExecStart=/root/start_process.sh
ExecStop=/root/stop_process.sh

[Install]
WantedBy=multi-user.target

2. Ovládejte zdroj pomocí příkazového řádku (jako příklad převezměte kontrolu nad kvótou procesoru 60%)

# systemctl set-property mytask CPUQuota=60%

Ve výchozím nastavení podporuje pouze následující atributy prostřednictvím příkazu set-property.

AccuracySec=            CPUQuota=               KillMode=               LimitLOCKS=             LimitRTPRIO=            SendSIGHUP=
BlockIOAccounting=      CPUShares=              KillSignal=             LimitMEMLOCK=           LimitRTTIME=            SendSIGKILL=
BlockIODeviceWeight=    DefaultDependencies=    LimitAS=                LimitMSGQUEUE=          LimitSIGPENDING=        User=
BlockIOReadBandwidth=   DeviceAllow=            LimitCORE=              LimitNICE=              LimitSTACK=             WakeSystem=
BlockIOWeight=          DevicePolicy=           LimitCPU=               LimitNOFILE=            MemoryAccounting=       
BlockIOWriteBandwidth=  Environment=            LimitDATA=              LimitNPROC=             MemoryLimit=            
CPUAccounting=          Group=                  LimitFSIZE=             LimitRSS=               Nice=      

3. Pokud chcete nastavit atribut, který není uveden výše, můžete použít následující metodu.

# echo 70 > /sys/fs/cgroup/memory/system.slice/httpd.service/memory.swappiness

Nebo ovládejte zdroj úpravou souborů servisních jednotek

# cat /etc/systemd/system/mytask.service
[Unit]
Description= **
After=remote-fs.target nss-lookup.target

[Service]
CPUQuota=90%
MemoryLimit=1500000
ExecStartPre=/bin/bash -c '/bin/echo 70 > /sys/fs/cgroup/memory/system.slice/httpd.service/memory.swappiness'
#ExecStartPost
ExecStart=/root/start_process.sh
ExecStop=/root/stop_process.sh

[Install]
WantedBy=multi-user.target

4. Znovu načtěte konfiguraci správce systemd a spusťte službu

# systemctl daemon-reload   
# systemctl start mytask


Cent OS
  1. Jak restartovat síťovou službu na CentOS 8 nebo RHEL 8

  2. CentOS / RHEL 7 :Jak změnit úrovně běhu (cíle) pomocí systemd

  3. CentOS / RHEL 7 :Jak nakonfigurovat sériové getty pomocí systemd

  1. Jak nastavit afinitu CPU pro proces SYSTEMD v CentOS/RHEL 7

  2. Jak nastavit proměnné prostředí pro službu systemd v CentOS/RHEL 7

  3. Jak nastavit limity zdrojů pro proces s Systemd v CentOS/RHEL 7 a 8

  1. CentOS / RHEL 7:Průvodce pro začátečníky systemd

  2. Jak ladit proces spouštění systemd v CentOS/RHEL 7 a 8

  3. Jak ladit proces spouštění systemd v CentOS/RHEL 7 a 8