Πώς να γνωρίζετε τον αριθμό των πυρήνων ενός συστήματος στο Linux;

Ήθελα να μάθω πόσους πυρήνες έχει το σύστημά μου, οπότε έψαξα την ίδια ερώτηση στο Google. Βρήκα κάποιες εντολές όπως η εντολή lscpu. Όταν δοκίμασα αυτή την εντολή, μου έδωσε το ακόλουθο αποτέλεσμα:

$ 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:             GenuineIntel
CPU family:            6
Model:                 23
Stepping:              10
CPU MHz:               1998.000
BogoMIPS:              5302.48
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              2048K
NUMA node0 CPU(s):     0-3

Συγκεκριμένα, αυτό το αποτέλεσμα δείχνει:

  • CPU(s): 4
  • Πυρήνες ανά υποδοχή: 4
  • Οικογένεια CPU: 6

Ποιο από αυτά υποδηλώνει τους πυρήνες ενός συστήματος Linux;

Υπάρχει κάποια άλλη εντολή για να πείτε τον αριθμό των πυρήνων ή υποθέτω ότι είναι εντελώς λάθος;

Λύση

Πρέπει να εξετάσετε τις υποδοχές και τους πυρήνες ανά υποδοχή. Σε αυτή την περίπτωση έχετε 1 φυσική CPU (υποδοχή) η οποία έχει 4 πυρήνες (πυρήνες ανά υποδοχή).

Σχόλια (2)

Μπορείτε επίσης να χρησιμοποιήσετε την εντολή cat /proc/cpuinfo η οποία θα εξάγει ένα κομμάτι δεδομένων για κάθε πυρήνα. Κάθε κομμάτι ξεκινά με αυτές τις πληροφορίες:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 60
model name  : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
(...)

Οι πυρήνες αριθμούνται ξεκινώντας από το 0, οπότε αν το τελευταίο chunk λέει processor : 3 όπως σε αυτή την περίπτωση, το μηχάνημά σας έχει 4 πυρήνες.

Σχόλια (2)

Η οικογένεια της CPU δεν έχει σημασία εδώ.

  • CPU(s) = φυσικές υποδοχές
  • Πυρήνας(-ες) ανά υποδοχή - όπως λέει
  • άρα συνολικός αριθμός πυρήνων = CPU(s) * Πυρήνας(s) ανά υποδοχή

Στην περίπτωσή σας, έχετε συνολικά 4 πλήρεις πυρήνες.

Αυτό που επίσης μπορεί να είναι σημαντικό, είναι το "Thread(s) per core". Αλλά έχετε 1, άρα όχι στην περίπτωσή σας.

Σχόλια (2)