Không cần phải cài đặt bất kỳ gói bổ sung, vỏ cũ tốt của bạn có thể làm điều đó một mình.
Lớp lót này sẽ tải bốn lõi 1 của bạn với tỷ lệ 100%:
for i in 1 2 3 4; do while : ; do : ; done & done
Cách thức hoạt động khá đơn giản, nó bắt đầu bốn vòng lặp vô tận. Mỗi người trong số họ đang lặp lại lệnh null ( :
). Mỗi vòng lặp có thể tải lõi CPU ở mức 100%.
Nếu bạn sử dụng bash
, ksh93
và vỏ khác hỗ trợ phạm vi, (tức là không dash
trở lên ksh
), bạn có thể sử dụng cú pháp di động phi này:
for i in {1..4}; do ...
Thay thế 4
bằng số lượng CPU bạn muốn tải nếu khác với 4
.
Giả sử bạn không có công việc nền nào đã chạy khi bạn khởi chạy một trong các vòng lặp này, bạn có thể dừng việc tạo tải bằng lệnh đó:
for i in 1 2 3 4; do kill %$i; done
Trả lời bình luận của @ underscore_d, đây là phiên bản nâng cao giúp đơn giản hóa rất nhiều việc dừng tải và cũng cho phép chỉ định thời gian chờ (mặc định là 60 giây.) A Control- Ccũng sẽ giết tất cả các vòng chạy trốn. Hàm shell này hoạt động ít nhất dưới bash
và 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 Lưu ý rằng với các CPU hỗ trợ nhiều hơn một luồng cho mỗi lõi (Siêu phân luồng), HĐH sẽ gửi tải cho tất cả các CPU ảo. Trong trường hợp đó, hành vi tải phụ thuộc vào việc triển khai (mỗi luồng có thể được báo cáo là bận 100% hay không). .
cat
cùng một lúc không?