ভূমিকা
এটা একটি মজার প্রশ্ন। সম্ভবত ব্যক্তিগতভাবে আমার জন্য মাসগুলির মধ্যে সবচেয়ে আকর্ষণীয় একটি। ওপির মতো আমার পুরানো বিআইওএসে হাইপার থ্রেডিং নিষ্ক্রিয় করার কোনও বিকল্প নেই (উদ্ভাবিত ২০১২, আপডেট হওয়া ২০১ 2016 বা আরও)
ইন্টেল স্কাইলেক এবং কাবি লেকে হাইপার-থ্রেডিং বাগগুলি:
ইন্টেল স্কাইলেক বা কাবি লেকের প্রসেসর ব্যবহারকারী যে কোনও ব্যক্তিকে অবশ্যই হাইপার থ্রেডিং সম্পর্কে বাগ রিপোর্টগুলি পড়তে হবে যা কয়েক মাস আগে প্রকাশিত হয়েছিল। এই ইউকে রেজিস্টার গল্পটি উচ্চারণ করে যে হাইপার থ্রেডিং কীভাবে মেশিনকে ক্র্যাশ করতে এবং কলুষিত করতে পারে তা ডেবিয়ান বিকাশকারীরা কীভাবে স্পট করেছে out
স্কাইলেকে নিয়ে গত বছরের তুলনায় উবুন্টুতে প্রতিবেদন করা নিয়ে অনেকগুলি সমস্যা রয়েছে এবং হাইপার থ্রেডিং বাগগুলির কারণে কোন সমস্যাগুলি সৃষ্টি হতে পারে তা কীভাবে নির্ধারণ করা যায় তা নিয়ে আশ্চর্য হয়ে যায়।
এই উত্তরটি তিন ভাগে বিভক্ত:
- হাইপার-থ্রেডিং বন্ধ / চালু করা হলে সিপিইউগুলির প্রদর্শন
- হাইপার-থ্রেডিং বন্ধ / চালু করে স্বয়ংক্রিয় করতে স্ক্রিপ্টটি বাশ করুন
- হাইপার থ্রেডিং শুরু হওয়ার আগে বন্ধ করা থাকলে কঙ্কি ক্রাশ হয়
হাইপার-থ্রেডিং বন্ধ / চালু করা হলে সিপিইউগুলির প্রদর্শন
হাইপার-থ্রেডিং বন্ধ হয়ে গেলে এবং সিপিইউ স্ট্রেস টেস্ট করা হলে নীচে আপনি সিপিইউ ব্যবহার দেখতে পাবেন। প্রায় 10 সেকেন্ড পরে একই স্ক্রিপ্টটি হাইপার থ্রেডিং চালু হওয়ার সাথে পুনরাবৃত্তি হয়। পরিশেষে 10 সেকেন্ড পরে হাইপার-থ্রেডিং দিয়ে স্ক্রিপ্টটি আবার বন্ধ হয়ে যায়:
প্রদর্শনটি দুটি বিভাগে বিভক্ত:
- বাম অর্ধেক টার্মিনাল উইন্ডোটি
set-hyper-threading
0 (অফ) প্যারামিটার দিয়ে স্ক্রিপ্টটি চালু করে এবং তারপরে 1 (চালু) করবে।
- ডান অর্ধে
conky
সিপিইউ 1 থেকে 8 এর সিপিইউ শতাংশের ব্যবহার প্রদর্শন করে।
প্রথম স্ক্রিপ্ট হাইপার থ্রেডিং বন্ধ
স্ক্রিপ্টটি প্রথমবার চালিত হয় সিপিইউ নম্বর 2, 4, 6 এবং 8 (কনকির মতে) 3%, 2%, 2% এবং 2% হিমায়িত হয়। সিপিইউ নম্বর 1, 3, 5 এবং 7 টি 100 টি বৃদ্ধি পেয়ে স্ট্রাইক টেস্ট চালানো হয় run
হাইপার-থ্রেডিং বন্ধ করে সিপিইউ টপোলজি প্রদর্শিত হয় এবং কেবলমাত্র চারটি কোর রিপোর্ট করা হয়েছে:
/sys/devices/system/cpu/cpu0/topology/core_id:0
/sys/devices/system/cpu/cpu2/topology/core_id:1
/sys/devices/system/cpu/cpu4/topology/core_id:2
/sys/devices/system/cpu/cpu6/topology/core_id:3
দ্বিতীয় স্ক্রিপ্ট হাইপার থ্রেডিং চালু
দ্বিতীয়বার স্ক্রিপ্টটি হাইপার-থ্রেডিং চালিত হয় এবং স্ট্রেস টেস্ট চলাকালীন সমস্ত সিপিইউ নম্বর 1-8 স্পাইকে 100% করে দেওয়া হয়।
হাইপার-থ্রেডিং চালু রয়েছে এবং কেবলমাত্র চারটি কোর প্লাস এবং চারটি ভার্চুয়াল কোর রিপোর্ট করা হয়েছে সাথে সিপিইউ টপোলজি প্রদর্শিত হবে:
/sys/devices/system/cpu/cpu0/topology/core_id:0
/sys/devices/system/cpu/cpu1/topology/core_id:0
/sys/devices/system/cpu/cpu2/topology/core_id:1
/sys/devices/system/cpu/cpu3/topology/core_id:1
/sys/devices/system/cpu/cpu4/topology/core_id:2
/sys/devices/system/cpu/cpu5/topology/core_id:2
/sys/devices/system/cpu/cpu6/topology/core_id:3
/sys/devices/system/cpu/cpu7/topology/core_id:3
তৃতীয় স্ক্রিপ্ট হাইপার থ্রেডিং বন্ধ
দ্বিতীয় স্ক্রিপ্টের সিপিইউ 2, 4, 6 এবং 8 শেষ হওয়ার পরে কীভাবে 4%, 2%, 3%, 4% এ অলস হয় Note এটি গুরুত্বপূর্ণ কারণ তৃতীয় পরীক্ষায় হাইপার-থ্রেডিং বন্ধ করে দেখানো হয়েছে যে এই সিপিইউ শতাংশটি প্রথম পরীক্ষার চেয়ে 3%, 2%, 2% এবং 2% এর পরিবর্তে 4%, 2%, 3%, 4% হিমায়িত হয়েছে।
অতএব হাইপার-থ্রেডিং বন্ধ করা বর্তমান অবস্থায় ভার্চুয়াল সিপিইউগুলিকে হিমায়িত করে বলে মনে হচ্ছে।
এছাড়াও আপনি যদি হাইপার-থ্রেডিং চালু করেন বা স্ক্রিপ্টটি "হাইপার থ্রেডিং সমর্থিত" প্রদর্শন করেন তবে তা বিবেচনা করুন।
হাইপার-থ্রেডিং বন্ধ / চালু করে স্বয়ংক্রিয় করতে স্ক্রিপ্টটি বাশ করুন
নীচের স্ক্রিপ্টটি দেখার সময় মনে রাখবেন যে কঙ্কি সিপিইউগুলিকে 1 থেকে 8 পর্যন্ত সংখ্যা দেয় তবে লিনাক্স সিপিইউগুলিকে 0 থেকে 7 পর্যন্ত সংখ্যা করে।
#!/bin/bash
# NAME: set-hyper-threading
# PATH: /usr/local/bin
# DESC: Turn Hyper threading off or on.
# DATE: Aug. 5, 2017.
# NOTE: Written Part of testing for Ubuntu answer:
# /ubuntu/942728/disable-hyper-threading-in-ubuntu/942843#942843
# PARM: 1="0" turn off hyper threading, "1" turn it on.
if [[ $# -ne 1 ]]; then
echo 'One argument required. 0 to turn off hyper-threading or'
echo '1 to turn hyper-threading back on'
exit 1
fi
echo $1 > /sys/devices/system/cpu/cpu1/online
echo $1 > /sys/devices/system/cpu/cpu3/online
echo $1 > /sys/devices/system/cpu/cpu5/online
echo $1 > /sys/devices/system/cpu/cpu7/online
grep "" /sys/devices/system/cpu/cpu*/topology/core_id
grep -q '^flags.*[[:space:]]ht[[:space:]]' /proc/cpuinfo && \
echo "Hyper-threading is supported"
grep -E 'model|stepping' /proc/cpuinfo | sort -u
stress --cpu 8 --io 1 --vm 1 --vm-bytes 128M --timeout 10s
দ্রষ্টব্য: প্রোগ্রামটি stress
সমস্ত দেবিয়ান সিস্টেমগুলিতে তৈরি করা হয়েছে যা উবুন্টু একটি ডেরাইভেটিভ। সুতরাং আপনাকে উবুন্টুতে এই স্ক্রিপ্টটি চালানোর জন্য কোনও প্যাকেজ ডাউনলোড এবং ইনস্টল করতে হবে না।
আপনার যদি ডুয়াল কোর সিপিইউ থাকে তবে আপনাকে #
সিপিইউ 5 এবং 7 নম্বরগুলি নিয়ন্ত্রণ করে এমন লাইনগুলি মুছে ফেলতে হবে (বা তার সাথে মন্তব্য করতে হবে )।
সিপিইউ টপোলজি প্রদর্শিত বাশ লাইনের জন্য হাই-অ্যাঞ্জেলকে ক্রেডিট grep "" /sys/devices/system/cpu/cpu*/topology/core_id
।
হাইপার থ্রেডিং শুরু হওয়ার আগে বন্ধ করা থাকলে কঙ্কি ক্রাশ হয়
সিপিইউগুলি পেতে 2, 4, 6, 8 থেকে সর্বনিম্ন শতাংশ ব্যবহার সম্ভব হয়েছে বুট আপ করার সময় হাইপার-থ্রেডিং বন্ধ করার চেষ্টা করেছি। আমি এই স্ক্রিপ্টটি এটি করতে ব্যবহার করেছি:
# NAME: /etc/cron.d/turn-off-hyper-threading
# DATE: Auguust 5, 1017
# DESC: This turns off CPU 1, 3, 5 & 7
# NOTE: Part of testing for Ubuntu answer:
# /ubuntu/942728/disable-hyper-threading-in-ubuntu/942843#942843
# BUGS: Conky crashes with Segmentation Fault when CPU 2,4,6 & 8 (as conky calls them)
# are off-line.
#
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
#
# @reboot root echo 0 > /sys/devices/system/cpu/cpu1/online
# @reboot root echo 0 > /sys/devices/system/cpu/cpu3/online
# @reboot root echo 0 > /sys/devices/system/cpu/cpu5/online
# @reboot root echo 0 > /sys/devices/system/cpu/cpu7/online
তবে conky
হাইপার-থ্রেডিং বন্ধ হয়ে গেলে এটি বিভাগে ত্রুটিযুক্ত ক্রাশ হয়। এর মতো আমাকে @reboot
স্ক্রিপ্টের চারটি লাইন মন্তব্য করতে হয়েছিল ।
সিপিইউ শতাংশ ব্যবহার এবং লোড ফ্যাক্টর প্রদর্শনের জন্য কঙ্কি কোড
আপনি যদি কঙ্কিতে অনুরূপ প্রদর্শন স্থাপন করতে আগ্রহী হন তবে এখানে প্রাসঙ্গিক কোড স্নিপেট রয়েছে:
${color orange}${voffset 2}${hr 1}
${color2}${voffset 5}Intel® i-7 3630QM 3.4 GHz: ${color1}@ ${color green}${freq} MHz
${color}${goto 13}CPU 1 ${goto 81}${color green}${cpu cpu1}% ${goto 131}${color3}${cpubar cpu1 18}
${color}${goto 13}CPU 2 ${goto 81}${color green}${cpu cpu2}% ${goto 131}${color3}${cpubar cpu2 18}
${color}${goto 13}CPU 3 ${goto 81}${color green}${cpu cpu3}% ${goto 131}${color3}${cpubar cpu3 18}
${color}${goto 13}CPU 4 ${goto 81}${color green}${cpu cpu4}% ${goto 131}${color3}${cpubar cpu4 18}
${color}${goto 13}CPU 5 ${goto 81}${color green}${cpu cpu5}% ${goto 131}${color3}${cpubar cpu5 18}
${color}${goto 13}CPU 6 ${goto 81}${color green}${cpu cpu6}% ${goto 131}${color3}${cpubar cpu6 18}
${color}${goto 13}CPU 7 ${goto 81}${color green}${cpu cpu7}% ${goto 131}${color3}${cpubar cpu7 18}
${color}${goto 13}CPU 8 ${goto 81}${color green}${cpu cpu8}% ${goto 131}${color3}${cpubar cpu8 18}
${color1}All CPU ${color green}${cpu}% ${goto 131}${color1}Temp: ${color green}${hwmon 2 temp 1}°C ${goto 250}${color1}Up: ${color green}$uptime
${color green}$running_processes ${color1}running of ${color green}$processes ${color1}loaded processes.
Load Avg. 1-5-15 minutes: ${alignr}${color green}${execpi .001 (awk '{printf "%s/", $1}' /proc/loadavg; grep -c processor /proc/cpuinfo;) | bc -l | cut -c1-4} ${execpi .001 (awk '{printf "%s/", $2}' /proc/loadavg; grep -c processor /proc/cpuinfo;) | bc -l | cut -c1-4} ${execpi .001 (awk '{printf "%s/", $3}' /proc/loadavg; grep -c processor /proc/cpuinfo;) | bc -l | cut -c1-4}
${color1}NVIDIA ${color}-GPU ${color green}${nvidia gpufreq} Mhz ${color}-Memory ${color green}${nvidia memfreq} Mhz
${color1}GT650M ${color}-Temp ${color green}${nvidia temp}°C ${color}-Threshold ${color green}${nvidia threshold}°C
${color orange}${voffset 2}${hr 1}
দ্রষ্টব্য: উপরের এনভিডিয়া কোডটি কখনও পরীক্ষা করা হয়নি কারণ আমি উবুন্টুর অধীনে এনভিডিয়া জিপিইউ পাইনি। এখন যে কোন বছর শীঘ্রই :)