GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membatasi proses ke satu inti CPU di Linux?

Di Linux, jalankan sched_setaffinity panggilan sistem. Afinitas suatu proses adalah sekumpulan prosesor yang dapat menjalankannya. Ada pembungkus shell standar:taskset . Misalnya, untuk menyematkan proses ke CPU #0 (Anda harus memilih CPU tertentu):

taskset -c 0 mycommand --option  # start a command with the given affinity
taskset -c -pa 0 1234            # set the affinity of a running process

Ada modul pihak ketiga untuk kedua Perl (Sys::CpuAffinity ) dan Python (affinity ) untuk mengatur afinitas proses. Keduanya bekerja di Linux dan Windows (Windows mungkin memerlukan modul pihak ketiga lainnya dengan Sys::CpuAffinity ); Sys::CpuAffinity juga berfungsi pada beberapa varian unix lainnya.

Jika Anda ingin menyetel afinitas proses sejak kelahirannya, setel afinitas proses saat ini segera sebelum memanggil execve . Inilah pembungkus sepele yang memaksa proses untuk dieksekusi pada CPU 0.

#!/usr/bin/env perl
use POSIX;
use Sys::CPUAffinity;
Sys::CpuAffinity::setAffinity(getpid(), [0]);
exec $ARGV[0] @ARGV

Anda juga dapat membangun cpu-set di baris perintah. man cpuset Nanti Anda dapat menetapkan (menjalankan) proses untuk ini.


Linux
  1. Cara menginstal vtop di Linux

  2. Linux – Bagaimana Membatasi Proses Ke Satu Cpu Core Di Linux??

  3. Cara Mengatur Variabel $Path di Linux

  1. Cara Mengatur Afinitas CPU untuk Proses SISTEM di CentOS/RHEL 7

  2. Proses latar belakang di linux

  3. Cara mengatur ID proses di Linux untuk program tertentu

  1. Cara mematikan proses zombie di Linux

  2. Cara Membatasi Penggunaan CPU Suatu Proses Di Linux

  3. Bagaimana saya bisa mengatur afinitas prosesor dari suatu proses di Linux?