Re: Memoria virtual o fitxers temporals
Josep Lladonosa <[email protected]> Mon, 2 Feb 2026 08:14:41 +0100
| Newsgroups | gmane.linux.debian.user.catalan |
|---|---|
| Message-ID | <CAPBO7TZNT12O3RkSfxe471N=BO11ApG3xtO3=iNSkcTfiquWAA@mail.gmail.com> |
--00000000000058605f0649d21474 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hola, Narc=C3=ADs, He demanat resposta a una amiga llestota (IA) ;-) : El que veus no =C3=A9s que Linux estigui fent =E2=80=9Cswap camuflada=E2=80= =9D amb arxius temporals, sin=C3=B3 que quan vas molt just de RAM el nucli entra en un est= at de *thrashing* i fa molt=C3=ADssima E/S a disc abans o en comptes d=E2=80=99ac= tivar l=E2=80=99OOM killer, fins i tot sense cap partici=C3=B3 de swap configurada.[1][2][3] ## Qu=C3=A8 passa quan et quedes sense RAM Quan la RAM s=E2=80=99omple, el nucli intenta recuperar mem=C3=B2ria abans = de matar res:[1][2][3] - Descarta p=C3=A0gines de cache de fitxers (lectures/escriptures addiciona= ls). - Recarrega codi i dades que acaba de descartar quan un proc=C3=A9s les tor= na a necessitar. - Si tens *tmpfs* (per exemple `/tmp` a mem=C3=B2ria), aquesta mem=C3=B2ria= compiteix amb la resta i pot acabar pressionant m=C3=A9s el sistema encara que no tin= guis swap.[4][5] Aix=C3=B2 genera molta E/S a disc (relectura constant de fitxers, journalin= g, log, etc.) i la m=C3=A0quina =E2=80=9Cs=E2=80=99amorra=E2=80=9D, tot i que = no hi ha cap swap activa.[2][3] El nucli *no* crea autom=C3=A0ticament fitxers de swap ni converteix els temporals en swap, per=C3=B2 s=C3=AD que els temporals en *tmpfs* =E2=80=9C= consumeixen RAM=E2=80=9D i, si hi hagu=C3=A9s swap, es podrien buidar parcialment cap a swap.[4][6][= 5] ## Com evitar-ho (o almenys controlar-ho) Hi ha diverses estrat=C3=A8gies; en la pr=C3=A0ctica n=E2=80=99acabar=C3=A0= s combinant algunes: - **Activar una mica de swap =E2=80=9Cd=E2=80=99emerg=C3=A8ncia=E2=80=9D** = (fitxer, no cal partici=C3=B3) amb `swappiness` molt baix (per exemple 1=E2=80=9310) perqu=C3=A8 nom=C3=A9s s= =E2=80=99utilitzi quan ja vas al l=C3=ADmit, i aix=C3=AD evites el thrashing m=C3=A9s salvatge.[1][7]= [2] - **Fer servir zram/zswap**: swap comprimit en RAM, molt r=C3=A0pid, que et= dona un coix=C3=AD addicional sense castigar tant el disc f=C3=ADsic.[8][2] - **Configurar l=C3=ADmits de mem=C3=B2ria per proc=C3=A9s** amb `systemd` = (`MemoryMax=3D`) o `ulimit` per a sessions interactives, de manera que un proc=C3=A9s =E2=80= =9Cboig=E2=80=9D mori abans de portar tot el sistema al l=C3=ADmit.[1][2] - **Activar i con=C3=A8ixer les tecles Magic SysRq** (Alt+SysRq+f) per for= =C3=A7ar l=E2=80=99OOM killer quan vegis que la m=C3=A0quina s=E2=80=99est=C3=A0 mor= int per=C3=B2 encara tens una mica de control.[2][9] - **Vigilar on poses /tmp o altres tmpfs**: si `/tmp` =C3=A9s *tmpfs* molt = gran, un programa que hi aboqui molts fitxers pot pressionar molt la RAM; pots limitar-ne la mida o posar-lo en disc si no tens swap.[4][5] ## Per qu=C3=A8 no veus clar qui =C3=A9s el culpable Quan la m=C3=A0quina entra en thrashing, eines com `top` o `iotop` pr=C3=A0= cticament no responen o ho fan amb molt retard, i quan es recupera ja s=E2=80=99han t= ancat processos i la situaci=C3=B3 ha canviat. Si vols diagnosticar-ho millor, pots: - Habilitar *logging* del `oom-killer` i revisar `dmesg` o `/var/log/kern.log` despr=C3=A9s de l=E2=80=99episodi.[1][3] - Deixar `iostat`, `pidstat` o `atop` en segon pla enregistrant dades peri=C3=B2dicament per tenir un =E2=80=9Chist=C3=B2ric=E2=80=9D a revisar q= uan la m=C3=A0quina torni a ser usable.[7][9] En resum: no =C3=A9s que Linux faci swap amb temporals de forma oculta, sin= =C3=B3 que el seu comportament fora de mem=C3=B2ria =C3=A9s bastant agressiu en E/S i,= sense un m=C3=ADnim de swap o l=C3=ADmits, acaba en thrashing abans de matar process= os; posar una mica de swap =E2=80=9Ccontrolada=E2=80=9D o zram i limitar processos ac= ostuma a ser la manera m=C3=A9s efectiva de prevenir aquests =E2=80=9Camorraments=E2=80=9D.= [1][6][2] Citations: [1] system freezes rather than invoking OOM killer. https://bbs.archlinux.org/viewtopic.php?id=3D233843 [2] Why is Linux so bad at handling OOM scenarios? https://www.reddit.com/r/linuxquestions/comments/1fh3cjf/why_is_linux_so_ba= d_at_handling_oom_scenarios/ [3] out of memory with no swap causes disk activity https://bbs.archlinux.org/viewtopic.php?id=3D48319 [4] use swap when /tmp its out of space https://bbs.archlinux.org/viewtopic.php?id=3D151122 [5] Correct location for temporary files, to save write endurance ... https://discussion.fedoraproject.org/t/correct-location-for-temporary-files= -to-save-write-endurance-on-nvme/105072 [6] Temporary files: RAM or disk? https://lwn.net/Articles/499645/ [7] System suddenly using all available swap, but plenty of free ... https://discussion.fedoraproject.org/t/system-suddenly-using-all-available-= swap-but-plenty-of-free-memory/79411 [8] the system is unusable on high disk io usage - openSUSE https://www.reddit.com/r/openSUSE/comments/nl3q5p/the_system_is_unusable_on= _high_disk_io_usage/ [9] Linux oom behavior always has had complaints[0]. Hope it ... https://news.ycombinator.com/item?id=3D26451319 [10] How to fix high memory utilization caused by swap file in ... https://www.facebook.com/groups/linuxforbeginners/posts/853503369795772/ -- Salutacions...Josep -- El ds., 31 de gen. 2026, 18:51, Narcis Garcia <[email protected]> va escriure: > Hola debianites; > > Tinc un ordinador amb suficient mem=C3=B2ria RAM per a les tasques habitu= als. > No tinc configurada mem=C3=B2ria d'intercanvi (swap) perqu=C3=A8 preferei= xo qu=C3=A8, > si faig quelcom on l'ordinador es queda sense prou mem=C3=B2ria, en compt= es > d'amorrar-se amb el disc dur trenqui el proc=C3=A9s o el sistema es queix= i. > > Doncs resulta qu=C3=A8 quan carrego alguna cosa extraordin=C3=A0ria i/o a= mb moltes > aplicacions i dades obertes, el sistema s'amorra fent no-s=C3=A9-qu=C3=A8= amb el > disc dur. > Quan es recupera la situaci=C3=B3 (perqu=C3=A8 he aconseguit tancar fines= tres > lentament) ja =C3=A9s tard per a esbrinar qu=C3=A8 =C3=A9s el qu=C3=A8 es= t=C3=A0 fent lectures o > escriptures a disc. > > Alg=C3=BA sap quina explicaci=C3=B3 t=C3=A9 aix=C3=B2? > Qu=C3=A8 potser el nucli Linux utilitza arxius temporals en comptes de Sw= ap? > > I com ho puc evitar? > > Gr=C3=A0cies. > > -- > > Narcis Garcia > > __________ > I'm using this dedicated address because personal addresses aren't > masked enough at this mail public archive. Public archive administrator > should remove and omit any @, dot and mailto combinations against > automated addresses collectors. > > --00000000000058605f0649d21474 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"auto"><div>Hola, Narc=C3=ADs,</div><div dir=3D"auto">He demanat= resposta a una amiga llestota (IA) ;-) :</div><div dir=3D"auto"><br></div>= <div dir=3D"auto"><div dir=3D"auto"><br></div><div dir=3D"auto">El que veus= no =C3=A9s que Linux estigui fent =E2=80=9Cswap camuflada=E2=80=9D amb arx= ius temporals, sin=C3=B3 que quan vas molt just de RAM el nucli entra en un= estat de *thrashing* i fa molt=C3=ADssima E/S a disc abans o en comptes d= =E2=80=99activar l=E2=80=99OOM killer, fins i tot sense cap partici=C3=B3 d= e swap configurada.[1][2][3]</div><div dir=3D"auto"><br></div><div dir=3D"a= uto">## Qu=C3=A8 passa quan et quedes sense RAM</div><div dir=3D"auto"><br>= </div><div dir=3D"auto">Quan la RAM s=E2=80=99omple, el nucli intenta recup= erar mem=C3=B2ria abans de matar res:[1][2][3]</div><div dir=3D"auto">- Des= carta p=C3=A0gines de cache de fitxers (lectures/escriptures addicionals).= =C2=A0=C2=A0</div><div dir=3D"auto">- Recarrega codi i dades que acaba de d= escartar quan un proc=C3=A9s les torna a necessitar.=C2=A0=C2=A0</div><div = dir=3D"auto">- Si tens *tmpfs* (per exemple `/tmp` a mem=C3=B2ria), aquesta= mem=C3=B2ria compiteix amb la resta i pot acabar pressionant m=C3=A9s el s= istema encara que no tinguis swap.[4][5]</div><div dir=3D"auto"><br></div><= div dir=3D"auto">Aix=C3=B2 genera molta E/S a disc (relectura constant de f= itxers, journaling, log, etc.) i la m=C3=A0quina =E2=80=9Cs=E2=80=99amorra= =E2=80=9D, tot i que no hi ha cap swap activa.[2][3]</div><div dir=3D"auto"= ><br></div><div dir=3D"auto">El nucli *no* crea autom=C3=A0ticament fitxers= de swap ni converteix els temporals en swap, per=C3=B2 s=C3=AD que els tem= porals en *tmpfs* =E2=80=9Cconsumeixen RAM=E2=80=9D i, si hi hagu=C3=A9s sw= ap, es podrien buidar parcialment cap a swap.[4][6][5]</div><div dir=3D"aut= o"><br></div><div dir=3D"auto">## Com evitar-ho (o almenys controlar-ho)</d= iv><div dir=3D"auto"><br></div><div dir=3D"auto">Hi ha diverses estrat=C3= =A8gies; en la pr=C3=A0ctica n=E2=80=99acabar=C3=A0s combinant algunes:</di= v><div dir=3D"auto"><br></div><div dir=3D"auto">- **Activar una mica de swa= p =E2=80=9Cd=E2=80=99emerg=C3=A8ncia=E2=80=9D** (fitxer, no cal partici=C3= =B3) amb `swappiness` molt baix (per exemple 1=E2=80=9310) perqu=C3=A8 nom= =C3=A9s s=E2=80=99utilitzi quan ja vas al l=C3=ADmit, i aix=C3=AD evites el= thrashing m=C3=A9s salvatge.[1][7][2]</div><div dir=3D"auto">- **Fer servi= r zram/zswap**: swap comprimit en RAM, molt r=C3=A0pid, que et dona un coix= =C3=AD addicional sense castigar tant el disc f=C3=ADsic.[8][2]</div><div d= ir=3D"auto">- **Configurar l=C3=ADmits de mem=C3=B2ria per proc=C3=A9s** am= b `systemd` (`MemoryMax=3D`) o `ulimit` per a sessions interactives, de man= era que un proc=C3=A9s =E2=80=9Cboig=E2=80=9D mori abans de portar tot el s= istema al l=C3=ADmit.[1][2]</div><div dir=3D"auto">- **Activar i con=C3=A8i= xer les tecles Magic SysRq** (Alt+SysRq+f) per for=C3=A7ar l=E2=80=99OOM ki= ller quan vegis que la m=C3=A0quina s=E2=80=99est=C3=A0 morint per=C3=B2 en= cara tens una mica de control.[2][9]</div><div dir=3D"auto">- **Vigilar on = poses /tmp o altres tmpfs**: si `/tmp` =C3=A9s *tmpfs* molt gran, un progra= ma que hi aboqui molts fitxers pot pressionar molt la RAM; pots limitar-ne = la mida o posar-lo en disc si no tens swap.[4][5]</div><div dir=3D"auto"><b= r></div><div dir=3D"auto">## Per qu=C3=A8 no veus clar qui =C3=A9s el culpa= ble</div><div dir=3D"auto"><br></div><div dir=3D"auto">Quan la m=C3=A0quina= entra en thrashing, eines com `top` o `iotop` pr=C3=A0cticament no respone= n o ho fan amb molt retard, i quan es recupera ja s=E2=80=99han tancat proc= essos i la situaci=C3=B3 ha canviat.=C2=A0=C2=A0</div><div dir=3D"auto">Si = vols diagnosticar-ho millor, pots:=C2=A0=C2=A0</div><div dir=3D"auto">- Hab= ilitar *logging* del `oom-killer` i revisar `dmesg` o `/var/log/kern.log` d= espr=C3=A9s de l=E2=80=99episodi.[1][3]</div><div dir=3D"auto">- Deixar `io= stat`, `pidstat` o `atop` en segon pla enregistrant dades peri=C3=B2dicamen= t per tenir un =E2=80=9Chist=C3=B2ric=E2=80=9D a revisar quan la m=C3=A0qui= na torni a ser usable.[7][9]</div><div dir=3D"auto"><br></div><div dir=3D"a= uto">En resum: no =C3=A9s que Linux faci swap amb temporals de forma oculta= , sin=C3=B3 que el seu comportament fora de mem=C3=B2ria =C3=A9s bastant ag= ressiu en E/S i, sense un m=C3=ADnim de swap o l=C3=ADmits, acaba en thrash= ing abans de matar processos; posar una mica de swap =E2=80=9Ccontrolada=E2= =80=9D o zram i limitar processos acostuma a ser la manera m=C3=A9s efectiv= a de prevenir aquests =E2=80=9Camorraments=E2=80=9D.[1][6][2]</div><div dir= =3D"auto"><br></div><div dir=3D"auto">Citations:</div><div dir=3D"auto">[1]= system freezes rather than invoking OOM killer. <a href=3D"https://bbs.arc= hlinux.org/viewtopic.php?id=3D233843">https://bbs.archlinux.org/viewtopic.p= hp?id=3D233843</a></div><div dir=3D"auto">[2] Why is Linux so bad at handli= ng OOM scenarios? <a href=3D"https://www.reddit.com/r/linuxquestions/commen= ts/1fh3cjf/why_is_linux_so_bad_at_handling_oom_scenarios/">https://www.redd= it.com/r/linuxquestions/comments/1fh3cjf/why_is_linux_so_bad_at_handling_oo= m_scenarios/</a></div><div dir=3D"auto">[3] out of memory with no swap caus= es disk activity <a href=3D"https://bbs.archlinux.org/viewtopic.php?id=3D48= 319">https://bbs.archlinux.org/viewtopic.php?id=3D48319</a></div><div dir= =3D"auto">[4] use swap when /tmp its out of space <a href=3D"https://bbs.ar= chlinux.org/viewtopic.php?id=3D151122">https://bbs.archlinux.org/viewtopic.= php?id=3D151122</a></div><div dir=3D"auto">[5] Correct location for tempora= ry files, to save write endurance ... <a href=3D"https://discussion.fedorap= roject.org/t/correct-location-for-temporary-files-to-save-write-endurance-o= n-nvme/105072">https://discussion.fedoraproject.org/t/correct-location-for-= temporary-files-to-save-write-endurance-on-nvme/105072</a></div><div dir=3D= "auto">[6] Temporary files: RAM or disk? <a href=3D"https://lwn.net/Article= s/499645/">https://lwn.net/Articles/499645/</a></div><div dir=3D"auto">[7] = System suddenly using all available swap, but plenty of free ... <a href=3D= "https://discussion.fedoraproject.org/t/system-suddenly-using-all-available= -swap-but-plenty-of-free-memory/79411">https://discussion.fedoraproject.org= /t/system-suddenly-using-all-available-swap-but-plenty-of-free-memory/79411= </a></div><div dir=3D"auto">[8] the system is unusable on high disk io usag= e - openSUSE <a href=3D"https://www.reddit.com/r/openSUSE/comments/nl3q5p/t= he_system_is_unusable_on_high_disk_io_usage/">https://www.reddit.com/r/open= SUSE/comments/nl3q5p/the_system_is_unusable_on_high_disk_io_usage/</a></div= ><div dir=3D"auto">[9] Linux oom behavior always has had complaints[0]. Hop= e it ... <a href=3D"https://news.ycombinator.com/item?id=3D26451319">https:= //news.ycombinator.com/item?id=3D26451319</a></div><div dir=3D"auto">[10] H= ow to fix high memory utilization caused by swap file in ... <a href=3D"htt= ps://www.facebook.com/groups/linuxforbeginners/posts/853503369795772/">http= s://www.facebook.com/groups/linuxforbeginners/posts/853503369795772/</a></d= iv><div dir=3D"auto"><br></div></div><div><br></div><div data-smartmail=3D"= gmail_signature">--<br>Salutacions...Josep<br>--</div></div><br><div class= =3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr= ">El ds., 31 de gen. 2026, 18:51, Narcis Garcia <<a href=3D"mailto:debia= [email protected]">[email protected]</a>> va escriure:<br></div><bloc= kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:= 1px solid rgb(204,204,204);padding-left:1ex">Hola debianites;<br> <br> Tinc un ordinador amb suficient mem=C3=B2ria RAM per a les tasques habitual= s.<br> No tinc configurada mem=C3=B2ria d'intercanvi (swap) perqu=C3=A8 prefer= eixo qu=C3=A8, <br> si faig quelcom on l'ordinador es queda sense prou mem=C3=B2ria, en com= ptes <br> d'amorrar-se amb el disc dur trenqui el proc=C3=A9s o el sistema es que= ixi.<br> <br> Doncs resulta qu=C3=A8 quan carrego alguna cosa extraordin=C3=A0ria i/o amb= moltes <br> aplicacions i dades obertes, el sistema s'amorra fent no-s=C3=A9-qu=C3= =A8 amb el <br> disc dur.<br> Quan es recupera la situaci=C3=B3 (perqu=C3=A8 he aconseguit tancar finestr= es <br> lentament) ja =C3=A9s tard per a esbrinar qu=C3=A8 =C3=A9s el qu=C3=A8 est= =C3=A0 fent lectures o <br> escriptures a disc.<br> <br> Alg=C3=BA sap quina explicaci=C3=B3 t=C3=A9 aix=C3=B2?<br> Qu=C3=A8 potser el nucli Linux utilitza arxius temporals en comptes de Swap= ?<br> <br> I com ho puc evitar?<br> <br> Gr=C3=A0cies.<br> <br> -- <br> <br> Narcis Garcia<br> <br> __________<br> I'm using this dedicated address because personal addresses aren't = <br> masked enough at this mail public archive. Public archive administrator <br= > should remove and omit any @, dot and mailto combinations against <br> automated addresses collectors.<br> <br> </blockquote></div> --00000000000058605f0649d21474--