ไม่จำเป็นต้องติดตั้งแพ็กเกจพิเศษใด ๆ เชลล์เก่าที่ดีของคุณสามารถทำมันได้ด้วยตัวเอง
หนึ่งซับนี้จะโหลดสี่คอร์ของคุณ1ที่ 100%:
for i in 1 2 3 4; do while : ; do : ; done & done
วิธีการทำงานค่อนข้างง่ายเริ่มสี่ลูปไม่มีที่สิ้นสุด แต่ละคนกำลังทำซ้ำคำสั่ง null ( :
) แต่ละลูปสามารถโหลดซีพียูคอร์ได้ที่ 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 วินาที) A 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 ที่รองรับมากกว่าหนึ่งเธรดต่อหนึ่งคอร์ (Hyper-threading) ระบบปฏิบัติการจะส่งโหลดไปยัง CPU เสมือนทั้งหมด ในกรณีนั้นพฤติกรรมโหลดขึ้นอยู่กับการใช้งาน (แต่ละเธรดอาจถูกรายงานว่าไม่ว่าง 100% หรือไม่) .
cat
พร้อมกันหลายอินสแตนซ์?