Susidūriau vakar su problemėle. Kopijuojant gigabaitinį failą į USB atmintuką kompiuteris ima smarkiai stabdyti, net pelės žymeklis laikas nuo laiko prišąla prie ekrano. Pasižiūrėjau su top-u, procesorius beveik neapkrautas, jis neturėtu stabdyti. RAM užpildytas pilnai, čia aišku kešuojamas kopijuojamas failas, bet į swap-ą nieko nekrauna, todėl stabdyti taip pat neturėtu.
Priežastis paaiškėja pažiūrėjus į šią eilutę:
Cpu(s): 2.1%us, 1.3%sy, 0.0%ni, 0.3%id, 96.3%wa, 0.0%hi, 0.0%si, 0.0%st
96.3%wa reiškia, kad procesorius nieko daryti negali nes užsiėmęs laukimu kol atsilaisvins kažkoks procesas. Kvaila situacija panaši į valdininko darbą…
Šiandien radau sprendimą. Pasirodo problema linux užduočių planavimo nustatymuose. Jis bando vieną, neskaidomą užduotį paskirstyti tarp dviejų branduolių. O jie vienas kitą blokuoja :( Ką darom? Pirmiausia pažiūrim į pertraukimų sąrašą:
kiras@linuksoidas $ cat /proc/interrupts
CPU0 CPU1
...
19: 99 29095 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3
...
Susirandam pertraukimų numerius skirtus usb jungtims. Pas mane tik vienas, 19. Tada pririšam juos prie vieno kurio nors branduolio, pavyzdžiui prie nulinio:
echo 1 > /proc/irq/19/smp_affinity
… žiūrim kas gavosi. Man šis veiksmas padėjo. Jei susidūrėt su tokia pačia problema ir priežastis ta pati, padės ir jums.
2 komentarai
# mopsiuskas
Man buna taip su kopijavimu is CD/DVD. Nesigilinau, nes nedaznai ka nors taip kopijuoju, bet itariu priezastis panasi. Beje taip tinkasi ant Ubuntu, o su Fedora viskas lyg ir gerai. O su kuria distra cia taip dejosi?
[]# kiras,
Su Arch.
Beje, šie veiksmai bus naudingi tik iki pirmo OS perleidimo. Kur yra įrašyti pradiniai nustatymai neieškojau.
[]