উত্তর:
nproc
আপনি যা খুঁজছেন তা
আরও এখানে: http://www.cyberciti.biz/faq/linux-get-number-of-cpus-core-command/
nproc
আমার উবুন্টু ভিএম-তে আছে তবে আমার রেডহ্যাট 5.5-ভিত্তিক মেশিনে নেই।
nproc --all
সমস্ত ইনস্টল করা প্রসেসিং ইউনিটগুলির জন্য নিশ্চিত হন । ছাড়া --all
, nproc
কেবলমাত্র বর্তমান প্রক্রিয়াটিতে প্রসেসিং ইউনিট উপলব্ধ। আরও বিশদ জন্য ম্যান পৃষ্ঠা পড়ুন। MMV।
সর্বাধিক সহজ সরঞ্জামটি গ্লিবিসি সহ আসে এবং তাকে বলা হয় getconf
:
$ getconf _NPROCESSORS_ONLN
4
nproc
, এটি ম্যাক ওএস এক্স-এ (ডিফল্টরূপে) কাজ করে।
_NPROCESSORS_ONLN
(বা সিপিইউ, প্রোক, ইত্যাদি সহ কিছু) এর আউটপুটে তালিকাভুক্ত। আমি আশা করছিলাম যেহেতু এটি একটি পিক্সিক সরঞ্জামটি লিনাক্স / সোলারিসে কাজ করবে তাই আমাকে শাখা প্রশাখার ব্যবহার করতে হবে না।
আমি মনে করি আপনি যে পদ্ধতিটি দেন তা লিনাক্সে সর্বাধিক বহনযোগ্য। অপ্রয়োজনীয় cat
এবং wc
প্রক্রিয়াগুলি তৈরির পরিবর্তে , আপনি এটি কিছুটা ছোট করতে পারেন:
$ grep --count ^processor /proc/cpuinfo
2
আপনি যদি এটি করতে চান তাই এটি লিনাক্স এবং ওএস এক্সে কাজ করে, আপনি এটি করতে পারেন:
CORES=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu)
psrinfo -p
নতুন কার্নেলগুলিতে আপনি সম্ভবত /sys/devices/system/cpu/
আরও কিছু তথ্য পেতে ইন্টারফেসটি ব্যবহার করতে পারেন:
$ ls /sys/devices/system/cpu/
cpu0 cpufreq kernel_max offline possible present release
cpu1 cpuidle modalias online power probe uevent
$ cat /sys/devices/system/cpu/kernel_max
255
$ cat /sys/devices/system/cpu/offline
2-63
$ cat /sys/devices/system/cpu/possible
0-63
$ cat /sys/devices/system/cpu/present
0-1
$ cat /sys/devices/system/cpu/online
0-1
এগুলি কী বোঝায় সে সম্পর্কে আরও তথ্যের জন্য অফিসিয়াল ডক্স দেখুন ।
online
ফাইল, সহজতর কি nproc করে বেশি)
যখন কেউ "প্রসেসরের সংখ্যা / কোরগুলির" জন্য জিজ্ঞাসা করেন তখন 2 টি উত্তর অনুরোধ করা হচ্ছে। "প্রসেসরের" সংখ্যাটি মেশিনে সকেটে ইনস্টল করা শারীরিক সংখ্যা হবে।
"কোর" সংখ্যাটি শারীরিক কোরে হবে। হাইপারথ্রেড (ভার্চুয়াল) কোরগুলি অন্তর্ভুক্ত হবে না (অন্তত আমার মনে) mind যে কেউ থ্রেড পুল সহ প্রচুর প্রোগ্রাম লেখেন, আপনাকে সত্যিকার অর্থে শারীরিক কোরের বনাম কোরের / হাইপারথ্রেডগুলির গণনাটি জানতে হবে। এটি বলেছিল, আপনার প্রয়োজনীয় উত্তরগুলি পেতে আপনি নিম্নলিখিত স্ক্রিপ্টটি সংশোধন করতে পারেন।
#!/bin/bash
MODEL=`cat /cpu/procinfo | grep "model name" | sort | uniq`
ALL=`cat /proc/cpuinfo | grep "bogo" | wc -l`
PHYSICAL=`cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l`
CORES=`cat /proc/cpuinfo | grep "cpu cores" | sort | uniq | cut -d':' -f2`
PHY_CORES=$(($PHYSICAL * $CORES))
echo "Type $MODEL"
echo "Processors $PHYSICAL"
echo "Physical cores $PHY_CORES"
echo "Including hyperthreading cores $ALL"
হাইপারথ্রেডিং সমর্থন করে এমন 6 টি শারীরিক কোরের সাথে 2 টি মডেল জিয়ন X5650 ফিজিকাল প্রসেসর সহ একটি মেশিনের ফলাফল:
Type model name : Intel(R) Xeon(R) CPU X5650 @ 2.67GHz
Processors 2
Physical cores 12
Including hyperthreading cores 24
হাইপারথ্রেডিং সমর্থন করে না এমন 4 টি শারীরিক কোরের সাথে 2 এমডিওল জিওন ই 5472 প্রসেসর সহ একটি মেশিনে
Type model name : Intel(R) Xeon(R) CPU E5472 @ 3.00GHz
Processors 2
Physical cores 8
Including hyperthreading cores 8
lscpu(1)
দ্বারা উপলব্ধ কমান্ড util-লিনাক্স প্রকল্পের এছাড়াও উপযোগী হতে পারে:
$ 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: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 58
Model name: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
Stepping: 9
CPU MHz: 3406.253
CPU max MHz: 3600.0000
CPU min MHz: 1200.0000
BogoMIPS: 5787.10
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 4096K
NUMA node0 CPU(s): 0-3
এটি তাদের জন্য যারা * বিএসডি, * নিক্স বা সোলারিসে সিপিইউ কোরগুলি গণনা করার পোর্টেবল উপায়ে চান (আইস এবং এইচপি-ইউক্সে পরীক্ষা করেন নি তবে কাজ করা উচিত)। এটা সবসময় আমার জন্য কাজ করেছে।
dmesg | \
egrep 'cpu[. ]?[0-9]+' | \
sed 's/^.*\(cpu[. ]*[0-9]*\).*$/\1/g' | \
sort -u | \
wc -l | \
tr -d ' '
Solaris grep
& egrep
হবে না -o
বিকল্প তাই sed
পরিবর্তে ব্যবহার করা হয়।