Saya menjalankan perintah berikut untuk mendapatkan jumlah prosesor / inti di Linux:
cat /proc/cpuinfo | grep processor | wc -l
Ini berfungsi tetapi tidak terlihat elegan. Bagaimana saran Anda untuk memperbaikinya?
linux
bash
command-line
Michael
sumber
sumber
Jawaban:
nproc
adalah apa yang Anda cari.Lebih lanjut di sini: http://www.cyberciti.biz/faq/linux-get-number-of-cpus-core-command/
sumber
nproc
apakah ada di VM ubuntu saya, tetapi tidak di mesin berbasis RedHat 5.5 saya.nproc --all
untuk semua Unit Pemrosesan yang diinstal. Tanpa--all
,nproc
hanya memperlihatkan Unit Pemrosesan yang tersedia untuk proses saat ini. Baca halaman manual untuk lebih jelasnya. MMV.Alat paling sederhana hadir dengan glibc dan disebut
getconf
:sumber
nproc
, ini berfungsi (secara default) di mac os x._NPROCESSORS_ONLN
(atau apa pun dengan cpu, proc, dll) tercantum dalam outputnya. Saya berharap karena ini adalah alat posix yang berfungsi di Linux / Solaris jadi saya tidak perlu menggunakan percabangan.Saya pikir metode yang Anda berikan adalah yang paling portabel di Linux. Alih-alih memijah
cat
danwc
memproses yang tidak perlu , Anda dapat mempersingkatnya sedikit:sumber
Jika Anda ingin melakukannya agar berfungsi di linux dan OS X, Anda dapat melakukan:
sumber
psrinfo -p
sebagai gantinyaPada kernel yang lebih baru, Anda juga dapat menggunakan
/sys/devices/system/cpu/
antarmuka untuk mendapatkan lebih banyak informasi:Lihat dokumen resmi untuk informasi lebih lanjut tentang apa arti semua ini.
sumber
online
filenya, lebih sederhana daripada yang dilakukan nproc)Ketika seseorang menanyakan "jumlah prosesor / inti" ada 2 jawaban yang diminta. Jumlah "prosesor" akan menjadi nomor fisik yang dipasang di soket pada mesin.
Jumlah "inti" akan menjadi inti fisik. Core hyperthreaded (virtual) tidak akan disertakan (setidaknya menurut saya). Sebagai seseorang yang menulis banyak program dengan kumpulan utas, Anda benar-benar perlu mengetahui jumlah inti fisik vs inti / hyperthreads. Karena itu, Anda dapat memodifikasi skrip berikut untuk mendapatkan jawaban yang Anda butuhkan.
Hasil pada mesin dengan 2 model prosesor fisik Xeon X5650 masing-masing dengan 6 inti fisik yang juga mendukung hyperthreading:
Pada mesin dengan prosesor 2 mdeol Xeon E5472 masing-masing dengan 4 inti fisik yang tidak mendukung hyperthreading
sumber
The
lscpu(1)
perintah yang disediakan oleh util-linux proyek juga mungkin berguna:sumber
Ini untuk mereka yang menginginkan cara portabel untuk menghitung inti cpu di * bsd, * nix atau solaris (belum diuji di aix dan hp-ux tetapi seharusnya berfungsi). Itu selalu berhasil untuk saya.
solaris
grep
&egrep
tidak memiliki-o
opsi jadised
digunakan sebagai gantinya.sumber
Satu baris lainnya, tanpa menghitung inti hyper-threaded :
sumber
Jika Anda membutuhkan metode os independen, bekerja di Windows dan Linux. Gunakan python
sumber