GNU/Linux >> Belajar Linux >  >> Linux

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

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

taskset -cp 0,2 45678

akan menyetel proses dengan id 45678 agar memiliki kedekatan dengan cpus 1 dan 3.


Di dalam proses, panggilannya adalah sched_setaffinity() , atau untuk hal-hal pthreads, pthread_setaffinity_np()

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


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

Tautan SF


Linux
  1. Bagaimana cara mengatur afinitas CPU untuk proses dari C atau C++ di Linux?

  2. Bagaimana cara mengatur nama utas di Linux pthreads?

  3. Bagaimana cara mengatur direktori kerja dari proses induk?

  1. Bagaimana saya bisa mendapatkan status keyboard di Linux?

  2. Bagaimana saya bisa mengatur 'backend' di matplotlib dengan Python?

  3. Cara mengatur alamat IP dari C di linux

  1. Linux – Bagaimana Cara Mengatur Afinitas Prosesor Suatu Proses Di Linux?

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

  3. Bagaimana cara membatasi proses ke satu inti CPU di Linux?