Nowe posty

Autor Wątek: Zwieszający się Linuks  (Przeczytany 2913 razy)

maro111

  • Gość
Zwieszający się Linuks
« dnia: 2018-11-24, 21:08:38 »
Mam od dłuższego czasu problem ze zwieszającym się Linuksem. Mianowicie od dłuższego czasu, bez względu na to jak długo komputer jest używany (w sensie, czy jak daję uśpij, to jest to kilka razy, czy wiele razy / czy jest otwarte wiele okien w przeglądarce, czy nie / czy wiele plików Open Office na desktopie, czy nie), to po jakimś czasie mi się zwiesza.
Zwieszanie się polega na tym, że widzę jak okna (na przykład Open Office) się otwierają, ale gdzieś w tle, są przezroczyste i nie można nic skorzystać. Widzę zdjęcie na pulpicie przytłumione mgłą tych okien. Jak nacisnę na poszczególne odnośniki/zakładki na pasku na dole ekranu, to widzę, że mi się te okna otwierają, ale tak jak pisałem, w tle.
Dodam, że mi się komputer nie przegrzewa, a przynajmniej tego nie słychać.
Czy mielibyście jakiś pomysł, co mógłbym zrobić, żeby wyeliminować przyczynę? Byłbym wdzięczny.
 Mam Ubuntu

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2757
  • 1709
    • Zobacz profil
Odp: Zwieszający się Linuks
« Odpowiedź #1 dnia: 2018-11-25, 00:59:05 »
Mozesz ograniczyc liczbe procesow.
Niestety nie znajde Ci lepszego poradnika teraz ( wyszukiwarka sie obrazila, albo usuneli )
https://www.tecmint.com/set-limits-on-user-processes-using-ulimit-in-linux/

Jak to bedzie dzialac ?
- System nadal sie zawiesi, ale przy pomocy "Ctrl+Alt+F1"
bedziesz mogl sie zalogowac do trybu tekstowego na konto administratora i przy pomocy top
https://pl.wikipedia.org/wiki/Top_(Unix)
bedziesz mogl ubic proces.
- Wazne tez jest sprawdzenie czy w chwili zawiechy jest wystarczajaco duzo pamieci RAM, miejsca na dysku.
- Istotne takze jest ustawienie liczby procesow ( trzeba to zrobic metoda prob i bledow )
Chodzi oto ze root musi dzialac, a ulimit czy jak mu tam ograniczy liczbe uruchomionych procesow uzytkownika do pewnej wartosci ustalonej w konfiguracji.
Tego czegos wlasnie uzywa sie do zabijania wrednych procesow
" do obrony przed atakiem "  " fork bomby " https://pl.wikipedia.org/wiki/Fork-bomba
( program ogranicza liczbe procesow dla danego uzytkownika, a ubic szkodnika trzeba recznie )

Cytuj
komputer nie przegrzewa, a przynajmniej tego nie słychać.
- To sprawdz jakims benchmarkiem

Sprobuj uruchomic program z terminala,
powinienes widziec bledy, jesli wystapia. ( mozesz zapisac do pliku )
Mozesz przejzec logi systemowe ze zdarzen w chwili zawieszenia.
« Ostatnia zmiana: 2018-11-26, 12:25:45 wysłana przez 1709 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline mackeire

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 490
    • Zobacz profil
Odp: Zwieszający się Linuks
« Odpowiedź #2 dnia: 2018-11-25, 11:25:59 »
A mnie interere specyfikacja sprzętu. Jaki proc , grafa i ile ram.

maro111

  • Gość
Odp: Zwieszający się Linuks
« Odpowiedź #3 dnia: 2018-11-25, 14:13:05 »
Ok. To prosiłbym łopatologicznie. Jakie konkretnie komendy, w którym momencie, powinienem wpisywać, żeby uzyskać efekt o którym mówicie? Jakie procesy powinienem "ubić", jak one mogą wyglądać? Chodzi mi o to, żebym nie ubił czegoś co akurat jest niewinne i pożyteczne... Jeśli to są te fork-bomby, to czy da się tego pozbyć tak definitywnie, żebym nie musiał się zastanawiać, co coś robi na moim komputerze i dlaczego?

Co do specyfikacji sprzętu prosiłbym o podanie konkretnych komend. Szukałem ich w necie, ale jakoś tak mało skutecznie...

Jak sprawdzić jakie błędy występują - jaką komendę/komendy powinienem wpisać?
Jak dotrzeć do logów systemowych z chwili zawieszenia? Tu mogę powiedzieć, że jeśli mi się system zawiesi, to jedyną opcją jest wyłączenie komputera.

Offline pavbaranov

  • Users
  • Guru
  • *****
  • Wiadomości: 878
    • Zobacz profil
Odp: Zwieszający się Linuks
« Odpowiedź #4 dnia: 2018-11-25, 15:03:48 »
Nikt Ci nie powie jaką usługę możesz usunąć, bo nikt nie siedzi przy Twoim komputerze.
W pierwszej kolejności należy sprawdzić co się w systemie dzieje, bo nie wiadomo co powoduje takie, a nie inne zachowanie. Dobrze wykorzystać ów top, o którym wspomniał @1709, można też odpalić cokolwiek z konsoli.
Z innego Twojego postu wynika, że system zainstalował Ci znajomy, a Ty kompletnie na jego obsłudze się nie znasz. Nawet hasła do systemu nie znasz. Skorzystaj raz jeszcze z pomocy znajomego. Będzie najprościej.
Być może też, po aktualizacji systemu problemy znikną.
« Ostatnia zmiana: 2018-11-25, 15:06:06 wysłana przez pavbaranov »

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3047
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Zwieszający się Linuks
« Odpowiedź #5 dnia: 2018-11-25, 15:15:21 »
Cytuj
Co do specyfikacji sprzętu prosiłbym o podanie konkretnych komend.

Matko Bosko Linuksowo! Nie wiesz, jaki masz procesor, płytę główną, kartę graficzną? Czy to laptop, czy desktop? Do tego nie jest potrzebny program a (ewentualnie) okulary...
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2757
  • 1709
    • Zobacz profil
Odp: Zwieszający się Linuks
« Odpowiedź #6 dnia: 2018-11-26, 00:21:38 »
Jeśli można, to spokojnie moze nie jest tak zle jak wyglada.
Moze zacznijmy od poszukania benchmarka na linuxa, lub jakiegos narzedzia.

Wpisuje w wyszukiwarke linux benchmarks
linux --> bo szukam na temat linuxa
benchmarks --> po angielsku , bo w jez. angielskim jest wiecej wynikow
do pomocy mozna sie wspomoc translatorami on-line np https://translate.google.pl/?hl=pl

No to zajrzyjmy do wynikow
https://duckduckgo.com/?q=linux+benchmarks&t=ffsb&ia=web
Pierwszy wynik i Hardinfo
Jesli nie mozesz zainstalowac i nie masz w menu to moze cos innego  ...

Wpisz w wyszukiwarke linux hardware info
i pierwszy wynik wyszukiwania u mnie to https://www.binarytides.com/linux-commands-hardware-info/
i pierwsza komenda
 lscpu
Pokaze Ci np.
Cytuj
Model name:            Intel(R) Core(TM)  ...

Plyta glowna ? To szukamy linux get motheboard model
" dmidecode -t 1 " moze
sudo dmidecode -t 1

haslo takie samo jakie dajesz przy logowaniu, a jesli nie to administratora.
no to moze ?
lspci -v  | grep Subsystem
Nie pokazuje konkretnie modelu, ale moze sie domyslisz ktore to to.

Karta graficzna ?
lspci -v | grep "VGA" -A 12


Cytuj
Jak sprawdzić jakie błędy występują - jaką komendę/komendy powinienem wpisać?
Jest to troche skomplikowane.
Logi przegladasz albo w odpowiednim programie graficznym ( moze masz taki w menu ? )
albo z terminala.
 Zgaduje ze twoj system uzywa systemd, zapoznaj sie z tym, moze cos ciekawego znajdziesz
https://forum.linux.pl/index.php/topic,24889.msg134034/topicseen.html#msg134034
https://forum.linux.pl/index.php/topic,24285.msg131284/topicseen.html#msg131284
https://forum.linux.pl/index.php/topic,25031.msg134471/topicseen.html#msg134471
https://forum.linux.pl/index.php/topic,22174.msg130115/topicseen.html#msg130115

Ta komenda powie jakiego systemu uzywasz.
 cat /etc/*release

Cytuj
Jak dotrzeć do logów systemowych z chwili zawieszenia?
Jest to nie mozliwe. Chodzilo mi raczej po zawieszeniu sie , jak zrobisz reboot, to mozesz przejrzec ostatnie zdarzenia.
Szansa na znalezienie przyczyny jest znikome, zwlaszcza ze system mogl nie zdazyc zarejestrowac zdarzenia.
Ale chociaż spróbuj.

Jak sprawdzic ile masz wolnego miejsca ? Ram ?
Uruchom z terminala
top
lub
htop
na gorze powinno pisac,
Mozesz tez tak sprawdzic https://www.youtube.com/watch?v=uO4gF9vOwmw
wychodzisz klikajac q

Poszukaj i zobacz jak zabijac procesy
https://www.youtube.com/watch?v=V4RenI-IEYI
https://www.youtube.com/watch?v=jkYGu-ABqtM
https://www.youtube.com/watch?v=7to1WHhMclc&index=3&list=PLEYfCZIG4wG8hTCQohAGFfGY2lkNQgcwU
( uwaga: xkill dziala tylko w trybie graficznym )

O htop wiecej https://www.youtube.com/watch?v=t-pBUnAJO6c

Ile wolnego miejsca na dysku, pokaze Ci to zarowno np. menadzer dyskow GParted, jak rowniez powinno to pisac w twoim menadzerze plikow.


Edytowane
Troche o limitowaniu zasobow ...
Uwaga !
Jesli linuxa znasz slabo, slabo sie poruszasz w terminalu, to lepiej pomysl o zainstalowaniu systemu na nowo.
Poniewaz zle dobrane wartosci moga spowodowac ze uruchomisz system tylko w trybie awaryjnym.
i z ponownym edytowaniem pliku w trybie tekstowym mozesz sobie nie poradzic.

Ponadto musisz znac glowne haslo systemu ( lub  w zaleznosci od systemu glownego uzytkownika )

Co bedzie potrzebne ?
1. Zrob sobie kopie bezpieczenstwa waznych plikow.
2. Zapoznac sie z poradnikami , np.  https://gerardnico.com/os/linux/limits.conf
3. Umiejetnosc poruszania sie w terminalu https://www.youtube.com/watch?v=kXcD7e-2AsY
 i edycji plikow https://www.youtube.com/watch?v=8D4GlNkP8bA
 oraz uzywania top lub htop
Nikt w tym Cie " za raczke " nie poprowadzi sugerujac konkretne komendy, bo nie widzi twojego ekranu.
4. Sprawdzasz liczbe uruchomionych procesow
mysle ze ta komenda bedzie najlepsza, choc nie mam pewnosci " ps -AL --no-headers | wc -l "
$ ps -AL --no-headers | wc -l
530
W moim przypadku dalo to wynik 530
5. Z prawami administratora edytujesz /etc/security/limits.conf
moze cos w tym stylu ?
sudo  nano /etc/security/limits.conf
i dodajesz nowa linie
@twoja_nazwa_uzytkownika              soft             nproc           duzo_wieksza_liczba_niz_wynik_powyzszej_komendy
@twoja_nazwa_uzytkownika              hard             nproc           jeszcze_wieksza_liczba_niz_wynik_powyzszej_komendy
Ja dodalem sobie
@x           soft    nproc           4000
@x           hard    nproc           20000
Zapisujesz zmiany
6. Restartujesz komputer
reboot
7. Testujemy
Uwaga twoj system moze sie zawiesic lub sprawiac takie wrazenie zabijajac nowe procesy.
- Otwieram dwa terminale , pierwszy z uprawnieniami root, a drugi z uprawnieniami uzytownika
( sudo su dla ubunto podobnych  )
- Sprawdzam liczbe procesow na koncie root
# ps -AL --no-headers | wc -l
529
- W terminalu uzytkownika uruchamiam bombe
$ :(){ :|:& };:
- W terminalu root sprawdzam liczbe procesow
# ps -AL --no-headers | wc -l
4200
Czyli atak systemu rozpoczety :D
- Po jakims czasie w terminalu uzytkownika zamiast
bash: fork: retry: No child processes
bash: fork: retry: No child processes
bash: fork: retry: No child processes
bash: fork: retry: No child processes
otrzymujemy
bash: fork: Resource temporarily unavailable
bash: fork: Resource temporarily unavailable
bash: fork: Resource temporarily unavailable
bash: fork: Resource temporarily unavailable
- Ponownie sprawdzamy ilosc procesow w terminalu root
# ps -AL --no-headers | wc -l
526
System zatrzymal skutecznie atak, czyli test zakonczony sukcesem :)

Edytowane
Jeszcze cos !
Jesli bedziesz instalowal system, to sprawdz stan
RAM  ( uwaga ! Niektore ISO linuxa maja juz program memtest )
https://www.youtube.com/watch?v=gPPMiblxOOI
oraz dysku
https://www.youtube.com/watch?v=FvpKXFYam0k
https://linoxide.com/hrdwre/gsmartcontrol-gui-tool-check-hdd-ssd-health-linux/
https://askubuntu.com/questions/528072/how-can-i-check-the-smart-status-of-a-ssd-or-hdd-on-current-versions-of-ubuntu-1


Poniewaz zawieszenia systemu moga byc spowodowane takze problemami ze sprzetem.

Edytowane
Zapoznaj sie z tym http://www.ultimatebootcd.com/
tam tez masz memetest i tam w systemie linux Parted Magic takze GSmartControl

Edytowane
Poprawilem w tym poscie
twoja_nazwa_uzytkownika              soft    ...costam
twoja_nazwa_uzytkownika              soft    ...costam
na
@twoja_nazwa_uzytkownika              soft    ...costam
@twoja_nazwa_uzytkownika              hard    ...costam
Taki mi sie blad wkradl, przepraszam :-)


Edytowane
Troche sie pobawilem jeszcze ta fork bomba
- Nie potrafilem wylapac jej z top ani z htop bo nie zjada mi wystarczajaco duzo zasobow RAM ani CPU
ale znalazlem inny sposob
# pstree -a |  uniq -c | sort -nr | head -n 5
    984   |-bash
    664   |-bash
     90   |-bash
     88   |-bash
     65   |-bash
Komenda probuje policzyc wystapienia i pokaze 5 najwiekszych wynikow

Probowalem jeszcze w ten sposob
# pstree -a |  uniq -d | uniq -c |sort -nr | head -n 20
    229   |-bash
      1   |   |-saslauthd -m /var/run/saslauthd -a pam
      1   |           |   |   |-bash
Komenda najwierw wyswietli sobie duplikaty, a później policzy

Co nie znaczy ze top lub htop jest zly.
Jesli chcemy zobaczyc ktore aplikacje zjadaja najwiecej RAM lub CPU to sa bardzo dobre programy :)

I jeszcze jedna rzecz mnie martwila...
Jaki maksymalny limit procesow mozna ustawic w /etc/security/limits.conf
Nadal nie wiem ale wole ustawnic mniejsze od tych dwoch
czyli liczby powinny byc mniejsze od maksymalnej liczby watkow
#  cat /proc/sys/kernel/threads-max
55998
oraz mniejsze od maksymalnej liczby procesow
# cat /proc/sys/kernel/pid_max
32768

U mnie w  /etc/security/limits.conf maksymalnie jest 20000 i jest to mniej 32768 i 55998
wiec nawet jesli konto uzytkownika sie zawiesi, to konto " administartora " nadal powinno dzialac.
« Ostatnia zmiana: 2018-11-27, 02:02:18 wysłana przez 1709 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

maro111

  • Gość
Odp: Zwieszający się Linuks
« Odpowiedź #7 dnia: 2018-11-29, 22:45:31 »
1709 - bardzo, bardzo Ci dziękuję za tak obszerny komentarz. Jestem zaskoczony, że chciało Ci się poświęcić tak dużo czasu na pomoc w rozwiązaniu mojego problemu. Prawdę mówiąc, biorąc ogrom Twojego komentarza początkowo stwierdziłem, że za wysokie progi i że ograniczę się do reinstalacji systemu, ale (nie wykluczając tej opcji) później stwierdziłem, że jak ktoś poświęcił tak dużo czasu, to wypadałoby przynajmniej spróbować. Potrzebuję chwilę czasu, to znaczy będę w stanie się tym zająć w ten weekend.

Co do systemu, to wygląda to następująco:
Architecture:          x86_64
Tryb(y) pracy CPU:     32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Wątków na rdzeń:    2
Rdzeni na gniazdo:     2
Socket(s):             1
Węzłów NUMA:        1
ID producenta:         GenuineIntel
Rodzina CPU:           6
Model:                 78
Model name:            Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
Wersja:                3
CPU MHz:               499.968
CPU max MHz:           2800,0000
CPU min MHz:           400,0000
BogoMIPS:              4800.44
Wirtualizacja:         VT-x
Cache L1d:             32K
Cache L1i:             32K
Cache L2:              256K
Cache L3:              3072K
NUMA node0 CPU(s):     0-3
_______________________________________

Subsystem: Dell Skylake Host Bridge/DRAM Registers
   Subsystem: Dell Skylake Integrated Graphics

_____________________________________________

latitude3570 ~ $ lspci -v | grep "VGA" -A 12
00:02.0 VGA compatible controller: Intel Corporation Sky Lake Integrated Graphics (rev 07) (prog-if 00 [VGA controller])
   DeviceName:  Onboard IGD
   Subsystem: Dell Skylake Integrated Graphics
   Flags: bus master, fast devsel, latency 0, IRQ 279
   Memory at f0000000 (64-bit, non-prefetchable) [size=16M]
   Memory at e0000000 (64-bit, prefetchable) [size=256M]
   I/O ports at f000 [size=64]
   Expansion ROM at <unassigned> [disabled]
   Capabilities: <access denied>
   Kernel driver in use: i915_bpo
   Kernel modules: i915_bpo

_____________________________________________

DISTRIB_DESCRIPTION="Linux Mint 18.1 Serena"
__________________________________________

Co do płyty głównej, to wyskoczyły mi takie wyniki:
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
   Manufacturer: Dell Inc.
   Product Name: Latitude 3570
   Version: Not Specified
   Serial Number: 70WP982
   UUID: 4C4C4544-0030-5710-8050-B7C04F393832
   Wake-up Type: Power Switch
   SKU Number: 06F3
   Family: Latitude


Jak dałem Top, to wyniki były następujące (średnia oczywiście):
Zadania: 177, działających: 1-4, uśpionych: różnica, zatrzymanych: 0, zom%CPU: 10-14%,
KiB Ram 7980784 razem, 2509412: wolne, 3320444: użyte, 2155300 buf/cache
KiB Swap 32872444: razem, 32872444: użyte. 0: wolne, 4295584 dost. RAM

Poniżej, przy tych zapisach w kolumnach procent CPU, to było około 50% po zsumowaniu wszystkich procesów, gdzie dwa największe, miały średnio po 20%.
% Pam - średnia to było 35-40
« Ostatnia zmiana: 2018-11-29, 22:51:32 wysłana przez maro111 »

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2757
  • 1709
    • Zobacz profil
Odp: Zwieszający się Linuks
« Odpowiedź #8 dnia: 2018-11-30, 07:14:11 »
Znalazlem takie tematy
https://unix.stackexchange.com/questions/389193/cinnamon-desktop-lagging-spiking-cpu-every-other-second
https://github.com/linuxmint/Cinnamon/issues/7121

Laczy je wspolne srodowisko Cinnamon, choc moze to tylko zbieg okolicznosci.
W srodowisku Mate - Mint 18.3 i 19 nie zauwazylem zadnych problemow pam, choc moze to tez przypadek.

Czy tez uzywasz srodowiska Cinnamon ?

logi systemowe moze pokaza jakis blad.
W systemie moze takze masz aplikacje:
Administracja --> Raporty systemowe
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

D35CART35

  • Gość
Odp: Zwieszający się Linuks
« Odpowiedź #9 dnia: 2018-11-30, 09:03:27 »
Czy kolego @maro111 korzysta z Cinnamon nie wiem, ale ja korzystam z Cinnamona i jakoś zbytnich problemów nie mam,
dlatego nie jestem pewien czy to wina Cinnamon.