GNU/Linux >> Belajar Linux >  >> Linux

Mengapa top menunjukkan jumlah core yang berbeda dari cpuinfo?

X5560 adalah chip tunggal . Tampilannya seperti ini:

grep "physical id" memberi tahu Anda bahwa Anda memiliki SATU prosesor fisik yang terpasang.

Jika Anda melepas penyebar panas dari atas, Anda dapat melihat ini - satu mati fisik (menghadap ke bawah) :

Jika Anda dapat melepaskan dadu itu dan membaliknya, akan terlihat seperti ini :

Pada die fisik tunggal itu ada empat inti CPU fisik dibangun di atas silikon :

grep "cpu cores" memberi tahu Anda bahwa prosesor Anda memiliki empat inti fisik yang terpasang di dalamnya.

Setiap inti adalah prosesor tunggal dengan unit titik mengambang, sejumlah unit eksekusi bilangan bulat, sepasang tumpukan register, dan beberapa sihir lain yang memungkinkan setiap inti tunggal untuk secara efektif mengeksekusi dua aliran instruksi independen (utas) pada satu waktu.

top memberi tahu Anda bahwa semua prosesor dan inti di komputer Anda, secara kolektif, dapat menjalankan delapan alur kerja independen sekaligus - ini memberi tahu Anda bahwa sistem operasi dapat menjadwalkan delapan utas simultan untuk dieksekusi pada waktu tertentu.


CPU apa yang Anda gunakan? Berapa banyak utas yang ada per inti fisik?

cat /proc/cpuinfo menunjukkan jumlah inti fisik sedangkan top menunjukkan total tidak ada utas yang ada.

Saya pikir CPU Anda memiliki 4 inti fisik dan 2 inti logis per inti fisik. Jadi top menampilkan 8.

Apalagi isi /proc/cpuinfo agak bergantung pada implementasi. Seperti di Android Shell yang di-root, cpuinfo file tidak mengandung istilah apa pun cpu cores .

Namun di cpuinfo setiap utas diberi nama processor : X , Dimana X adalah benang no. Jadi utas terakhir tidak akan sama dengan top/htop keluaran.

Hasil dari nproc --all juga harus konsisten dengan top/htop


top menunjukkan satu "CPU" per CPU logis; pada x86, itu adalah produk dari jumlah soket dalam sistem, dengan jumlah inti fisik per soket, dengan jumlah utas per inti.

cpu cores entri di /proc/cpuinfo , sekali lagi di x86, menunjukkan jumlah inti fisik. Untuk mengetahui jumlah core logis, seperti yang digunakan di top , Anda harus melihat siblings nilai sebagai gantinya:

cat /proc/cpuinfo | grep "siblings" | uniq

Ini dijelaskan secara rinci dalam dokumentasi kernel.

lscpu memberikan informasi tentang CPU yang diinstal yang lebih mudah dipahami daripada /proc/cpuinfo (atau lebih tepatnya, menyajikan informasi yang sama dengan cara yang lebih sederhana).


Linux
  1. Mengapa Find -mtime +1 Hanya Mengembalikan File Lebih Lama dari 2 Hari?

  2. Linux – Mengapa Linux Menampilkan Memori Lebih Banyak Dan Lebih Sedikit Daripada Yang Saya Instal Secara Fisik?

  3. Mengapa `menemukan . -type F` Lebih Lama Dari `find .`?

  1. Mengapa `keluar &` Tidak Berfungsi?

  2. Mengapa Ls -l Menghasilkan Ukuran Yang Berbeda Dari Ls -s?

  3. Mengapa Linux menggunakan partisi swap daripada file?

  1. Mengapa ID Lun World Wide Dimulai dengan Angka 3 di Linux dm-multipath

  2. Mengapa uniq menghitung kata yang identik sebagai berbeda?

  3. Mengapa sistem saya hanya menampilkan RAM 3,2 GiB padahal saya pasti memiliki 4,0 GiB