Di Linux, bagaimana cara mengetahui berapa inti dari mesin yang aktif?


13

Di Linux, bagaimana cara mengetahui berapa inti dari mesin yang aktif? Saya menganggap tes untuk ini akan bekerja untuk Android juga. Saya perlu tahu apakah lebih dari satu inti pernah aktif. Sedang bertanya-tanya untuk menguji ini dengan memiliki proses membuat banyak utas. Apakah mungkin utas untuk menanyakan prosesor yang aktif? dengan cara itu orang dapat mengetahui apakah banyak core akan pernah digunakan di bawah beban berat. Tidak yakin apakah saya di jalur yang benar.


Dengan "aktif", saya anggap Anda maksud berapa core yang sedang digunakan? Atau maksud Anda berapa inti yang dimiliki sistem?
Mikel

ya, saya ingin memberi tahu berapa banyak yang sedang digunakan

Jawaban:


19

Anda dapat menggunakan topdaftar pemanfaatan masing-masing inti. Tekan 1 jika perlu untuk membagi baris CPU menjadi baris terpisah untuk setiap inti.

Anda juga dapat menambahkan kolom yang menunjukkan inti yang terakhir digunakan untuk setiap proses. Tekan f untuk memunculkan daftar bidang, lalu j untuk mengaktifkan kolom "P". Kemudian tekan spasi untuk kembali ke tampilan langsung.


Jadi mungkin saya harus menulis dan menjalankan program yang memunculkan banyak utas dan kemudian menjalankan perintah 'atas' di konsol?
likejudo

Saya pikir itu harus berhasil. Cukup tekan H saat Anda masuk topke daftar utas secara terpisah. Atau Anda bisa menulis sebuah program dengan loop tak terbatas dan menjalankannya beberapa kali.
Brian

Katakanlah, saya menulis program untuk menelurkan 100 utas, masing-masing melakukan beberapa perhitungan yang panjang dan intensif. Jika saya menulisnya di Java (Android), apakah ada jaminan bahwa JVM / KVM akan menjalankan utas pada inti yang berbeda, dan menjalankannya pada semua inti?
likejudo

1
Saya tidak tahu - bukankah itu yang seharusnya diketahui oleh eksperimen Anda?
Brian

Saya perlu menguji suatu program yang mengatakan itu akan membatasi jumlah inti prosesor yang digunakan. Saya akan mencari lagi. Terima kasih!
likejudo

6

psmemiliki bidang yang dipanggil psruntuk memberi tahu Anda prosesor yang sedang menjalankan pekerjaan.

Jadi Anda bisa menggunakan sesuatu seperti:

ps -e -o psr= | sort | uniq | wc -l

Perhatikan bahwa hanya menjalankan psseperti ini tentu saja akan membuat setidaknya satu inti aktif.

Mungkin lebih baik menjalankan ini:

tmp=/tmp/ps.$$
ps -e -o psr= > /tmp/ps.$$
sort -u "$tmp" | wc -l
rm "$tmp"

seperti itu sortdan wcjangan menambah hitungan.


Bagaimana jika sistem memiliki 16 core dan tidak ada yang menggunakan beberapa dari mereka?

Kemudian ia mencetak 0 karena tidak ada yang digunakan. Saya pikir itulah yang ditanyakan.
Mikel

Tidak melihat komentar baru untuk pertanyaan itu.

1
Tentu saja, dengan menjalankan pskita membuat setidaknya 1 core aktif. ;-)
Mikel

Terima kasih atas jawaban anda. Kerugiannya adalah saya perlu tahu apakah lebih dari satu inti pernah aktif. Sedang bertanya-tanya untuk menguji ini dengan memiliki proses membuat banyak utas. Apakah mungkin utas untuk menanyakan prosesor yang aktif? dengan cara itu orang dapat mengetahui apakah banyak core akan pernah digunakan di bawah beban berat. Tidak yakin apakah saya di jalur yang benar.

3
htop

Perintah ini berfungsi baik di ubuntu dan centos dan menunjukkan secara grafis berapa banyak CPU dan bagaimana mereka digunakan.

untuk centos:

yum install htop

untuk ubuntu:

apt-get install htop

2

Coba yang berikut ini:

cat /proc/cpuinfo

Berikut tautan ke contoh Android Java.


1
Dengan "aktif", saya menganggap Anil berarti berapa banyak core yang sedang digunakan, dan berapa banyak yang menganggur, yaitu perkiraan seberapa sibuk sistemnya. /proc/cpuinfohanya memberi tahu Anda berapa inti yang dimiliki sistem, dan bahkan Anda harus melakukan lebih dari sekadar cat /proc/cpuinfomenghitung HyperThreading.
Mikel

OK - itu tidak jelas tetapi Anda benar.
Amir Afghan

0

Anda dapat menggunakan cat / sys / devices / system / cpu / mungkin atau cat / sys / devices / system / cpu / online. Kemungkinan utamanya adalah jika Anda telah mengisolasi cpu untuk menjalankan beberapa program tertentu.

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.