Команда chcpu позволяет вызывать одноименную утилиту, осуществляющую управление состоянием центральных процессоров, установленных в ПК. Утилита позволяет активировать или деактивировать центральные процессоры или их отдельные ядра в процессе работы операционной системы. Разумеется, утилита не сможет деактивировать все доступные центральные процессоры, так как в таком случае работа компьютера станет попросту невозможной. Для получения информации о доступных центральных процессорах, установленных в системе, следует использовать утилиту lscpu. Утилита принимает в качестве входного параметра номера центральных процессоров, записанные через запятую, либо диапазоны их номеров, записанные через дефис. Единственная функция данной утилиты, которая может понадобиться обычным пользователям ПК — это функция активации или деактивации центральных процессоров, а также функция принудительного сканирования центральных процессоров.
Базовый синтаксис команды выглядит следующим образом:
# chcpu [параметры] [номера или диапазоны номеров центральных процессоров]
Наиболее важными параметрами являются параметр -d, позволяющий деактивировать указанные центральные процессоры, параметр -e, позволяющий активировать указанные центральные процессоры, а также параметр -r, позволяющий пересканировать центральные процессоры.
Команда lscpu может использоваться для получения информации о доступных центральных процессорах и их ядрах:
$ lscpu
Архитектура: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 36 bits physical, 48 bits virtual
Порядок байт: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
ID прроизводителя: GenuineIntel
Имя модели: Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
…
Вывод сокращен, но вся необходимая информация доступна приведенном фрагменте: в компьютере установлен один центральный процессор с четырьмя ядрами, причем все ядра активны (On-line CPU(s) list).
Для сравнения также следует провести небольшое тестирование производительности (очень неточное):
$ 7za b
7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (106E5),ASM)
Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (106E5)
CPU Freq: - - - - - - - - -
RAM size: 7950 MB, # CPU hardware threads: 4
RAM usage: 882 MB, # Benchmark threads: 4
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 9587 320 2918 9327 | 112066 379 2520 9561
23: 9584 330 2955 9765 | 109986 376 2528 9517
24: 9521 336 3048 10237 | 109039 377 2536 9572
25: 9441 343 3147 10780 | 106130 372 2536 9445
---------------------------------- | ------------------------------
Avr: 332 3017 10027 | 376 2530 9524
Tot: 354 2774 9776
Для деактивации ядра центрального процессора достаточно использовать утилиту chcpu с параметром -d и номером этого ядра (нумерация начинается с 0):
$ sudo chcpu -d 1
[sudo] пароль для alex:
CPU 1 отключен
В соответствии с выводом, утилите удалось деактивировать ядро центрального процессора. Это несложно проверить с помощью утилиты lscpu:
$ lscpu
Архитектура: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 36 bits physical, 48 bits virtual
Порядок байт: Little Endian
CPU(s): 4
On-line CPU(s) list: 0,2,3
Off-line CPU(s) list: 1
ID прроизводителя: GenuineIntel
Имя модели: Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
…
Из вывода видно, что ядро номер 1 действительно деактивровано. Попробуем снова провести тестирование производительности:
$ 7za b
7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (106E5),ASM)
Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (106E5)
CPU Freq: - - - - - - - - -
RAM size: 7950 MB, # CPU hardware threads: 4
RAM usage: 882 MB, # Benchmark threads: 4
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 8224 270 2965 8001 | 81993 278 2520 6995
23: 7966 269 3014 8117 | 83259 285 2529 7204
24: 7833 271 3107 8423 | 81846 284 2534 7185
25: 7757 276 3212 8857 | 80760 284 2535 7188
---------------------------------- | ------------------------------
Avr: 271 3075 8349 | 282 2530 7143
Tot: 277 2802 7746
Очевидно, что производительность системы снизилась. Для повторной активации этого ядра достаточно воспользоваться утилитой chcpu с параметром -e и его номером:
$ sudo chcpu -e 1
CPU 1 задействован
Утилита также вывела сообщение об успешном исполнении операции. Для проверки этого сообщения следует снова использовать утилиту lscpu:
$ lscpu
Архитектура: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 36 bits physical, 48 bits virtual
Порядок байт: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
ID прроизводителя: GenuineIntel
Имя модели: Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
…
Все ядра центрального процессора вновь используются операционной системой.
Для деактивации сразу нескольких ядер центрального процессора следует использовать утилиту chcpu с параметром -d и либо перечислить их номера через запятую, либо задать диапазон их номеров через дефис:
$ sudo chcpu -d 1,2-3
CPU 1 отключен
CPU 2 отключен
CPU 3 отключен
В соответствии с выводом, утилите удалось деактивировать сразу несколько ядер центрального процессора. Это несложно проверить с помощью утилиты lscpu:
$ lscpu
Архитектура: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 36 bits physical, 48 bits virtual
Порядок байт: Little Endian
CPU(s): 4
On-line CPU(s) list: 0
Off-line CPU(s) list: 1-3
ID прроизводителя: GenuineIntel
Имя модели: Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
…
Ну или с помощью теста производительности:
$ 7za b
7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (106E5),ASM)
Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (106E5)
CPU Freq: - - - - - - - - -
RAM size: 7950 MB, # CPU hardware threads: 4
RAM usage: 882 MB, # Benchmark threads: 4
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 2598 80 3142 2528 | 26814 83 2760 2288
23: 2350 76 3149 2395 | 28061 88 2771 2428
24: 2648 87 3274 2848 | 26663 84 2773 2341
25: 2371 81 3343 2708 | 26266 84 2768 2338
---------------------------------- | ------------------------------
Avr: 81 3227 2620 | 85 2768 2349
Tot: 83 2998 2484
Для активации ядер следует использовать параметр -e:
$ sudo chcpu -e 1,2-3
CPU 1 задействован
CPU 2 задействован
CPU 3 задействован
После этого система продолжит работать с полной производительностью.