[Çözüldü] ksoftirqd /1 %100 cpu kullanıyor

Başlatan noktakom, 11 Kasım 2009 - 12:42:20

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

sema

Son kez şöyle yapalım. O noktalı virgüllerden birini sil (her iki satır için de),çünkü programlama mantığına göre öyle olmalı. Echo'dan anlamasam da.. İşe yaramazsa oluşturduğumuz ikinci dosyayı silip yeniden bakalım. Bu da işe yaramazsa işe yaramıyordur :) Zorladık yeterince.
susema

noktakom

yok hocam, olmayacak bu böyle dediğim gibi siz bana son yöntem olarak ksoftirqd yi silmeyi gösterebilirseniz, bir de onu denemek istiyorum, içimde kalacak yoksa :) bunu da şu yüzden söylüyorum pc beklemeye de uykuya da giriyor fakat çıktığında bu ksoftirqd kasma yapıyor. bence sorun neyse bundadır. bunu silersek sorunu da kökünden halletmiş oluruz :)

sema

Bu silinecek bir şey mi ki! En azından çalışmasını durdurabiliriz, bir şey olursa karışmam zaten :) Yalnız son oluşturduğumuz dosyaları siler misiniz, kafam hâlâ o noktalı virgülde. Şuradan pid numarasını öğrenip;

ps aux | grep ksoftirqd/1

Şöyle durdurabiliriz;

kill pid

Şöyle de olur;

killall ksoftirqd/1

Olmazsa şöyle;

killall ksoftirqd

İşleme izin verilmezse başına sudo yazın, tamamen sallıyorum. Çünkü program ya da komut ya da her neyse, hakkında bilgim yok.
susema

noktakom

pid numarası hangisi oluyor ?
asus@asus-F5SR:~$ ps aux | grep ksoftirqd/1
root      3037 35.9  0.0      0     0 ?        R    16:31   1:25 [ksoftirqd/1]
asus      3434  0.0  0.0   5300   772 pts/2    S+   16:35   0:00 grep --color=auto ksoftirqd/1
asus@asus-F5SR:~$


diğerlerinde de argümanlar süreç veya iş kimlikleri olmalı diyor.

Neyse ben söz teşekkür edeyim, siz de konuyu [Çözülmedi] diye :) etiketleyip kapatırsınız...

zeitgeist

Sorunun çözülmediği başlıklarda [ Çözülmedi,Çözülmüyor ve Çözülmeyecek :) ] gibi bir etiket koymuyoruz ve kapatmıyoruz. Sorunla ilgili fikri olanlar zaman içinde bu konuya katkı yapabilirler.

Konu başlığını bu yüzden düzenliyorum.
Özgürlüğü ne kadar anlarsan o kadar az sahip olursun. John Fowles

eribol

http://www.linuxquestions.org/questions/linux-general-1/ksoftirqd-80255/

Yıllar öncesinden bir mevzu bahis olay var. Kısaca /etc/module.conf dosyasına aşağıdaki iki satır eklenmiş.
Alıntı Yapalias sound-slot-0 off
alias sound-service-0-3 off
Ayrıca bu paket/süreç/program herneyse sıradan bir şey değil. Irq geçiyor işin içinde, yani bir nevi donanım ve işlemci arasında ki bir işi bu paket yürütüyor.

noktakom

Alıntı yapılan: eribol - 04 Ocak 2011 - 17:10:12
http://www.linuxquestions.org/questions/linux-general-1/ksoftirqd-80255/

Yıllar öncesinden bir mevzu bahis olay var. Kısaca /etc/module.conf dosyasına aşağıdaki iki satır eklenmiş.
Alıntı Yapalias sound-slot-0 off
alias sound-service-0-3 off
Ayrıca bu paket/süreç/program herneyse sıradan bir şey değil. Irq geçiyor işin içinde, yani bir nevi donanım ve işlemci arasında ki bir işi bu paket yürütüyor.

Kodlar işe yaramadı.

Peki hangi donanım olduğunu öğrenebilir miyiz ? yani atıyorum webcam gibi çok önemli olmayan birşeyse, onun sürücüsünü kaldırırarak devre dışı bırakabilirdık..

sema

Alıntı Yap
pid numarası hangisi oluyor ?
asus@asus-F5SR:~$ ps aux | grep ksoftirqd/1
root      3037 35.9  0.0      0     0 ?        R    16:31   1:25 [ksoftirqd/1]
asus      3434  0.0  0.0   5300   772 pts/2    S+   16:35   0:00 grep --color=auto ksoftirqd/1

Sonucu ben de merak ettim. Şu;

sudo kill 3037
sudo kill 3434


İşe yarar ve bir sorun olmazsa başlangıç uygulamalarına komut olarak koyabiliriz. Tabii donanımsal bir şey değilse.
susema

eribol

syslog dosyasından bakılabilir(var/log dizini altında). Mesela o başlıkta raid kısımları veya sistemde olmayan donanımlar ile ilgili çıktılar mevcut. Onlar tespit edilirse belki onların izlenmemesi için bir şeyler yapılabilir.

Not: Bu süreci durdurmaya çalışmayın, sistem kitlenebilir. Hele programı başlangıçta çalıştırmamak gibi bir durum olursa daha kötü olur.

sem

3434 PID numaralı süreç "ps aux"  çıktısını alırken kullanılan uygulamanın kendisi sanırım... Onu sonlandırmaya çalışınca "process not found" ya da "süreç bulunamadı" uyarısı almak muhtemel...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

sema

Alıntı yapılan: eribol - 04 Ocak 2011 - 19:14:55
Not: Bu süreci durdurmaya çalışmayın, sistem kitlenebilir. Hele programı başlangıçta çalıştırmamak gibi bir durum olursa daha kötü olur.

Ya vermemim sebebi zaten yeniden kurulumu göze almış. Madem öyle bence deneyelim, bir şey olmayacağına bahse girerim, en fazla yeniden başlatır bilgisayarını. Sonradan başlangıç uygulamalarından kaldırabiliriz, sonrasında sorun olursa.

Bir de bu PID'ler değişebiliyor mu, merak ettim şimdi. Eğer sürekli bir değişiklik söz konusuysa başlangıç uygulamalarına ekleyemeyiz. Misal arka sayfada top kodunu vermiş ve uygulamanın PID numarası 2302 olmuş. Biz en iyisi yeniden top çıktısını isteyelim.

@hkndvd, şunun çıktısında ksoftirqd/1'in PID yazan yerin altında PID'ini görebilirsin. Sonra da şunu uygula;

top

sudo kill pid

@sem, iki tane olmasına kafam karışmıştı zaten.
susema


sem

sema PID numaralarından init sürecinin daima 1 olması gerekiyor. Daha sonra init fork yapa yapa diğer süreçleri başlatıyor. Sistem için gerekli olanlar tabii ki önceden başlatılıyor. Bunun sırasının bir garantisi var mı emin değilim... Yani bir chromium'um PID numarası onu açıp kapatınca değişebilir fakat sistem belli şekilde açılıyorsa ilk başlardaki sistem uygulamalarının da garantisi olur mu araştırmak lazım...

Başlangıç uygulamalarına eklemeyi düşündüğün nedir? Programı sonlandıran komut mu? Eğer öyle ise, PID numrarası sabit olmasa da pkill ile süreç isminden sonlandırmak denebilir... Tabii bir kere süreci durdurduktan sonra neler olduğuna bakıp gerekirse eribol'un uyarısına uymak gerekebilir sanırım...

EK: Ben yazarken eribol yazmış... Süreç illa ki bir şekilde sonlandırılabilir diye düşünüyorum... Sürece bir C programı ile ya da bir Bash betiği ile göz ardı edemeyeceği sinyaller root tarafından gönderilirse sonlanmak zorunda kalacaktır. user_ıd root olarak gözüküyor çünkü, normal bir kullanıcı sonlandıramayabilir...  Tabii ne kadar sağlıklı bir işlem olur orası bir muallak...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

sema

su@su:~$ top

top - 19:49:24 up  5:03,  2 users,  load average: 0.58, 0.66, 0.54
Tasks: 142 total,   2 running, 140 sleeping,   0 stopped,   0 zombie
Cpu(s):  9.4%us,  3.0%sy,  0.0%ni, 87.0%id,  0.4%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   2058444k total,   935328k used,  1123116k free,    63112k buffers
Swap:  1464316k total,        0k used,  1464316k free,   391656k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
1113 root      20   0 63320  48m  11m S   92  2.4  16:53.90 Xorg               
3973 su        20   0  462m 137m  29m R   12  6.8  12:00.35 firefox-bin       
  698 root      20   0     0    0    0 S    2  0.0   0:23.54 phy0               
7117 su        20   0  2616 1104  828 R    2  0.1   0:00.01 top               
    1 root      20   0  2888 1676 1220 S    0  0.1   0:00.98 init               
    2 root      20   0     0    0    0 S    0  0.0   0:00.01 kthreadd           
    3 root      20   0     0    0    0 S    0  0.0   0:00.46 ksoftirqd/0       
    4 root      RT   0     0    0    0 S    0  0.0   0:00.05 migration/0       
    5 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0         
    6 root      RT   0     0    0    0 S    0  0.0   0:00.05 migration/1       
    7 root      20   0     0    0    0 S    0  0.0   0:00.19 ksoftirqd/1       
    8 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1         
    9 root      20   0     0    0    0 S    0  0.0   0:05.30 events/0           
   10 root      20   0     0    0    0 S    0  0.0   0:00.19 events/1           
   11 root      20   0     0    0    0 S    0  0.0   0:00.00 cpuset             
   12 root      20   0     0    0    0 S    0  0.0   0:00.00 khelper


 
su@su:~$ kill 7
bash: kill: (7) - İşleme izin verilmedi
su@su:~$ sudo !!
sudo kill 7
[sudo] password for su:
su@su:~$


Durdurdum.

@sem, evet o şekilde de yapılabilir ya da killall ile. @eribol inceleyeceğim oradakileri de..
susema

eribol


sem

sem0900@debian:~$ ps aux | head -n 8
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2032   600 ?        Ss   15:02   0:01 init [2] 
root         2  0.0  0.0      0     0 ?        S    15:02   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    15:02   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    15:02   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    15:02   0:00 [watchdog/0]
root         6  0.0  0.0      0     0 ?        S    15:02   0:00 [migration/1]
root         7  0.0  0.0      0     0 ?        S    15:02   0:00 [ksoftirqd/1]


Tesadüf mü bilemiyorum ama bende de PID 7...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

sema

Biri daha kontrol ederse tesadüf olup olmadığını anlayabiliriz. Belki birçok şeyin cevabı olur bu. Aklıma bir soru daha takıldı şimdi, PID'ler bizim isteklerimizle değiştirilebilir mi? Belki yanlış PID'lenmiştir :P

Bu arada @eribol, bir daha baktım top komuduna, hâlâ çalışıyor gibi duruyor ama durdurmuştum ben onu. Eminim :P
susema

eribol

Konu değiştikçe değişiyor. Hayır pid numarası çalışmaya başlayan her sürece sırasıyla atanır. Hatta sırasıyla gider, bir sonra ki süreç ne olursa olsun en son pid numarasını alır. Eski pid numarası diye bir şey yok. Ve evet tesadüf sadece ama zaten çekirdeğin bir parçası olarak ilk çalışmaya başlayan bir süreç olduğu için ilk 10 numaradan birini alır.

noktakom

Şu an ksoftirqd/0 ın pid numarası 3, ksoftirqd/1 in ki ise 3083 olarak gözüküyor ve

sudo kill 3
sudo kill 3083

dediğimde programlar / komutlar her neyse sonlanmıyor. hala çalışmaya devam ediyor.


Şunda ise şöyle bir uyarı veriyor

sudo kill 3457
kill: No such process





sema

İşe yaramıyor gibi gözüküyor. Şunu dene bir de, bende yaramadı, sende de yaramaz.

sudo kill -9 3083

Olmadı şunu dene, denemedim ben, nasılsa işe yaramayacak;

sudo kill -15 3083

Sadece uykudan sonra yaşanıyorsa bu sorun çok sorun etme, sorun edeceksen de formatla düzeliyorsa format at bence.
susema

noktakom

Alıntı yapılan: sema - 04 Ocak 2011 - 21:42:47
Olmadı şunu dene, denemedim ben, nasılsa işe yaramayacak;

sudo kill -15 3083

nasılsa işe yaramayacak diye yazıyorsunuz artık önerileri :) enerjinizi yokettiğim için  kendimden utanıyorum  valla :)

guestwho

    "Ksoftirqd" (Kernel Soft Interrupt Queue Daemon) işlemcilerin kesinti mekanizmasını yöneten Linux çekirdeğindeki iş parçacıklarından (thread) birisidir. C programlama diliyle uğraşan arkadaşlar ilgili yordamları Linux çekirdeğinin kaynak kodlarındaki ("/kernel" dizini altında) "softirq.c" dosyasında bulabilirler. Burada bilinmesi gereken nokta şu; Linux çekirdeği etrafındaki ek fonksiyonlar modüler bir yapıya sahiptir ve bunlar çekirdeğe parametre göndererek devre dışı bırakılabilir ya da yapılandırılabilir (soft-coded); lakin çekirdeğin merkezindeki (core) fonksiyonlar ("ksoftirqd" gibi) modüler değildir ve bunlar yama yazmaksızın devre dışı bırakılamaz ya da yeniden yapılandırılamaz (hard-coded).

    Buradaki sorunu çözmek adına çekirdeğin "softirq.c" dosyasına ait güncel yamaları içeren "2.6.36.x" sürümü ".deb" paketlerinden ya da ilgili Ppa'lardan da kurulabilir. @hkndvc şu komutların çıktılarını aktarsana, ona göre Ppa'dan ya da ".deb" paketlerinden kurulum yapacağız:

cat /etc/lsb-release
uname -a
You want weapons? We're in a library. Books are the best weapon in the world. This room's the greatest arsenal we could have. Arm yourself!

noktakom

asus@asus-F5SR:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"
asus@asus-F5SR:~$ uname -a
Linux asus-F5SR 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 01:41:57 UTC 2010 i686 GNU/Linux
asus@asus-F5SR:~$

guestwho

    Gerekli paketleri indirmek için:

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.36-maverick/linux-headers-2.6.36-020636-generic_2.6.36-020636.201010210905_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.36-maverick/linux-headers-2.6.36-020636_2.6.36-020636.201010210905_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.36-maverick/linux-image-2.6.36-020636-generic_2.6.36-020636.201010210905_i386.deb

    Paketlerin indirildiği dizine geçiş yaptıktan sonra bu paketleri kurmak için:

sudo dpkg -i linux*.deb

    Ardından sistemi yeniden başlatıp sorunun devam edip etmediğini kontrol edebilirsin.
You want weapons? We're in a library. Books are the best weapon in the world. This room's the greatest arsenal we could have. Arm yourself!

noktakom

X gelmiyor, komut ekranı çıkıyor.