Perintah "atas" dapat membantu dalam hal ini, ia tidak memiliki daftar utas yang dikelompokkan CPU, tetapi Anda dapat melihat daftar utas (mungkin untuk satu proses) dan inti CPU mana yang dijalankan oleh utas
top -H -p {PROC_ID}
lalu tekan f untuk masuk ke pemilihan kolom, j untuk mengaktifkan kolom inti CPU, dan Enter untuk ditampilkan.
Anda juga dapat menggunakan ps
, sesuatu seperti ini:
ps -mo pid,tid,%cpu,psr -p `pgrep BINARY-NAME`
Jawaban di bawah tidak lagi akurat mulai tahun 2014
Tugas tidak tidur di inti tertentu. Dan penjadwal tidak akan tahu sebelumnya inti mana yang akan menjalankan utas karena itu akan bergantung pada penggunaan inti tersebut di masa mendatang.
Untuk mendapatkan informasi yang Anda inginkan, lihat di /proc/
31466 (bc) S 31348 31466 31348 34819 31466 4202496 2557 0 0 0 5006 16 0 0 20 0 1 0 10196934 121827328 1091 18446744073709551615 4194304 4271839 140737264235072 140737264232056 217976807456 0 0 0 137912326 18446744071581662243 0 0 17 3 0 0 0 0 0
Saat ini tidak berjalan. Terakhir dijalankan pada core 3.
31466 (bc) R 31348 31466 31348 34819 31466 4202496 2557 0 0 0 3818 12 0 0 20 0 1 0 10196934 121827328 1091 1844674073726 02409426.2240926 0 0 0 0 0
Saat ini berjalan pada core 2.
Untuk melihat apa arti kolom lainnya, lihat sumber kernel Linux -- khususnya do_task_stat
fungsi di fs/proc/array.c
atau Documentation/filesystems/stat.txt
.
Perhatikan bahwa semua informasi ini mungkin sudah usang pada saat Anda mendapatkannya. Memang benar di beberapa titik antara saat Anda membuat open
panggil file di proc dan saat panggilan itu kembali.
Utas tidak diperlukan untuk mengikat satu Inti tertentu (jika Anda tidak menyematkannya). Oleh karena itu untuk melihat pergantian inti yang berkelanjutan, Anda dapat menggunakan (jawaban yang dimodifikasi dari Dmitry):
watch -tdn0.5 ps -mo pid,tid,%cpu,psr -p \`pgrep BINARY-NAME\`
Misalnya:
watch -tdn0.5 ps -mo pid,tid,%cpu,psr -p \`pgrep firefox\`