% 100 CPU kullanarak kswapd görüyorum ... hangi işlemin kswapd adına bu kadar çok kullanıldığını nasıl anlayabilirim?
% 100 CPU kullanarak kswapd görüyorum ... hangi işlemin kswapd adına bu kadar çok kullanıldığını nasıl anlayabilirim?
Yanıtlar:
kswapd, tüm işlemler için fiziksel olarak mevcut olandan daha büyük bellek taleplerine yanıt olarak takas alanını yönetiyor .
İşlem agnostiktir, sadece hangi sayfaların erişildiği ve ne zaman ilgilendiği ile ilgilidir (elbette bundan daha karmaşıktır ancak işleri basit bir şekilde tutmak da bu şekilde görebiliriz).
Bu yüzden asıl soru “hangi süreçlerin kswapd'ın her zaman sayfalara ihtiyaç duymasına yol açan bellek üzerinde en büyük yüke sahip olduğu” dür.
Bu en kolay 'top' kullanılarak cevaplanır ve hafıza kullanımı sıralama moduna geçer.
top
bana IO beklemesinde hiç zaman harcanmadığını ve sistemde neredeyse% 100 zaman harcandığını söylüyor. Daha fazla bilgi: kswapd, takas kullanımdayken genellikle% 100 CPU kullanıyor
Senaryo yazabilirsin .. ama üstünden de yapabilirsin
Çalıştır üst sonra basın Ç ardından p daha sonra girmek
Artık tüm işlemler takas kullanımına göre sıralanıyor ve hangilerinin kullandığını görebilirsiniz
Eğer Ubuntu 15.10 ya da daha yenisindeyseniz, bu aslında bir hatanın sonucu olabilir , özellikle de sisteminiz bir takas bölümünün bulunmadığı sanal bir makine ise (örneğin, AWS EC2). Sorun diğer dağıtımlarda da var , ancak yazım itibariyle aynı düzeltmenin evrensel olarak işe yarayıp yaramadığı belli değil.
Geçici bir geçici çözüm:
sudo ln -s /dev/null /etc/udev/rules.d/40-vm-hotadd.rules
sudo reboot
Bunun, Xen ve Hyper-V sanal makineleri için güvenli RAM / CPU'ları devre dışı bırakacağını unutmayın.
echo 3 > /proc/sys/vm/drop_caches
Olmaya başladığında bunu hafiflettiğini öğrendim . Önceden bir cron işi emri aldım ve şimdi bilgisayardan uzaktayken, en azından OOM katliamının süresini sınırlıyor gibi görünüyor.
Ayrıca bir kswapd
yerlerde bir böcek var gibi görünüyor , umarım sadece eski çekirdekler üzerindedir.
Neredeyse her gün şimdi kswapd, bazı makinelerde daha büyük bir kümedeki (mevcut olmayan bir çekirdekli) rasgele besleniyor. Her iki kswapd işleminde% 100 CPU. Başka çalışan işlem yoktur (ssh kabuğu hariç), bol miktarda boş RAM (700 MB'dan fazla) ve hiç SWAP kullanılmamıştır. Takas yok, takas yok.
Henüz hiçbir şey açıklamıyor, neden belirli bir makineye isabet edildiğini ve diğerinin neden gelmediğini. Tamamen rastgele görünmüyor, çünkü genellikle kısa sürede birden fazla makineye çarpıyor. Boşta kalan makinelerin yanı sıra yüksek basınç altındaki makinelerin de etkisi (!) Daha azdır. Bu nedenle iş yükü ile bir şeyler yapması gerekir ve yalnızca makine boşta değilse veya çok meşgul değilse vurur.
Sorun grev olursa artık hiçbir şey yardımcı olmaz. Tüm süreçleri öldürmek (katlanamaz hale geldi), tüm dosya sistemlerini sökmek, hiçbir şey. kswapd
hala% 100 CPU'da kalıyor. SMP çekirdeğindeki bazı spinlock yarışlarından şüpheleniyorum, fakat aynı zamanda hatalı olduğum da muhtemel.
Belki de cevabımı görün serverfault.com/questions/316995/#493257
Notlar: