Bagaimana saya dapat mengatur afinitas prosesor dari suatu proses di Linux?


29

Bagaimana saya dapat mengatur afinitas prosesor dari suatu proses di Linux?

Jawaban:


24

Saya telah menggunakan tasket untuk ini. Jika Anda menginstal tasket, sesuatu seperti:

taskset -c 1,3 -p 45678

akan mengatur proses dengan id 45678 untuk memiliki afinitas dengan CPU 1 dan 3.


1
Hasil edit anonim menyarankan bahwa perintah itu harus taskset -p -c 1,3 45678daripada taskset -c 1,3 -p 45678; yaitu, bahwa spesifikasi topeng-c 1,3 adalah dan, dengan demikian, harus ditempatkan di antara dan . -ppid
G-Man Mengatakan 'Reinstate Monica'

7

Di dalam proses, panggilan akan sched_setaffinity(), atau untuk hal-hal pthreads,pthread_setaffinity_np()

Pada catatan terkait, jika Anda khawatir tentang afinitas CPU dari program Anda, mungkin ada baiknya untuk memperhatikan bagaimana ia melakukan alokasi memori juga. Sistem yang lebih besar dengan memori yang terpasang pada lebih dari satu pengontrol (yaitu beberapa soket CPU, masing-masing dengan soketnya sendiri) akan memiliki latensi variabel dan bandwidth antara pasangan CPU-memori yang berbeda. Anda juga ingin melihat afinitas NUMA, menggunakan numactlperintah atau panggilan sistem yang berfungsi. Satu program yang saya kerjakan mendapat peningkatan kinerja 10% dari ini.


3

Anda perlu menginstal schedutils(utilitas penjadwal Linux). Saya telah menggunakannya di Desktop Ubuntu saya.

Tautan SF


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.