Gerçekten daha az çalıştırmak için bir süreç elde edemezsiniz . Daha nicedüşük bir öncelik vermek için kullanabilirsiniz , ancak bu diğer süreçlerle ilgilidir. Bir işlem çalışırken CPU soğutucusunu çalıştırmanın yolu usleep(3), işlemi çalışma durumundan belirli bir süre zorlamak için kullanmaktır , ancak bu ya çok fazla kullanan yamalı bir işlev sağlamak için yamayı tarya da LD_PRELOADmekanizmayı kullanmayı içerir tar(ör. fopen(3)).
En iyi geçici çözümlerinizin SuperUser'da bahsettiğiniz donanımlar olduğundan şüpheleniyorum: dizüstü bilgisayarı serin tutmak ve / veya CPU saatini düşürmek.
Can sıkıcı ama muhtemelen uygulanabilir bir çözüm (gerçekten bir çamur) 'makroskopik' seviyede çalışır. tarHer 200ms'de 100ms koşmak yerine , her iki saniyede bir saniye çalıştırabilirsiniz. Not: Bu korkunç, korkunç bir çamurdur. Ama hey, işe yarayabilir!
tar cjf some-file.tar.bz2 /some-directory &
while true; do
sleep 1 # Let it run for a second
kill -STOP $! 2>/dev/null || break
sleep 1 # Pause it for a second
kill -CONT $! 2>/dev/null || break
done
Birincisi sleepuyku süresini, ikincisi çalışma zamanını ayarlar. Şu an olduğu gibi,% 50 görev döngüsüne sahip. Sıcaklığı düşük tutmak için, görev döngüsünü belki de% 25 veya daha düşük bir değere düşürmeniz gerekecektir (1 saniye çalışma, 3 saniye uyku = her 4 saniyede 1 =% 25 görev döngüsü). Kabuk komutu sleepbu arada kesirli zamanlar alabilir. Böylece söyleyebilirsin sleep 0.1. Emin olmak için 0.001'in üzerinde tutun ve komut dosyası yürütmenin de zamana eklendiğini unutmayın.