отключение CPU без перезагрузки системы.

отключение CPU без перезагрузки системы.

Сообщение Шпак Дмитрий » 26 май 2015, 13:00

Я не писатель, так что не обессудьте. Всё что описано касается серверов.
Сервера сей час поддерживают горячую замену процессоров, ещё это может понадобиться для резервирования отдельных ядер, вывод битых ядер из работы, перебрасывания ядер между нодами и т. д.

Linux поддерживает отключение ядер на лету, без перезагрузки системы. Покажу на примере своей
Код: выделить все
[root@dcdima cpu]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            16
Model:                 4
Model name:            AMD Phenom(tm) II X4 955 Processor
Stepping:              2
CPU MHz:               800.000
CPU max MHz:           3200,0000
CPU min MHz:           800,0000
BogoMIPS:              6428.88
Virtualization:        AMD-V
L1d cache:             64K
L1i cache:             64K
L2 cache:              512K
L3 cache:              6144K
NUMA node0 CPU(s):     0-3

Смотрим, у меня 4 ядра.
информация о ядрах хранится вот тут
Код: выделить все
[root@dcdima /]# ls /sys/devices/system/cpu
cpu0  cpu1  cpu2  cpu3  cpufreq  cpuidle  kernel_max  microcode  modalias  offline  online  possible  power  present  uevent

Информация о включённых и выключенных ядрах хранится в файлах offline online.
Смотрим
Код: выделить все
[root@dcdima /]# cd /sys/devices/system/cpu
[root@dcdima cpu]# cat ./online
0-3
[root@dcdima cpu]# cat ./offline

видим, что в онлайне все 4 ядра, отключаем второе ядро к примеру.
Код: выделить все
echo 0 > ./cpu2/online

проверяем
Код: выделить все
[root@dcdima cpu]# cat ./offline
2
[root@dcdima cpu]# cat ./online
0-1,3

Видим, что ядро 2 отключено, а ядра 0,1,3 включены.
смотрим lscpu
Код: выделить все
[root@dcdima cpu]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0,1,3
Off-line CPU(s) list:  2
Thread(s) per core:    1
Core(s) per socket:    3
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            16
Model:                 4
Model name:            AMD Phenom(tm) II X4 955 Processor
Stepping:              2
CPU MHz:               800.000
CPU max MHz:           3200,0000
CPU min MHz:           800,0000
BogoMIPS:              6428.88
Virtualization:        AMD-V
L1d cache:             64K
L1i cache:             64K
L2 cache:              512K
L3 cache:              6144K
NUMA node0 CPU(s):     0,1,3

Тоже видим что включено, что отключено в строчках онлайн и оффлайн, а так же ядро пропало из ноды NUMA.
Включаем ядро обратно
Код: выделить все
echo 1 > ./cpu2/online

Проверяем всеми командами
Код: выделить все
[root@dcdima cpu]# cat ./offline

[root@dcdima cpu]# cat ./online
0-3
[root@dcdima cpu]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            16
Model:                 4
Model name:            AMD Phenom(tm) II X4 955 Processor
Stepping:              2
CPU MHz:               800.000
CPU max MHz:           3200,0000
CPU min MHz:           800,0000
BogoMIPS:              6428.88
Virtualization:        AMD-V
L1d cache:             64K
L1i cache:             64K
L2 cache:              512K
L3 cache:              6144K
NUMA node0 CPU(s):     0-3


Не когда не отключайте cpu0 на архитектуре x86, в шапках у вас это не получится, в других дистрах проверяйте сами :)

Удачи.
Шпак Дмитрий
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 591
Стаж: 4 года 4 месяца 6 дней
Откуда: Russian_federation, какой то
Благодарил (а): 20 раз.
Поблагодарили: 145 раз.

отключение CPU без перезагрузки системы.

Спонсор

Спонсор
 

Re: отключение CPU без перезагрузки системы.

Сообщение nezabudka » 26 май 2015, 17:06

На дебиане все получилось! :bomb: А говоришь не писатель, даже я все сразу поняла! :)
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Сообщений: 618
Фото: 180
Стаж: 4 года 1 месяц 7 дней
Откуда: Ростов на Дону
Благодарил (а): 287 раз.
Поблагодарили: 147 раз.

Re: отключение CPU без перезагрузки системы.

Сообщение Шпак Дмитрий » 26 май 2015, 17:23

nezabudka писал(а):

На дебиане все получилось! :bomb: А говоришь не писатель, даже я все сразу поняла! :)

Не получится это я про отключение cpu0, в шапках не даёт доступа к нему. Как в дебе не знаю.
Шпак Дмитрий
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 591
Стаж: 4 года 4 месяца 6 дней
Откуда: Russian_federation, какой то
Благодарил (а): 20 раз.
Поблагодарили: 145 раз.

Re: отключение CPU без перезагрузки системы.

Сообщение nezabudka » 19 дек 2015, 09:43

Извиняюсь что вытащила старую тему но очень нужно. Выше описываемый способ
горячего отключения ядер к сожалению не сохраняет кофигурацию после перезагрузки.
Прошу подсказать способ сохранения выбранного состояния.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Сообщений: 618
Фото: 180
Стаж: 4 года 1 месяц 7 дней
Откуда: Ростов на Дону
Благодарил (а): 287 раз.
Поблагодарили: 147 раз.

Re: отключение CPU без перезагрузки системы.

Сообщение Шпак Дмитрий » 19 дек 2015, 10:13

nezabudka писал(а):

Извиняюсь что вытащила старую тему но очень нужно. Выше описываемый способ
горячего отключения ядер к сожалению не сохраняет кофигурацию после перезагрузки.
Прошу подсказать способ сохранения выбранного состояния.


нужно передать ядру параметр maxcpus=N, где N - количество ядер, которые нужно подключить в системе при загрузке
Шпак Дмитрий
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 591
Стаж: 4 года 4 месяца 6 дней
Откуда: Russian_federation, какой то
Благодарил (а): 20 раз.
Поблагодарили: 145 раз.

Re: отключение CPU без перезагрузки системы.

Сообщение nezabudka » 19 дек 2015, 10:41

Шпак Дмитрий писал(а):

нужно передать ядру параметр maxcpus=N, где N - количество ядер, которые нужно подключить в системе при загрузке

Понятно, тоесть прописать параметр в кофиге груба
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Сообщений: 618
Фото: 180
Стаж: 4 года 1 месяц 7 дней
Откуда: Ростов на Дону
Благодарил (а): 287 раз.
Поблагодарили: 147 раз.

Re: отключение CPU без перезагрузки системы.

Сообщение Шпак Дмитрий » 19 дек 2015, 10:52

nezabudka писал(а):

Шпак Дмитрий писал(а):

нужно передать ядру параметр maxcpus=N, где N - количество ядер, которые нужно подключить в системе при загрузке

Понятно, тоесть прописать параметр в кофиге груба



Так точно
Шпак Дмитрий
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 591
Стаж: 4 года 4 месяца 6 дней
Откуда: Russian_federation, какой то
Благодарил (а): 20 раз.
Поблагодарили: 145 раз.

Re: отключение CPU без перезагрузки системы.

Сообщение Olej » 16 апр 2017, 14:48

Шпак Дмитрий писал(а):

Всё что описано касается серверов.

Очень интересная давняя тема, заброшенная :?
Только непонятно почему она затерялась здесь в разделе "Серверы"? ... (т.е. это легко объясняет почему она затерялась)
Совершенно непонятно почему "касается серверов"? :shock:
Место ей где-то в Ядро, модули и конфигурация.
Olej
 
Стаж: 49 лет 4 месяца 24 дня

Re: отключение CPU без перезагрузки системы.

Сообщение Olej » 16 апр 2017, 14:58

Olej писал(а):

Очень интересная давняя тема, заброшенная :?

Интереснейшие вещи выявляются!
Это Mint 18.1 ...
Код: выделить все
olej@nvidia /sys/devices/system/cpu $ lsb_release -a
No LSB modules are available.
Distributor ID:   LinuxMint
Description:   Linux Mint 18.1 Serena
Release:   18.1
Codename:   serena

Процессор:
Код: выделить все
olej@nvidia /sys/devices/system/cpu $ lscpu
Архитектура:x86_64
CPU op-mode(s):        32-bit, 64-bit
Порядок байтов:Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Потоков на ядро:1
Ядер на сокет:2
Сокет(ы):        1
NUMA node(s):          1
Vendor ID:             GenuineIntel
Семейство CPU:6
Модель:          23
Model name:            Pentium(R) Dual-Core  CPU      E6600  @ 3.06GHz
Stepping:              10
CPU МГц:            1603.000
CPU max MHz:           3066,0000
CPU min MHz:           1603,0000
BogoMIPS:              6138.85
Виртуализация:VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              2048K
NUMA node0 CPU(s):     0,1
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm tpr_shadow vnmi flexpriority dtherm

Т.е. имеем 2 ядра с гипертриэдингом.
А теперь настройки:
Код: выделить все
olej@nvidia /sys/devices/system/cpu $ cat /proc/cpuinfo | grep processor | wc -l
2
olej@nvidia /sys/devices/system/cpu $ pwd
/sys/devices/system/cpu
olej@nvidia /sys/devices/system/cpu $ cat online
0-1
olej@nvidia /sys/devices/system/cpu $ cat offline
2-3

О-ба-на :!: :shock:
Получается ( :?: ) что гипертриэдинг у них отключен?
Olej
 
Стаж: 49 лет 4 месяца 24 дня

Re: отключение CPU без перезагрузки системы.

Сообщение Olej » 16 апр 2017, 15:04

Olej писал(а):

Интереснейшие вещи выявляются!
Это Mint 18.1 ...

А это Fedora 23 ...
Код: выделить все
[olej@dell cpu]$ lsb_release -a
LSB Version:   :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID:   Fedora
Description:   Fedora release 23 (Twenty Three)
Release:   23
Codename:   TwentyThree

Процессор:
Код: выделить все
[olej@dell 16]$ lscpu
Архитектура:x86_64
CPU op-mode(s):        32-bit, 64-bit
Порядок байт:Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Ядер на сокет:4
Сокетов:        1
NUMA node(s):          1
ID прроизводителя:GenuineIntel
Семейство ЦПУ:6
Модель:          30
Имя модели:   Intel(R) Core(TM) i7 CPU       Q 720  @ 1.60GHz
Степпинг:      5
CPU MHz:               933.000
CPU max MHz:           1600,0000
CPU min MHz:           933,0000
BogoMIPS:              3192.24
Виртуализация:VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              6144K
NUMA node0 CPU(s):     0-7
Флаги:            fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm tpr_shadow vnmi flexpriority ept vpid dtherm ida

i7, 4 ядра, с гипертриэдингом.
Но :!:
Код: выделить все
[olej@dell 16]$ cat /proc/cpuinfo | grep processor | wc -l
8
[olej@dell 16]$ cd /sys/devices/system/cpu
[olej@dell cpu]$ cat online
0-7
[olej@dell cpu]$ cat offline



Получается, разные дистрибутивы по разному используют гипертриэдинг. :?:
Это не очевидно и достаточно серьёзно!
Т.е. один и тот же Linux, на однм и том же CPU будет использовать в одном случае 8 процессоров (в смысле /proc/cpuinfo), а в другом случае - 4.
Olej
 
Стаж: 49 лет 4 месяца 24 дня

След.

Вернуться в Серверы

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron