GNU/Linux >> Belajar Linux >  >> Linux

Menentukan prosesor tertentu di mana proses sedang berjalan

ps dapat memberi Anda informasi itu jika Anda meminta psr kolom (atau gunakan -F bendera yang menyertakannya).

Contoh:

$ ps -F $$
UID        PID  PPID  C    SZ   RSS PSR STIME TTY      STAT   TIME CMD
me        6415  6413  0  5210  2624   2 18:52 pts/0    SN     0:00 -su

Atau:

$ ps -o pid,psr,comm -p $$
  PID PSR COMMAND
 6415   0 bash

Shell saya berjalan di CPU 2 saat saya menjalankan perintah pertama, di CPU 0 saat saya menjalankan perintah kedua. Berhati-hatilah karena proses dapat mengubah CPU dengan sangat cepat sehingga informasi yang sebenarnya Anda lihat pada dasarnya sudah basi.

Beberapa info lebih lanjut dalam jawaban pertanyaan Pengguna Super ini:

Linux:perintah untuk mengetahui nomor prosesor tempat proses dimuat?


Dengan top dari procps (umumnya default pada distribusi Linux saat ini), di top , tekan f , buka P = Last User CPU (SMP) dan tekan Spasi untuk memilih (Anda juga dapat memindahkan bidang misalnya sebelum COMMAND dengan Kanan tombol dan kemudian bergerak ke atas dan ke bawah). q untuk kembali ke layar utama (di mana Anda akan melihat proses Anda berpindah dari prosesor ke prosesor kecuali Anda secara eksplisit mengonfigurasinya untuk tetap menggunakan satu). Anda dapat menekan W untuk menyimpannya sebagai default.

Tekan ? untuk bantuan.


Perintah taskset adalah yang Anda cari:

set tugas - mengambil atau menyetel afinitas CPU proses

Contoh

$ taskset -p 12345
pid 12345's current affinity mask: f

Topeng f berarti semua prosesor, 0x00000001 akan hanya prosesor 0.

$ taskset -c -p 24389 
pid 24389's current affinity list: 0-3

Menunjukkan cpu dalam format daftar. Saya memiliki 4 inti di laptop saya dalam contoh ini.

Lihat halaman manual memiliki detail lebih lanjut.


Linux
  1. 4 Cara Mengetahui Core CPU yang menjalankan Proses tertentu di Linux

  2. Proses Yang Memiliki Pid 0?

  3. Bagaimana Mengidentifikasi Proses Yang Tidak Memiliki Pid?

  1. Bagaimana Menemukan Id Proses (pid) Dari Program Terminal yang Berjalan?

  2. Bagaimana cara mendapatkan argumen baris perintah diteruskan ke proses yang sedang berjalan pada sistem unix/linux?

  3. Bagaimana cara mematikan proses yang berjalan pada port tertentu di Linux?

  1. Temukan Waktu Eksekusi Perintah Atau Proses Di Linux

  2. Nama proses dari pidnya di linux

  3. Variabel lingkungan dari proses yang berjalan di Unix?