d(¬,¬)b

GNU, Linux, Arch, Matematik, Fizik

CPUfreq Kullanımı

leave a comment »

Fanın deli gibi ötmesine çözüm ararken sevgili ras0ir sayesinde öğrendiğim bir şey var: CPUfreq.

HP Compaq 6730s model bir bilgisayarım var. (Aslında artık yok sayılır, kardeşime vereceğim onu. Çünkü 2 gün önce Dell Inspiron N5010 aldım.) Bu bilgisayarımın içine ettiğimden olsa gerek, fanı durmadan döner. Fanın bu “anormal” dönüş hızını toza bağlamış olsam da öyle olmadığı gün gibi ortada. Çünkü işlemci ısındıkça işlemciyi soğutmak için daha fazla hava sirkülasyonu oluşturmak isteyen ve tıkanmış ızgaralardan dolayı bunu başaramayan bir fanın normalin altında olan sıcaklık değerlerinde son frekansta dönmesi mantıklı değil. Fanın dönüş hızını kontrol etmenin çözüm olacağını düşünürken fanın neden son hızda döndüğüyle pek ilgilenmemiştim. ras0ir’in dürtmesiyle kendime geldim. Fan son frekansta çalışıyordu çünkü son frekansta çalışan başka bir sistem bileşeni daha vardı: işlemci.

İşlemcilerin belirli bir çalışma frekans aralığı var. HP bilgisayarım için bu değerler 1.20-2.00 GHz. Yani bu makinenin işlemcisi sistemde az sayıda işlem etkinden 1.20 GHz’e yakın değerlerde çalışacaktı. Ama iş öyle değil. Windows sistemlerinde işlemcinin frekansı işlem yoğunluğuna göre ayarlanıyor fakat Linux’ta öyle değil. cpufreq-info komutu ile işlemcinin çalışma frekansına baktığımda son frekansta çalıştığını gördüm. Sistem açıldığı andan itibaren fanın deli gibi dönmesinin sebebi de buydu çünkü işlemci son frekansta çalışıyordu.

İşte böyle durumlara kurtarıcı olmak için cpufreq servisi önemli bir rol oynuyor. İşlemci frekansının limitlerini belirlememize izin veriyor ve sistemdeki işlem yoğunluğuna göre işlemci frekansını otomatikman değiştiriyor. Bu değişimi yaptırmak için işlemcinin maksimum ve minimum frekanslarını bilmemiz gerekiyor. Onun için de cpufreq-info‘yu kullanıyoruz fakat önce gerekli olan acpi-cpufreq modülünü yüklememiz gerekiyor:

modprobe acpi-cpufreq

Ardından cpufreq-info komutunu veriyoruz ve yaklaşık olarak şöyle bir çıktısı oluyor:

cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us.
hardware limits: 931 MHz – 2.53 GHz
available frequency steps: 2.53 GHz, 2.39 GHz, 2.26 GHz, 2.13 GHz, 2.00 GHz, 1.86 GHz, 1.73 GHz, 1.60 GHz, 1.46 GHz, 931 MHz
available cpufreq governors: powersave, ondemand, performance
current policy: frequency should be within 931 MHz and 2.53 GHz.
The governor “ondemand” may decide which speed to use
within this range.
current CPU frequency is 931 MHz.
analyzing CPU 1:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 1
maximum transition latency: 10.0 us.
hardware limits: 931 MHz – 2.53 GHz
available frequency steps: 2.53 GHz, 2.39 GHz, 2.26 GHz, 2.13 GHz, 2.00 GHz, 1.86 GHz, 1.73 GHz, 1.60 GHz, 1.46 GHz, 931 MHz
available cpufreq governors: powersave, ondemand, performance
current policy: frequency should be within 931 MHz and 2.53 GHz.
The governor “ondemand” may decide which speed to use
within this range.
current CPU frequency is 931 MHz.
analyzing CPU 2:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 2
maximum transition latency: 10.0 us.
hardware limits: 931 MHz – 2.53 GHz
available frequency steps: 2.53 GHz, 2.39 GHz, 2.26 GHz, 2.13 GHz, 2.00 GHz, 1.86 GHz, 1.73 GHz, 1.60 GHz, 1.46 GHz, 931 MHz
available cpufreq governors: powersave, ondemand, performance
current policy: frequency should be within 931 MHz and 2.53 GHz.
The governor “ondemand” may decide which speed to use
within this range.
current CPU frequency is 931 MHz.
analyzing CPU 3:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 3
maximum transition latency: 10.0 us.
hardware limits: 931 MHz – 2.53 GHz
available frequency steps: 2.53 GHz, 2.39 GHz, 2.26 GHz, 2.13 GHz, 2.00 GHz, 1.86 GHz, 1.73 GHz, 1.60 GHz, 1.46 GHz, 931 MHz
available cpufreq governors: powersave, ondemand, performance
current policy: frequency should be within 931 MHz and 2.53 GHz.
The governor “ondemand” may decide which speed to use
within this range.
current CPU frequency is 931 MHz.

Donanım limitleri (hardware limits) bizim kullanacağımız maksimum ve minimum frekanslar. Benim işlemcim en düşük 931 MHz’te, en yüksek 2.53 GHz’te çalışabiliyor. Bu değerleri /etc/conf.d/cpufreq dosyasına ekliyoruz. Dosyanın içeriği şöyle bir şey:

#configuration for cpufreq control

# valid governors:
# ondemand, performance, powersave,
# conservative, userspace
#governor=”ondemand”

# limit frequency range (optional)
# valid suffixes: Hz, kHz (default), MHz, GHz, THz
#min_freq=”xxxMHz”
#max_freq=”xxxGHz”

# use freq to set up the exact cpu frequency using it with userspace governor
#freq=

Dosyanın orijinalinde min_freq ve max_freq etkin değil. Burada yazan değerler de (Ben kendiminkileri unuttuğum için xxx yazdım.) Biz bunları donanım limitleriyle değiştirip etkinleştirdiğimizde ve en önemlisi de sistemin o frekans aralığında frekansı değiştirebilmesi için governor seçeneğini etkin hale getirdiğimizde Windows’un otomatik olarak yaptığı şeyi (Yazar burada Linux’a bok atıyor.) Linux’a yaptırmış oluyoruz.

#configuration for cpufreq control

# valid governors:
# ondemand, performance, powersave,
# conservative, userspace
governor=”ondemand”

# limit frequency range (optional)
# valid suffixes: Hz, kHz (default), MHz, GHz, THz
min_freq=”931MHz”
max_freq=”2.53GHz”

# use freq to set up the exact cpu frequency using it with userspace governor
#freq=

Dosyayı kaydediyoruz. /etc/rc.conf‘ta MODULES satırına acpi-cpufreq, cpufreq_ondemand ve cpufreq_powersave modüllerini ekliyoruz ki aynı anda DAEMONS satırına eklediğimiz cpufreq‘in sistem açılırken çalışabilmesi için gerekli modüller yüklenebilsin. Ayarları kaydettikten sonra bu üç modülü yükleyip ardından cpufreq hizmetini başlatıyoruz.

modprobe {acpi-cpufreq,cpufreq_ondemand,cpufreq_powersave}
rc.d start cpufreq

Sonra sistem çalışma durumuna ve cpufreq-info çıktısında gördüğümüz frekans basamaklarına göre işlemci frekansını değiştirmeye başlayarak fan sesinin önüne “bir nebze” geçmeye başlıyor. “Bir nebze” diyorum çünkü ben pek fazla yararını göremedim bunun. Pil ömrü açısından çok yararlı olduğunu biliyorum ama zaten güce bağlı çalışıyorum. O sebeple fan sesine çözüm benim için donanımsal görünüyor. Ya da korkaklığı bırakıp çiçeği burnunda işlemcimi yakmak uğruna fancontrol’ü kullanacağım.

Written by jeaquares

19 Mayıs 2011 03:23

Arch Linux, Donanım, GNU/Linux, Sorun - Çözüm kategorisinde yayınlandı

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: