HotPlug CPU @ Linux

Bár a témában már többször megnyilvánultunk, a Linux alatti processzor kezelés — számomra — legegyszerűbb módját szeretném bemutatni.

Először is érdemes tisztázni, Linux alatt a “HotPlug CPU” képesség “csupán” a futatott kerneltől függ.

Q: How to enable my kernel to support CPU hotplug?
A: When doing make defconfig, Enable CPU hotplug support

"Processor type and Features" -> Support for Hotpluggable CPUs

Make sure that you have CONFIG_HOTPLUG, and CONFIG_SMP turned on as well.

You would need to enable CONFIG_HOTPLUG_CPU for SMP suspend/resume support as well.
Q: What architectures support CPU hotplug?
A: As of 2.6.14, the following architectures support CPU hotplug.

i386 (Intel), ppc, ppc64, parisc, s390, ia64 and x86_64

(további információ: cpu-hotplug.txt, kernel dokumentáció)

Azaz az általánosan használt architektúrák bármelyikén használható, amennyiben legalább 2.6.14-es kernel fut a gépen és a kernel megfelelően van fordítva. A tapasztalatom szerint a hivatalos disztribúciók figyelnek arra, hogy a kernel jól legyen fordítva.

A processzorok mindegyikének — az első, azaz nulladik sorszámú kivételével — mindegyikének van egy online tulajdonsága, mely a processzor használatát jelzi.

A processzorokat a /sys/devices/system/cpu könyvtárban lehet fellelni, minden processzorhoz egy alkönyvtár tartozik. Az én egyik gépem így néz ki:

root@deb:/sys/devices/system/cpu# ls -l
összesen 0
drwxr-xr-x 4 root root    0 máj   18 09.34 cpu0
drwxr-xr-x 4 root root    0 máj   18 09.34 cpu1
drwxr-xr-x 4 root root    0 máj   18 15.15 cpu2
drwxr-xr-x 2 root root    0 máj   18 09.34 cpu3
drwxr-xr-x 2 root root    0 máj   18 09.34 cpufreq
drwxr-xr-x 2 root root    0 máj   18 09.34 cpuidle
-r--r--r-- 1 root root 4096 máj   18 15.28 kernel_max
-r--r--r-- 1 root root 4096 máj   18 15.28 offline
-r--r--r-- 1 root root 4096 máj   18 15.28 online
drwxr-xr-x 2 root root    0 máj   18 09.34 perf_events
-r--r--r-- 1 root root 4096 máj   18 15.28 possible
-r--r--r-- 1 root root 4096 máj   18 15.28 present

A processzorokat a cpu<sorszám> könyvtárakban lévő online “fájl” értékének állításával lehet engedélyezni (1) és tiltani (0). Az első processzor — a cpu0-t — természetesen érinthetetlen.

Esettanulmány, saját tapasztalat

A feni gépet (Debian, mert az a jó :]) egy processzorosként hoztam létre és természetesen engedélyeztem a konfigurációban a “Memory/CPU Hotplug” opció kettősét (mert a memória sosem lehet elég :]). A gép spam-szűrőnek készült és hamar rá kellett jönnöm, hogy bizony alul méreteztem (OFF: a hozzánk beérkező levelek 85%-a spam!!!) a hardvert. A fenti engedélyezett opciónak hála gond nélkül lehetett memóriát és processzort hozzáadni a géphez. Csak épp a processzort bár észreveszi, nem kezdi el magától használni a kernel. A használatba vételhez léteznek letölthető script-ek (volt róla szó a legutóbbi vmug-on), de lehet kézzel is csinálni, valahogy így:

  1. CPU meglétének ellenőrzése: ls -l /sys/devices/system/cpu
    Az új processzor cpu<sorszám> formában könyvtárként látszódig.
  2. az új CPU állapotának ellenőrzése: cat /sys/devices/system/cpu/cpu1/online
    0: kikapcsolt, 1: bekapcsolt állapotban van, valószínűleg 0 lesz az eredmény
  3. új CPU bekapcsolása echo 1 > /sys/devices/system/cpu/cpu1/online
    a 2. ponttal lehet ellenőrizni a bekapcsolt voltát

Kikapcsolni hasonlóan lehet egy processzort: echo 0 > /sys/devices/system/cpu/cpu1/online. Ilyenkor természetesen a gép virtuális konfigurációjából nem törlődik a processzor, ott elvenni CPU-t továbbra sincs lehetőség, de a virtuális gép “elfelejti” azt használni.

VN:F [1.8.2_1042]
Rating: 10.0/10 (2 votes cast)
HotPlug CPU @ Linux10.0102

One Response to “HotPlug CPU @ Linux”

  • Miklós says:

    Bár nem vagyok Linux (fel)használó, nagyon értékesnek tartom ezeket a “szösszeneteket” (megoldásokak), amivel számomra is még érdekesebbé teszitek a Linux rendszert…

    UN:F [1.8.2_1042]
    Rating: 4.0/5 (1 vote cast)
Cimkék
Levelezési lista
Google Groups
Csatlakozz a levelezési listánkhoz!
Email:
Irány a levlista oldalára
Támogatóink
EMC
ERP
Keresés