Fórum Root.cz
Hlavní témata => Distribuce => Téma založeno: Hamparle 07. 10. 2022, 19:14:14
-
Na dlouhodobě běžícím Raspbery pi 3 b jsem si spustil composer update. Pak se mi zvláštně zaseklo,:
z ostatních počítačů, kteří jsou připojeny ethernetem k němu:
reagovalo jen na ping
vypadalo že je odříznuté o internetu s jedinou vyjímkou:
udržovalo aktivní wireguard spojení (takže forwardovalo na vzdálené rozsahy, takže muselo i ponechat aktivní supplicant) - hlásilo mi tedy ping jediný protějšek v internetu 20ms
nikam jinam neforwardovalo, traceroute a ping bylu hluché.
Nešlo se k pi nijak připojit přes tcp
běžící démoni neodpovídali, ale nechali otevřené porty ( nc 80,22,443,53 se hned nezavřelo, ale nepřišla žádná odpověď)
Nereagovalo na připojení monitoru ani myši. Přído po 15 minutách a na monitoru obraz plochy (přesvědčil jsem se že uptime je furt měsíc)
DOKONCE mi zůstalo aktivní SSH připojení !
dmesg-poslední
asi 3x backtrace
1844135.776164] rpi_firmware_get_throttled: 2 callbacks suppressed
[1844314.658007] INFO: task kworker/0:0:9083 blocked for more than 122 seconds.
[1844314.658022] Tainted: G C 5.10.63-v7+ #1496
[1844314.658029] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[1844314.658037] task:kworker/0:0 state:D stack: 0 pid: 9083 ppid: 2 flags:0x00000000
1845614.858560] Exception stack(0x8151dfb0 to 0x8151dff8)
[1845614.858566] dfa0: 00000000 00000000 00000000 00000000
[1845614.858574] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[1845614.858581] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[1845614.858589] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:80144034
[1845614.858594] r4:00000000
[1845614.858635] Mem-Info:
[1845614.858652] active_anon:9651 inactive_anon:182695 isolated_anon:0
active_file:50 inactive_file:983 isolated_file:0
unevictable:4 dirty:0 writeback:0
slab_reclaimable:4522 slab_unreclaimable:6107
mapped:5843 shmem:20299 pagetables:2257 bounce:0
free:4163 free_pcp:40 free_cma:223
[1845614.858666] Node 0 active_anon:38604kB inactive_anon:730780kB active_file:200kB inactive_file:3932kB unevictable:16kB isolated(anon):0kB isolated(file):0kB map
ped:23372kB dirty:0kB writeback:0kB shmem:81196kB writeback_tmp:0kB kernel_stack:2424kB all_unreclaimable? yes
[1845614.858682] DMA free:16652kB min:16384kB low:20480kB high:24576kB reserved_highatomic:0KB active_anon:38604kB inactive_anon:730780kB active_file:404kB inactive
_file:3844kB unevictable:16kB writepending:0kB present:917504kB managed:892204kB mlocked:16kB pagetables:9028kB bounce:0kB free_pcp:160kB local_pcp:32kB free_cma:89
2kB
[1845614.858688] lowmem_reserve[]: 0 0 0
[1845614.858713] DMA: 689*4kB (UEC) 678*8kB (UEC) 348*16kB (UEC) 53*32kB (UE) 13*64kB (UE) 3*128kB (E) 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 16660kB
[1845614.858813] 21364 total pagecache pages
[1845614.858820] 0 pages in swap cache
[1847120.221051] raspberrypi-firmware soc:firmware: Request 0x00048019 returned status 0x80000001
Out of memory: Killed process 9351 (composer) total-vm:618096kB, a
adj:0
[1845614.954660] oom_reaper: reaped process 9351 (composer), now anon-rss:0kB
co se vlastně stalo, že raspberry přežilo vlastní smrt? Během této doby z sd karty přečetlo asi 30 GB (orientačně podle hodnoty iostat -h před a po) a zapsalo asi 800 MB.
-
Tohle se na Linuxu bohužel stává, když dojde paměť a je zapnutý swap, tak občas strašně dlouho trvá, než se vyvolá OOM killer a mezitím se to snaží uswapovat.
-
swap je na SD kartě?
ještě je podezřelé to rpi_firmware_get_throttled, co je před tím? jednak by to mohlo být varování o nízkém napětí (nedostatečný zdroj), nebo thermal throttling (nedostatečné chlazení)
jde se podívat i dodatečně (do restartu), co se stalo pomocí vcgencmd get_throttled
https://www.raspberrypi.com/documentation/computers/os.html#vcgencmd
-
Omlouvám se, možná to bude na trochu jiné téma, ale souvisí to. Mám RPi3 a klidně čistý Raspbian, stačí spustit video z YouTube či více záložek v prohlížeči a je to téměř nepoužitelné. Je to vlastnost daná nedostatkem RAM nebo je chyba jinde, v kladném případě kde? Proč RPi prezentují jako minipočítač a náhrada klasického PC? RPi4 s 8GB RAM pro srovnání nemám.
-
Chování I dmesg (OOM kill) celkem jasně říkají, že jde o swapování.
Podobné chování jsem viděl i s pomalou kartou při extracting fázi docker-compose upgrade (náročné na I/O), vyřešila rychlejší karta (díval bych se po A1/A2). Tím jsem se dostal od oka z ¾h na tři minuty Tady by rychlejší karta též mohla pomoci, ale:
1. Vyhnout se swapování (jde-li) to s rozumným úsilím) by zřejmě mělo lepší výsledek.
2. Nemohu slíbit, že to bude good enough. Pokud místo 30m záseku bude 5m zásek, stále to může být špatné.
-
RPi3 má jen 1GB paměti. Bohužel, internetové stránky a prohlížeče jsou dost nenažrané, takže více záložek docela určitě vyčerpá RAM. Je potřeba si uvědomit, že ty internety jsou dělané v nejhorším případě pro mobily, které mají patrně více jak 2 GB RAM. S RPi4 i třeba se 4GB RAM by to bylo lepší. Teda stane se to stejné, ale až s větším počtem záložek.
Rychlá karta je lepší, než pomalá. Ještě lepší je SSD připojené přes USB. Je to spolehlivější, i když na RPi3 možná ne rychlejší než rychlá SD karta, protože máte jen USB2 porty.
No a protože swapování se s 1GB nijak nevyhnete, trochu pomůže zswap: https://www.root.cz/zpravicky/ubuntu-22-04-bude-na-raspberry-pi-4-se-2-gb-ram-pouzivat-zswap/
-
Myslím, že u zswapu bude potřeba mít vhodně nastavený swappiness nebo více swapů + priority. Swappiness zajistí swapování trochu s předstihem (do zswapu je IIUC problém swapovat, když je málo RAM), druhý swap s nižší prioritou by snad pokryl neúspěšné pokusy swapovat do zswapu.
Mám se zswapem (nebo nějakým principiálně podobným řešením) na starém telefonu (IIIRC 512 MiB RAM rozdělené asi 128+384 do GPU a CPU), kde jsem zřejmě měl swappiness=0 a žádný záložní swap. Když už bylo RAM málo, někdy se (můj odhad podle chování + dmesg) stávalo něco takového:
1. Bylo málo RAM.
2. Telefon chtěl něco přesunout do swapu, aby nějakou RAM uvolnil.
3. Aby mohl něco přesunout do swapu, potřeboval na to alokovat místo někde v RAM. To často v této situaci nebylo k dispozici, takže zápis do swapu hodil I/O error.
4. Další swap nebyl k dispozici, tak to kernel to zkoušel znovu, dokud to nevyšlo. Většinou to docela trvalo, protože když se kernel primárně věnuje neúspěšným pokusům uvolňování RAM a ostatní se prakticky nehýbe, nic neuvolňuje RAM. Nevím, odkud tu RAM nakonec vzal, snad se rozhodl uvolnit poslední zbytečky cache nebo nevím.
Ve výsledku to pak byl mnohem větší thrashing.
-
zswap mi funguje správně, stačí přidat k již existujícímu jednomu swapu
buď jste měl swap do zram, nebo třeba nevhodně vysoký parametry pro /sys/module/zswap/parameters/max_pool_percent
výchozí je 20, ale hodnoty 30 a výše se mohou chovat kontraproduktivně
ještě vidím, že Hamprle má jádro 5.10.63, už nějakou dobu je 5.15, určitě bych aktualizoval
-
[...] Rychlá karta je lepší, než pomalá. Ještě lepší je SSD připojené přes USB. Je to spolehlivější, i když na RPi3 možná ne rychlejší než rychlá SD karta, protože máte jen USB2 porty.[...]
Mel sem RPi3:
- s nejakou Samsung/Sandisk kartou = treba "apt update && apt full-upgrade" zasekavalo a trvalo dlouho
- s industrial ADATA kartou = apt bylo znatelne rychlejsi a mene zasekavave
- s mSATA SSD v prevodniku do USB2 = apt bylo jeste rychlejsi a nezasekavave
=> nejde tolik o rychlost cteni, ale o rychlost zapisu a hlavne o IOPS
[...] Mám RPi3 a klidně čistý Raspbian, stačí spustit video z YouTube či více záložek v prohlížeči a je to téměř nepoužitelné. Je to vlastnost daná nedostatkem RAM nebo [...]
Proč RPi prezentují jako minipočítač a náhrada klasického PC? RPi4 s 8GB RAM pro srovnání nemám.
jako nahradu klasickeho PC pokud vim NEbylo nikdy presentovane RPi3, ale prave az to RPi4...
https://www.cnx-software.com/2019/06/24/raspberry-pi-4-vs-pi-3-what-are-the-differences/
-
Značka karty tolik neřekne, i od Samsungu a Sandusky IMHO najdeme jak pomalé karty, tak bleskově rychlé. SSD možná nedoženou, ale při většinu nasazení by stačit mohly. Ano, to IOPS při zápisu je podstatné a i některé karty dělané na zápis videa (= masivní zápis, ale sekvenční) jsou brutálně pomalé při náhodném zápisu. Proto bych se pro Raspberry držel ideálně tříd A1 a A2.
-
konkretne slo myslim o Samsung EVO oranzova/cervena (ted bez A1/A2) a ADATA Industrial IDU3A, nicmene shrnuto nejlepsi bude opravdu to SSD i na USB2 ;-)
-
Trochu OT -
Rodina zařízení Odroid (C4/N2+/M1/...) má 4-8 GB ram a většinou i emmc, nebo i sata úložiště. Předpokládám, že tyhle problémy mít pravděpodobně nebude. Je to správná úvaha?
-
Odroid M1 emmc jako nemá v sobě, má tam na to konektor, ale je potřeba přikoupit. Nicméně zrovna na tom M1 je lepší asi použít nativní SATA port nebo M.2 NVMe port.
https://www.root.cz/zpravicky/odroid-m1-s-4-a-8-gb-ram/
Ty rychlosti A1/A2 SD karet SanDisk v RPi3 a RPi4 jsem kdysi testoval. Zkusím iops na USB2 disku, kolik to bude.
https://www.root.cz/clanky/raspberry-pi-4b-64bit-ci-nebyt-to-je-otazka/
-
Tak A2 karta v RPi3+ dělá 1.86 kiops a 41.52 MB/s sekvenčně. Intel SSD přes USB2 dělá 2.59 kiops a 31.60 MB/s. To stejné SSD přes USB3 má 6.94 kiops a 419.98 MB/s.
-
Pro zajímavost ten stejný SSD přes SATA3 (Odroid M1) má 14 kiops, teda asi dvakrát více než přes USB3.
-
Já bych tedy předně šel do karty, která má maximální životnost a až pak řešil IOPS.