किसी भी अतिरिक्त पैकेज को स्थापित करने की आवश्यकता नहीं है, आपका अच्छा पुराना शेल इसे अकेले करने में सक्षम है।
यह एक-लाइनर अपने चार केंद्रों को लोड होगा 1 100% पर:
for i in 1 2 3 4; do while : ; do : ; done & done
यह कैसे काम करता है काफी सरल है, यह चार अंतहीन छोरों को शुरू करता है। उनमें से प्रत्येक शून्य निर्देश ( :
) दोहरा रहा है । प्रत्येक लूप एक CPU कोर को 100% पर लोड करने में सक्षम है।
यदि आप उपयोग करते हैं bash
, ksh93
और अन्य गोले समर्थन पर्वतमाला, (अर्थात नहीं dash
या अधिक पुराने ksh
), तो आप इस गैर पोर्टेबल सिंटैक्स का उपयोग कर सकते हैं:
for i in {1..4}; do ...
4
सीपीयू की संख्या से प्रतिस्थापित करें जिसे आप अलग से लोड करना चाहते हैं 4
।
यह मानते हुए कि आपके पास पहले से चल रही कोई पृष्ठभूमि नौकरी नहीं थी, जब आपने इनमें से एक लूप लॉन्च किया था, तो आप उस कमांड के साथ लोड जेनरेशन को रोक सकते हैं:
for i in 1 2 3 4; do kill %$i; done
@ अंडरस्कोर_ड की टिप्पणी का उत्तर देते हुए, यहां एक वर्धित संस्करण है जो लोड को रोकने में बहुत सरल करता है और जो टाइमआउट (डिफ़ॉल्ट 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 ध्यान दें कि CPU प्रति कोर (हाइपर-थ्रेडिंग) एक से अधिक थ्रेड का समर्थन करने के साथ, OS सभी वर्चुअल CPU को लोड भेजेगा। उस स्थिति में, लोड व्यवहार कार्यान्वयन पर निर्भर है (प्रत्येक थ्रेड को 100% व्यस्त या नहीं के रूप में रिपोर्ट किया जा सकता है)। ।
cat
एक साथ कई उदाहरण चलाना संभव है ?