Apakah mungkin untuk menonaktifkan CPU (bukan inti)?

10

Apakah mungkin untuk menonaktifkan CPU, bukan inti? Saya ingin melakukan tes untuk memverifikasi apakah kinerja dapat membuat perbedaan besar atau tidak.

Saya menggunakan Ubuntu 10.10.

LeoYuan 袁力皓
sumber

Jawaban:

10

Selain melakukan ini di BIOS grub Anda memiliki opsi bernama maxcpus.

Anda dapat mengedit opsi ini ketika memilih opsi boot grub Anda dengan menambahkan maxcpus=1ke parameter. Gambar grub acak:

masukkan deskripsi gambar di sini

Pilih 'e' dan Anda sampai ke baris perintah di mana Anda dapat menambahkan opsi.

Anda juga dapat membuat opsi boot permanen di grub dengan membuat salinan opsi boot Anda saat ini dan menambahkan maxcpus=1ke parameter boot. Anda dapat memberi nama ini 'Ubuntu, kernel 2.5.12-9-386 (1 cpu)' dan memilikinya di antara opsi-opsi boot lain seperti yang ditunjukkan gambar.

Anda dapat memverifikasi berjalan pada 1 cpu dengan mengeluarkan:

cat /proc/cpuinfo | grep processor ini harus menunjukkan sesuatu seperti ini:

prosesor: 0
prosesor: 1

Dan baris ke-2 akan hilang setelah boot dengan 1 CPU.

Rinzwind
sumber
1
pertanyaan ini juga akan membuat lelucon praktis yang sangat berarti! : D
Alvar
Apa yang terjadi jika Anda mengatur maxcpus = 0? : P
crazy2be
@Rinzwind Saya melakukan persis apa yang Anda katakan, tetapi hasilnya tampak aneh, saya mendapat info prosesor 12 sebelum menambahkan "maxcpus = 1" ke parameter ketika melakukan grepping, tapi saya hanya mendapatkan 1 info prosesor setelah modifikasi, sepertinya hanya satu inti di semua 12 core diaktifkan. Catatan: Komputer saya memiliki dua CPU enam inti.
LeoYuan 袁力皓
@ crazy2be menebak: prosesor 1 disebut 0 sehingga Anda akhirnya menggunakan satu? : D
Rinzwind
@ LeoYuan88 袁力皓 dapatkah Anda mengeditnya output dari cat / proc / cpuinfo | prosesor grep sebelum dan sesudah Anda boot dengan maxcpus = 1?
Rinzwind
7

Anda dapat menonaktifkan CPU secara dinamis melalui /sys/devices/system/cpu/cpuN/online, misalnya untuk menonaktifkan CPU 1, gunakan:

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

dan untuk mengaktifkan kembali, gunakan:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online
Colin Ian King
sumber
Ini tampaknya menonaktifkan lcore, bukan CPU. Saya memiliki salah satu direktori ini untuk setiap inti logis pada sistem saya.
sudo
1

Anda selalu dapat mencabut CPU dari soketnya. Ini brute force, tetapi Anda dijamin mendapatkan tes yang Anda inginkan, dan Anda tidak perlu khawatir jika kernel / BIOS / switch apa pun benar-benar melakukan apa yang Anda harapkan sedang dilakukan.

Perusahaan saya memiliki instalasi besar server farm di berbagai lokasi di seluruh dunia. Di lab kami kadang-kadang kami akan menghapus CPU dari soket hanya untuk tes semacam itu.

Ada variasi yang menarik pada tes ini yang dapat Anda lakukan dengan sistem NUMA multi-CPU . Pada jenis-jenis motherboard tersebut, Anda dapat menghapus semua DIMM memori yang dikendalikan oleh satu CPU fisik. Sistem masih akan boot dengan baik, dan Anda kemudian dapat menjalankan tes dengan aplikasi Anda disematkan ke berbagai inti yang akan memungkinkan Anda untuk mengukur pengaruh memori "lokal" atau "jarak jauh".

David Gardner
sumber
Maaf, saya masih tidak tahu cara mencabut CPU dari soketnya, dapatkah Anda menunjukkan kepada saya bagaimana melakukan pekerjaan itu?
LeoYuan 袁力皓
0

Ingin melihat kinerja aplikasi multithread bersama sejumlah core? Jika itu masalahnya, Anda dapat menggunakan utilitas tasket. Saya kira Anda memiliki mesin NUMA. Anda dapat menginstal utilitas numactl dan dengan menggunakannya Anda dapat menemukan core mana yang sesuai dengan CPU mana. Misalnya, mesin Anda memiliki dua quad-core CPUS (chip). Dengan menggunakan utilitas tasket Anda dapat membuat inti dari satu CPU sebagai satu set dan mengalokasikan ini untuk aplikasi Anda. Maka aplikasi Anda hanya menggunakan satu CPU / Chip (empat core). Tolong beri tahu saya jika Anda memerlukan informasi lebih lanjut.

samarasa
sumber