Démarrer un processus avec une politique de planification sous Linux

Les types de stratégies de planification et leurs descriptions sortent du cadre de cet article. (Il peut être ajouté plus tard)

Comment démarrer un processus avec une politique de planification

Utilisez la commande chrt. Spécifiez FIFO avec -f.

$ sudo  chrt -f 38 yes > /dev/null &

Confirmation de la politique.

$ sudo chrt -p 32407
pid 32407's current scheduling policy: SCHED_OTHER
pid 32407's current scheduling priority: 0

Ensuite, c'est SCHED_OTHER. Pourquoi···

Recherche supplémentaire

$ sudo chrt -f 1 yes > /dev/null &

La politique de planification affichée par chrt -p et la politique de planification affichée par cls de la commande ps sont différentes. (FF doit être SCHED_FIFO)

$ ps -C yes -o comm,pid,ppid,cls,rtprio,%cpu
COMMAND           PID  PPID CLS RTPRIO %CPU
yes             27629 27628  FF      1 94.2
$
$ chrt -p 27629
pid 27629's current scheduling policy: SCHED_OTHER
pid 27629's current scheduling priority: 0

Pourquoi···

Conversation silencieuse

Les deux processus suivants exécutant le même programme (1) Un processus dans lequel le processus SCHED_FIFO est changé en SCHED_OTHER par chrt. (2) Processus SCHED_OTHER

En regardant la sortie de top, les deux ont à peu près la même utilisation du processeur.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  626 ec2-user  20   0  132m 7088 4304 R 49.8  0.7   7:53.42 cpu_bound.py
  722 ec2-user  20   0  132m 6980 4196 R 49.8  0.7   3:45.94 cpu_bound.py

En vérifiant avec la commande ps, l'utilisation du processeur est biaisée comme indiqué ci-dessous.

[ec2-user@ip-172-21-0-185 experiment]$ ps -C cpu_bound.py -o comm,pid,ppid,cls,rtprio,pri,ni,%cpu
COMMAND           PID  PPID CLS RTPRIO PRI  NI %CPU
cpu_bound.py      626 26292  TS      -  19   0 69.1
cpu_bound.py      722 26292  TS      -  19   0 35.4

Pourquoi··· De plus, il est mystérieux que le total de% CPU dépasse 100.

Recommended Posts

Démarrer un processus avec une politique de planification sous Linux
Exécutez un serveur Linux avec GCP
Créer un environnement Linux sur Windows 10
PBR (Policy Base Routing) sur Linux
Créer une image de conteneur Docker avec JRE8 / JDK8 sur Amazon Linux
Procédure de création d'un environnement Kube sur Amazon Linux2 (AWS) ~ (avec bonus)
Assembleur X86 sous Linux (lien avec C)
Construisez un serveur WebDAV simple sur Linux
Un mémo contenant Python2.7 et Python3 dans CentOS
[C] [python] Lire avec AquesTalk sous Linux
Faire de Unity Accelerator un service sous Linux
Lancer une demande avec un certificat sur httpie
Processus Linux
Créez un environnement CentOS Linux 8 avec Docker et démarrez Apache HTTP Server
Construire un serveur Samba sur Arch Linux
Exécuter un lot de Python 2.7 avec nohup sur Amazon Linux AMI sur EC2
[Linux] Créer un environnement Jenkins avec Docker
Remarques sur l'activation de PostgreSQL avec Django
Créer une zone d'écriture permanente sur Kali Linux démarré à partir d'une clé USB
Créer une machine virtuelle Linux sous Windows
Exécutez Linux avec l'architecture ARM à l'aide de QEMU
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
Démarrez un serveur http temporaire localement avec Pytest
Créez un environnement WardPress sur AWS avec Pulumi
Essayez Tensorflow avec une instance GPU sur AWS
Configurer Golang avec goenv sur GNU / Linux
Créez un environnement python avec ansible sur centos6
Démarrez Django dans un environnement virtuel à l'aide de Pipenv
Démarrez un serveur Web Python simple avec Docker
Planification des tâches un peu avancée avec AP Schuler
Essayez de créer une nouvelle commande sous Linux
Monter le répertoire d'un autre serveur avec sshfs
Décrypter une chaîne chiffrée sur iOS avec Python
Installez PHP série 7 sur Amazon Linux 2 avec Amazon Linux Extras
Insérer un processus fixe après SELECT avec SQL Alchemy
Visualiser grib2 sur une carte avec python (matplotlib)
Créez des serveurs sur Linux et des réseaux locaux avec Raspberry Pi NextCloud et le partage de bureau
Spécifiez le volume sous Linux et jouez le son
Créez un code QR pour l'URL sous Linux
Commande Yum pour accéder à MySQL avec Python 3 sous Linux
Comment installer Linux sur un PC UEFI 32 bits
Faire un point d'arrêt sur la couche c avec python
[Partie 2] Construisons un serveur Web avec EC2 Linux
J'ai créé un environnement Python3 sur Ubuntu avec direnv.
Configurer Docker sur Oracle Linux (7.x) avec Vagrant
Retour sur la création d'un service Web avec Django 2
[Partie 1] Configurons un serveur Micra sur Linux
Remarques sur l'accélération du code Python avec Numba
Déployer l'application Django créée avec PTVS sur Azure
Lancer Django sur un conteneur Docker à l'aide de docker-compose up
Décompressez un fichier ZIP de plus de 4 Go sous Linux.
Remarques sur la création d'un environnement virtuel avec Anaconda Navigator
Une histoire sur un débutant Linux mettant Linux sur une tablette Windows