Чи можна відключити центральний процесор (не основний)?


10

Чи можна відключити процесор, а не основний? Я хочу зробити тест, щоб переконатися, що продуктивність може змінити чи ні.

Я використовую Ubuntu 10.10.

Відповіді:


10

Окрім цього, у вашому BIOS grub є опція під назвою maxcpus.

Ви можете змінити цю опцію, коли вибираєте параметр завантаження grub, додаючи maxcpus=1параметри. Випадкова картина на грилі:

введіть тут опис зображення

Виберіть "e", і ви перейдете до командного рядка, де можна додати параметри.

Ви також можете створити постійну опцію завантаження в grub, зробивши копію вашого поточного параметра завантаження та додавши maxcpus=1до параметрів завантаження. Ви можете назвати це "Ubuntu, ядро ​​2.5.12-9-386 (1 процесор)" і мати його серед інших варіантів завантаження, як показано на малюнку.

Ви можете перевірити роботу на 1 процесорі, видавши:

cat /proc/cpuinfo | grep processor це повинно показувати щось подібне:

процесор: 0
процесор: 1

І 2-й рядок повинен зникнути після завантаження з 1 процесора.


1
це питання також зробить дуже поважний практичний жарт! : D
Альвар

Що станеться, якщо встановити maxcpus = 0? : P
crazy2be

@Rinzwind Я зробив саме те, що ви сказали, але результат здається дивним, я отримав інформацію про 12 процесорів, перш ніж додавати "maxcpus = 1" до параметрів, коли робимо прив'язку, але я отримав лише 1 інформацію про процесор після модифікації, здається, лише одне ядро ​​в активовано всі 12 ядер. Примітка. Мій комп'ютер має два шестиядерних процесора.
LeoYuan 袁力皓

@ crazy2be здогадка: 1-й процесор називається 0, тож ви в кінцевому підсумку використовуєте його? : D
Rinzwind

@ LeoYuan88 袁力皓 чи можете ви редагувати його вихід cat / proc / cpuinfo | grep-процесор до і після завантаження з maxcpus = 1?
Rinzwind

7

Ви можете динамічно відключати процесори за допомогою /sys/devices/system/cpu/cpuN/online, наприклад, для відключення CPU 1, використовуючи:

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

і для повторного ввімкнення використовуйте:

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

Це, здається, відключає lcore, а не процесор. У мене є один із цих каталогів для кожного логічного ядра в моїй системі.
судо

1

Ви завжди можете відключити центральний процесор від його розетки. Це груба сила, але ви гарантовано отримаєте потрібний тест, і вам не доведеться турбуватися, якщо перемикач ядра / BIOS / будь-який дійсно робить те, що ви сподіваєтесь, що робить.

Моя компанія має великі установки серверних ферм у різних місцях по всьому світу. У нашій лабораторії ми іноді видаляємо процесори з сокетів для саме такого тесту.

У цьому тесті є цікавий варіант, який можна зробити з багатопроцесорними системами NUMA . На цих типах материнських плат ви можете видалити всі пам'яті DIMM, які управляються одним фізичним процесором. Система все ще завантажиться просто чудово, і ви зможете запускати тести зі своїм додатком, закріпленим на різних ядрах, що дозволить вам виміряти вплив "локальної" або "віддаленої" пам'яті.


Вибачте, я все ще не знаю, як відключити процесор від його розетки, чи не могли б ви показати мені, як робити роботу?
ЛеоЮань 袁力皓

0

Хотіли б побачити продуктивність багатопотокової програми разом із кількістю ядер? Якщо це так, ви можете скористатися утилітою набору завдань. Я здогадуюсь, що у вас машина NUMA. Ви можете встановити утиліту numactl і за допомогою неї ви зможете знайти, які ядра відповідають якому процесору. Наприклад, у вашій машині є два чотириядерні CPUS (мікросхеми). За допомогою утиліти набору завдань ви можете зробити ядра одного процесора як набір і виділити їх у вашу програму. Тоді ваша програма використовує лише один процесор / чіп (чотири ядра). Будь ласка, повідомте мене, якщо вам потрібна додаткова інформація.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.