GNU/Linux >> Znalost Linux >  >> Linux

Linux – Co může způsobit, že Linux na několik minut přestane reagovat při procházení určitých webových stránek?

Používám Linux 4.15 a to se mi stává mnohokrát, když prohlížím Google, Facebook nebo jakýkoli jiný web náročný na zdroje – Celý OS přestane reagovat, zamrzne a je zbytečný. Jediná věc, kterou vidím, že to funguje, je disk (hlavní systémový oddíl naformátovaný jako ext4), který je masivně využíván (I/O throttling).

Jsem nucen čekat minutu nebo více, abych se zbavil nadýmání, někdy to přestane reagovat dvanáct minut, a proto jsem frustrovaný. Skutečnost, že operační systém není schopen dobře zvládnout multitasking, má tendenci odrážet naprosto podivné a nepřijatelné chování.

To se nestává pouze u Firefoxu, ale u jakéhokoli aplikace javascript-interpreter včetně Microsoft VSCode nebo angular-cli (ng serve command) a také jakékoli jiné vlákno spouštění náročné na zdroje – jako je případ plantuml při generování velmi velkého grafu z velmi složitého diagramu UML.

Po spuštění softwaru pro obnovu dat pro externí pevný disk (přes oddíl ext4), který se nedávno odpojil od špatného portu USB, se dnes operační systém stává zcela neovladatelným.

Nejsem schopen říci hlavní příčinu takového chybového chování

V prohlížeči mám otevřeno mnoho karet a 94% využití OS-oddílů podle df výstup:

Filesystem 1k-bloky Použité dostupné použití 5120 4 5116 1 % /run/locktmpfs 3990820 0 3990820 0 % /sys/fs/cgroup/dev/loop5 128 128 0 100 % /snap/anbox-installer/24/dev/8s128an 12%0 -installer/17/dev/loop4 223616 223616 0 100 % /snap/kde-frameworks-5/26/dev/loop3 90624 90624 0 100 % /snap/core/7169/dev/smyčka/loop7% kde-frameworks-5/25/dev/loop8 90624 90624 0 100 % /snap/core/7270/dev/loop0 87552 87552 0 100 % /snap/qownnotes/2160/dev/loop106%2 -frameworks-5/27tmpfs 798164 0 798164 0 % /spustit/uživatel/0tmpfs 798164 32 798132 1 % /spustit/uživatel/1000/dev/smyčka9 87552 87552 0 100 % /snap/185663%/100 % /snap/17867 93%/20 /DATA/dev/sdb1 15142960 2091904 13051056 14 % /media/kais/STORE N GO

Jako hardware používám:

  1. Intel Core i3 v2348M podle lscpu :

    Architektura:x86_64CPU operační režim(y):32bitový, 64bitový Pořadí bajtů:Little EndianVelikosti adres:36 bitů fyzické, 48 bitů virtuální CPU(y):4On-line seznam CPU(ů):0 -3Vlákna na jádro:2Jádra na patici:2Zásuvky:1 NUMA uzel:1ID dodavatele:GenuineIntelCPU family:6Model:42Název modelu:Intel(R) Core(TM) i3-2348M CPU @ 2.30 GHz Krokování:7CPU MHz:905.312CPU max. MHz:2300.0000CPU min MHz:800.0000BogoMIPS:4589.49Virtualizace:VT-xL1d mezipaměť:32K6KL1i mezipaměť:32K2KL23 mezipaměť:32K2KL23 mezipaměť CPU:700 CPU pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lmf Constant_tsc arch_perfmon cpodid non6 monitor rep_perfmon pebs no4 bpltsstop rep_m 5 
  2. 8 GB paměti RAM. (Viz htop výstup níže).

  3. Rychlost sběrnice základní desky 99,83 MHz
  4. 500 GB interní HDD – Toto je S.M.A.R.T. zpráva z
    operačního systému:

    smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.15.0-33-generic] (místní sestavení) Autorská práva (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org ===ZAČÁTEK INFORMAČNÍ ČÁSTI ===Modelová rodina:Western Digital Blue Model mobilního zařízení:WDC WD5000LPVX-22V0TT0Sériové číslo:WD-WXE1E13AAMR4LU WWN ID zařízení:5 0014ee 25db04ba7Firmware Verze,Verze firmwaru,201city:0701 GB01aser50601 od 01.01 GB01501501 od 01.01 od 01.01501 od 01.01 512 bajtů logické, 4096 bajtů fyzické Rychlost otáčení:5400 ot./min Zařízení je:V databázi smartctl [podrobnosti:-P zobrazit] Verze ATA je:ACS-2 (není uvedena menší revize) Verze SATA je:SATA 3.0, 6,0 Gb/s ( aktuální:6,0 Gb/s)Místní čas je:St Aug 7 15:52:05 2019 Podpora CETSMART je:K dispozici – zařízení má funkci SMART. Podpora SMART je:Povoleno===ZAČÁTEK ČTENÍ SEKCE SMART DAT ===Celkově SMART -Výsledek testu sebehodnocení zdraví:PASSEDGeneral SMART Hodnoty:Stav sběru dat offline:(0x00) Aktivita shromažďování dat offline y nebyl nikdy spuštěn. Automatické shromažďování dat offline:Zakázáno.Stav provádění autotestu:(0) Předchozí rutina autotestu byla dokončena bez chyby nebo nikdy nebyl spuštěn žádný autotest.Celkový čas na dokončení shromažďování dat offline:(8040) sekund.Offline data sběrné možnosti:(0x7b) SMART okamžitě spustit offline. Zapnutí/vypnutí automatického shromažďování dat v režimu offline. Pozastavit shromažďování offline při novém příkazu. Offline skenování povrchu podporováno. Podporován autotest. Podpora autotestu dopravy. Podpora selektivního autotestu. Schopnosti SMART:(0x0003) Uloží data SMART před přechodem do režimu úspory energie. Podporuje časovač automatického ukládání SMART. Možnost protokolování chyb:(0x01) Podporováno protokolování chyb. Podporováno protokolování pro obecné účely.Krátká rutina autotestu doporučená doba dotazování:(2) minuty.Prodloužená rutina autotestudoporučená doba dotazování:(93) minut.Rutina autotestu dopravy doporučená doba dotazování:(5)minut.Možnosti SCT:(0x7035 ) Stav SCT podporován. Podpora ovládání funkcí SCT. Podporována datová tabulka SCT. Číslo revize datové struktury atributů SMART:16Atributy SMART specifické pro dodavatele s prahovými hodnotami:ID# HODNOTA VLAJKU ATTRIBUTE_NAME NEJHORŠÍ TYP PRAHU AKTUALIZOVÁNO WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0401 Vždy před 01000205010110100101 Vždy01010101010010101010010101010101010102002 ATTRIBUTE_NAME Fail vždy - 1541 4 start_stop_count 0x0032 057 057 000 old_age vždy - 43173 5 realocated_sector_ct 0x0033 200 200 140 Vždy - 0 7 Seeror_error_rate 0x002e 200 200 000 - 0 9 Power_on_Hours 0x0032 100 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 091 091 000 Old_age Always - 9496191 G-Sense_Error_Rate 0x0032 001 001 000 Old_age Always - 250192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 399193 Load_Cycle_Count 0x0032 147 147 000 Old_age Always - 160989194 Temperature_Celsius 0x0022 101 092 000 Old_age Always - 42196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0197 Current_Pending_Sector 0x0032 200 200 000 starých číslo revize 1 Nebyly zaznamenány žádné autotesty. [Ke spuštění autotestů použijte:smartctl -t]SMART Selektivní test datové struktury datové struktury číslo revize 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0Selective testovací příznaky (0x0):Po prohledání vybraných úseků NEPROVOZUJTE čtení a skenování zbytku disku. Pokud selektivní autotest čeká na zapnutí, pokračujte po prodlevě 0 minut. 

Toto jsou výsledky využití zdrojů na htop :

 1 [||||| 14,1 %] Úkoly:286, 1497 thr; 2 běží 2 [||||| 13,2 %] Průměrná zátěž:3,00 4,97 6,09 3 [||||| 12,5 %] Doba provozu:3 dny, 16:12:35 4 [||| 9,3 %] mem[|||||||||||||||||||5,09G/7,61G] Swp[|||||||||||||||||| |3.68G/4.65G] PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 7006 jvb 20 0 6640M 102M 6780 S 5.3 1.3 18:53.18 java -Xmx 30722m 90.90.900 Mh :23 /usr/lib/firefox/ 2299 kais 20 0 2958M 184M 42912 S 5.3 2.4 13:54.41 /usr/lib/firefox/ 1216 root 20 0 519M 120M 2958M 1205 S 955.09 KAIS 20 0 3354M 584M 107M S 7,9 7,5 34:44,51/USR/LIB/Firefox/8439 Kais 20 0 4537M 771m 200m S 4,6 9,9 37:06,21/USR/LIB/FIREFOX/8831 KAIS 20 0 32222M 3 32222M 3 3222M 3 3222M 351M 351M 351M 351M 351M. :19,87/usr/lib/firefox/7025 JVB 20 0 6640m 102M 6780 S 0,0 1,3 0:18,34 Java -xmx3072M -x 7027 JVB 20 0 6640M 102M 6780 S 0,0 1,3 0:18,05 Java -xMx3072M 5901 Kais 5901 Kaise. 5612 2904 R 4,0 0,1 0:00,66 htop 5329 kais 20 0 547M 47456 38388 S 1,3 0,6 0:01,29 /usr/lib/gnome- TE13540 KAIS 20 0 2958M 184M 42912 S 2.0 2,4 0:06,25/USR/LIB/FIREFOX/16897 Kais 20 0 904M 28292 18076 S 2,0 0,4 50:08,37 PAVUCONCONCONCONCONCONCI /pulseaudF1 Nápověda F2 Nastavení F3 Hledat F4 Filtr F5 Strom F6 Seřadit F7 Pěkné - F8 Pěkné + F9 Zabít F10 Konec 

To jsou také výsledky statistik virtuálních počítačů, generovaných příkazem vmstat 5 .

AFAIK, bloatware by neměl způsobit, že OS přestane reagovat, takže bych neuvažoval a ani nepřijímal, že bloatware je hlavní příčinou problému – protože úlohou operačního systému je izolovat procesy a zajistit multitasking.

Související:Přidat více místa na disku pro linux z Windows v duálním spouštěcím stroji?

Nevím, zda je tento problém specifický pro operační systém, hardware nebo konfiguraci.

Nějaké nápady?

Přijatá odpověď:

Co může způsobit, že Linux tak nereaguje?

Rozhodně za to může overcommitování dostupné RAM, které způsobuje velké množství swapování. Pamatujte, že I/O s náhodným přístupem na vašem mechanickém HDD vyžaduje pohyb čtecí/zapisovací hlavy, která dokáže provést pouze přibližně 100 vyhledávání za sekundu.

Je obvyklé, že Linux jde úplně na oběd, pokud přetížíte RAM „příliš“. Dále mám spinny disk a 8GB RAM. Měl jsem problémy s několika kusy softwaru s úniky paměti. Tj. jejich využití paměti v průběhu času neustále roste a nikdy se nezmenšuje, takže jediným způsobem, jak jej ovládat, by bylo zastavit software a poté jej restartovat. Na základě zkušeností, které jsem během toho měl, mě příliš nepřekvapuje, že slyším zpoždění přes deset minut, pokud generujete 3GB+ swapu.

Související:Linux – Používáte příkaz sed pro konkrétní řádek?

Nemusíte to nutně vidět ve všech případech, kdy máte více než 3 GB swapu. Teorie říká, že klíčovým konceptem je mlácení. Na druhou stranu, pokud se pokoušíte přepínat mezi dvěma různými pracovními sadami a vyžaduje to výměnu 3 GB dovnitř a ven, při rychlosti 100 MB/s to zabere minimálně 60 sekund, i když lze vzor I/O dokonale optimalizovat. V praxi nebude I/O vzor zdaleka optimální.

Po potížích, které jsem s tím měl, jsem přeformátoval svůj odkládací prostor na 2 GB (několikakrát menší než předtím), takže systém nebyl schopen swapovat tak hluboko. Můžete to udělat, aniž byste se museli potýkat se změnou velikosti oddílu, protože mkswap přebírá volitelný parametr velikosti.

Hrubá rovnováha je mezi nedostatkem paměti a zabitím procesů a mezi tím, že se systém zasekne tak dlouho, že to stejně vzdáte a restartujete. Nevím, jestli není 4GB odkládací oddíl příliš velký; může to záviset na tom, co děláte. Důležité je dávat si pozor na to, kdy se disk začne točit, zkontrolovat využití paměti a podle toho reagovat.

Kontrola využití paměti u víceprocesových aplikací je obtížná. Chcete-li zobrazit využití paměti na proces bez dvojitého počítání sdílené paměti, můžete použít sudo atop -R , stiskněte M a m a podívejte se do sloupce PSIZE. Můžete také použít smem . smem -t -P firefox zobrazí PSS všech vašich procesů ve firefoxu a za ním řádek s celkovým PSS. Toto je správný přístup k měření celkového využití paměti prohlížečů založených na Firefoxu nebo Chrome. (I když existují také funkce specifické pro prohlížeč pro zobrazení využití paměti, které zobrazí jednotlivé karty).


Linux
  1. Jaká je nejlepší distribuce Linuxu pro začátečníky?

  2. Jaký je váš oblíbený nástroj pro nahrávání obrazovky pro Linux?

  3. Co pro vás může udělat shell dotfile

  1. Co uděláte, když aplikace není zabalena pro vaši distribuci Linuxu?

  2. Linux – Co dělá „Make Localmodconfig“?

  3. Linux – co dělat, když linuxová plocha zamrzne?

  1. Linux – Jak vědět, co dělat Grep v Dmesg?

  2. Live Linux CD pro vypálení s Bonnie++?

  3. Co je jako pbcopy OSX pro Linux