কোনও অতিরিক্ত প্যাকেজ ইনস্টল করার দরকার নেই, আপনার ভাল পুরানো শেল এটি একা করতে সক্ষম।
এই এক-লাইনের আপনার চার কোর লোড করা হবে 1 100% হয়:
for i in 1 2 3 4; do while : ; do : ; done & done
এটি কীভাবে কাজ করে তা বেশ সহজ, এটি চারটি অন্তহীন লুপগুলি শুরু করে। তাদের প্রত্যেকে নাল নির্দেশ ( :
) টি পুনরাবৃত্তি করছে । প্রতিটি লুপ 100% এ সিপিইউ কোর লোড করতে সক্ষম।
আপনি ব্যবহার করেন তাহলে bash
, ksh93
এবং অন্যান্য শাঁস রেঞ্জ সমর্থন (অর্থাত না dash
বা তার বেশী বয়সের ksh
), আপনি এই অ পোর্টেবল সিনট্যাক্স ব্যবহার করতে পারেন:
for i in {1..4}; do ...
4
আপনি যদি আলাদা করতে চান তবে যে পরিমাণ সিপিইউ লোড করতে চান তা প্রতিস্থাপন করুন 4
।
এই ধরণের কোনও লুপ চালু করার সময় আপনার ইতিমধ্যে কোনও পটভূমি কাজ চলছে না তা ধরে নিই, আপনি এই আদেশটি দিয়ে লোড উত্পাদন বন্ধ করতে পারবেন:
for i in 1 2 3 4; do kill %$i; done
@ Underscore_d এর মন্তব্য উত্তর, এখানে একটি বর্ধিত সংস্করণ যা অনেক লোড বাঁধন প্রক্রিয়া সহজ এবং যে একটি সময়সীমার (। ডিফল্ট 60 সেকেন্ড) একটি নির্দিষ্ট অনুমতি Control- Cসব পলাতক লুপ খুব মেরে ফেলবে। এই শেল ফাংশনটি অন্তত bash
এবং এর নীচে কাজ করে ksh
।
# Usage: lc [number_of_cpus_to_load [number_of_seconds] ]
lc() {
(
pids=""
cpus=${1:-1}
seconds=${2:-60}
echo loading $cpus CPUs for $seconds seconds
trap 'for p in $pids; do kill $p; done' 0
for ((i=0;i<cpus;i++)); do while : ; do : ; done & pids="$pids $!"; done
sleep $seconds
)
}
1 নোট করুন যে সিপিইউগুলি প্রতিটি প্রতি একাধিক থ্রেডকে সমর্থন করে (হাইপার-থ্রেডিং), ওএস সমস্ত ভার্চুয়াল সিপিইউগুলিতে লোড প্রেরণ করবে। সেক্ষেত্রে লোড আচরণটি বাস্তবায়ন নির্ভর (প্রতিটি থ্রেড 100% ব্যস্ত বা না হিসাবে রিপোর্ট করা হতে পারে)। ।
cat
একসাথে একাধিক উদাহরণ চালানো কি সম্ভব ?