एक पूरी तस्वीर आप की संख्या को देखने की जरूरत है पाने के लिए धागे प्रति कोर, कोर सॉकेट और प्रति सॉकेट । यदि आप इन संख्याओं को गुणा करते हैं तो आपको अपने सिस्टम पर सीपीयू की संख्या मिल जाएगी ।
सीपीयू = थ्रेड्स प्रति कोर X कोर प्रति सॉकेट X सॉकेट्स
सीपीयू वे होते हैं जो आप देखते हैं जब आप चलाते हैं htop
(ये भौतिक सीपीयू के बराबर नहीं होते हैं)।
यहाँ एक डेस्कटॉप मशीन से एक उदाहरण दिया गया है:
$ lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s): 8
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
और एक सर्वर:
$ lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s): 32
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 2
nproc
सीपीयू से मेल खाती है के उत्पादन से मेल खाती है lscpu
। इसके ऊपर डेस्कटॉप मशीन के लिए 8 सीपीयू (एस) से मेल खाना चाहिए lscpu
:
$ nproc --all
8
आउटपुट को /proc/cpuinfo
इस जानकारी से मेल खाना चाहिए, उदाहरण के लिए डेस्कटॉप सिस्टम पर ऊपर हम देख सकते हैं कि 8 प्रोसेसर (सीपीयू) और 4 कोर (कोर आईडी 0-3) हैं:
$ grep -E 'processor|core id' /proc/cpuinfo
processor : 0
core id : 0
processor : 1
core id : 0
processor : 2
core id : 1
processor : 3
core id : 1
processor : 4
core id : 2
processor : 5
core id : 2
processor : 6
core id : 3
processor : 7
core id : 3
cpu cores
द्वारा रिपोर्ट /proc/cpuinfo
से मेल खाती Core(s) per socket
द्वारा रिपोर्ट lscpu
। इसके ऊपर डेस्कटॉप मशीन के लिए lscpu द्वारा सूचित 4 कोर (एस) प्रति सॉकेट से मेल खाना चाहिए:
$ grep -m 1 'cpu cores' /proc/cpuinfo
cpu cores : 4
आपके प्रश्न का विशेष रूप से उत्तर देने के लिए, आप बताएं कि आपके पास कितने सॉरे हैं जो आपके पास प्रति सॉकेट की संख्या से सॉकेट की संख्या से गुणा करते हैं।
कोर = प्रति सॉकेट X सॉकेट्स
उदाहरण के लिए डेस्कटॉप के ऊपर सिस्टम में 4 कोर हैं:
$ echo "Cores = $(( $(lscpu | awk '/^Socket\(s\)/{ print $2 }') * $(lscpu | awk '/^Core\(s\) per socket/{ print $4 }') ))"
Cores = 4
जबकि सर्वर में 16 है:
$ echo "Cores = $(( $(lscpu | awk '/^Socket\(s\)/{ print $2 }') * $(lscpu | awk '/^Core\(s\) per socket/{ print $4 }') ))"
Cores = 16
एक अन्य उपयोगी उपयोगिता है dmidecode
जो प्रति सॉकेट जानकारी के लिए आउटपुट है। ऊपर सूचीबद्ध सर्वर प्रणाली के मामले में हम प्रति सॉकेट में 8 कोर और प्रति सॉकेट 16 धागे देखने की उम्मीद करते हैं:
$ sudo dmidecode -t 4 | grep -E 'Socket Designation|Count'
Socket Designation: CPU1
Core Count: 8
Thread Count: 16
Socket Designation: CPU2
Core Count: 8
Thread Count: 16
lscpu
आदेश उपयोगी विकल्प है कि आप, बाहर की जाँच करने के लिए उदाहरण के लिए पसंद कर सकते हैं की एक संख्या है:
$ lscpu --all --extended
$ lscpu --all --parse=CPU,SOCKET,CORE | grep -v '^#'
man lscpu
विवरण के लिए देखें।
संक्षेप में:
- आपको सॉकेट्स, कोर और थ्रेड्स के बारे में पता होना चाहिए
- आपको सीपीयू शब्द से सावधान रहने की आवश्यकता है क्योंकि इसका अर्थ अलग-अलग संदर्भों में अलग-अलग चीजें हैं