···11+---
22+title: Linux Ubuntu freeze Firefox
33+date: 2026-04-28
44+draft: false
55+description: 'How I fixed Ubuntu freezes caused by Firefox consuming all RAM by configuring swap, swappiness, earlyoom, and zswap.'
66+isStarred: false
77+toc: false
88+---
99+1010+## The problem
1111+1212+Third time it’s happened. I open a few tabs in Firefox, work for a couple of hours, and at some point, the system locks up completely. Nothing works, no mouse, no keyboard. The only option is to hold down the power button:
1313+1414+```
1515+Out of memory: Killed process 154968 (Isolated Web Co)
1616+total-vm:8286172kB, anon-rss:5154148kB
1717+```
1818+1919+**Firefox was eating 5GB of RAM.** A single "Isolated Web Co" process (which is basically a Firefox tab or content process).
2020+2121+Using `last -x`, I saw the system had crashed at 11:12, and there were no OOM messages in the logs before the crash. This means the system froze so quickly that the OOM killer didn't have time to intervene.
2222+2323+My config:
2424+- 16GB RAM
2525+- 4GB swap
2626+- swappiness at 60 (default)
2727+2828+Too little swap, and when RAM fills up quickly, the kernel doesn't have time to kill processes before everything stalls.
2929+3030+I looked around to understand how to better configure the system. Here are some useful things:
3131+3232+### Swap size
3333+3434+[Red Hat Documentation](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/managing_storage_devices/getting-started-with-swap_managing-storage-devices) and [TheLinuxCode](https://thelinuxcode.com/change_swap_size_ubuntu/) state that for systems with more than 8GB of RAM, you should have at least 4GB of swap, but if you experience memory pressure, it’s better to go with 8GB. I was exactly at 4GB, so I decided to increase it to 8GB.
3535+3636+### Earlyoom
3737+3838+Then I discovered [earlyoom](https://github.com/rfjakob/earlyoom). This is a daemon that monitors memory and kills processes *before* the system locks up. Unlike the kernel's OOM killer which intervenes when it's already too late, earlyoom acts when free memory drops below a certain threshold.
3939+4040+[This article by OneUptime](https://oneuptime.com/blog/post/2026-03-02-how-to-use-earlyoom-for-proactive-oom-prevention-on-ubuntu/view) explains how to configure it for desktop, using the `--prefer` and `--avoid` options to decide what to kill and what to protect.
4141+4242+### Zswap
4343+4444+Finally, I found [zswap](https://chrisdown.name/2026/03/24/zswap-vs-zram-when-to-use-what.html). It is a compressed cache that sits between RAM and disk swap. When memory fills up, zswap compresses inactive pages instead of writing them immediately to disk. Compared to pure zram, zswap integrates better with existing disk swap and doesn't break hibernation.
4545+4646+On [HowToGeek](https://www.howtogeek.com/even-if-you-have-16gb-of-ram-this-one-compressed-swap-trick-makes-linux-significantly-smoother/) there is a very clear explanation of why zswap helps even on systems with "enough" RAM.
4747+4848+## Solutions applied
4949+5050+### 1. Increased swap to 8GB
5151+5252+```bash
5353+sudo swapoff -a
5454+sudo rm /swap.img
5555+sudo fallocate -l 8G /swap.img
5656+sudo chmod 600 /swap.img
5757+sudo mkswap /swap.img
5858+sudo swapon /swap.img
5959+```
6060+6161+### 2. Set swappiness to 10
6262+6363+This way, the kernel prefers using RAM and only uses swap when truly necessary:
6464+6565+```bash
6666+echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
6767+sudo sysctl -p
6868+```
6969+7070+### 3. Installed and configured earlyoom
7171+7272+```bash
7373+sudo apt install -y earlyoom
7474+```
7575+7676+Then `/etc/default/earlyoom`:
7777+7878+```bash
7979+EARLYOOM_ARGS="-m 5 -s 5 -k -n \
8080+ --prefer '(^|/)(firefox|chrome|chromium|electron|Isolated Web Co|Web Content)' \
8181+ --avoid '(^|/)(gnome-shell|Xorg|Xwayland|systemd|sshd|gnome-session|gdm|dbus-daemon)'"
8282+```
8383+8484+This tells earlyoom to:
8585+- Intervene when RAM or swap drops below 5%
8686+- Prefer killing Firefox, Chrome, Electron (the main culprits)
8787+- Protect gnome-shell, Xorg, and system processes
8888+8989+### 4. Enabled zswap
9090+9191+I modified `/etc/default/grub` adding these parameters to the kernel:
9292+9393+```
9494+zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=25 zswap.zpool=z3fold
9595+```
9696+9797+Then `sudo update-grub`.
9898+9999+## How my system is configured now
100100+101101+
102102+103103+## Result
104104+105105+Now if Firefox decides to eat 5GB of RAM for a runaway tab:
106106+1. zswap compresses inactive pages, gaining time
107107+2. If that's not enough, disk swap absorbs the hit
108108+3. If still not enough, earlyoom kills Firefox BEFORE the system freezes
109109+4. No freezes
110110+111111+I’ve finished configuring everything and I’m writing this post. I hope it’s useful to someone having the same problem.
112112+113113+---
114114+115115+*Configuration tested on Ubuntu 24.04.4 LTS (Noble Numbat) with 2 x 8 GB DRAM DDR4 at 3200 MHz. Links lead to the sources I used to understand the setup.*
-13
content/en/posts/test-post.md
···11----
22-title: Writing posts
33-date: 2026-02-26T21:52:11+01:00
44-draft: false
55-description: 'Description is incredible'
66-isStarred: false
77-toc: false
88----
99-1010-Writing is fun.
1111-Writing a blog is fun.
1212-1313-Fun is **fun**.
···11+---
22+title: Linux Ubuntu freeze Firefox
33+date: 2026-04-28
44+draft: false
55+description: 'Come ho risolto i freeze di Ubuntu causati da Firefox che mangiava tutta la RAM, configurando swap, swappiness, earlyoom e zswap.'
66+isStarred: false
77+toc: false
88+---
99+1010+## Il problema
1111+1212+Terza volta che succede. Apro un po' di tab su Firefox, lavoro un paio d'ore, e a un certo punto il sistema si inchioda completamente. Niente funziona, niente mouse, niente tastiera. L'unica è tenere premuto il power button:
1313+1414+```
1515+Out of memory: Killed process 154968 (Isolated Web Co)
1616+total-vm:8286172kB, anon-rss:5154148kB
1717+```
1818+1919+**Firefox si stava mangiando 5GB di RAM.** Un singolo processo "Isolated Web Co" (che poi è tipo un tab o un content process di Firefox)
2020+2121+Con `last -x` ho anche visto che il sistema era crashato alle 11:12, e nei log non c'era nessun messaggio OOM prima del crash. Questo significa che il sistema si è congelato così velocemente che l'OOM killer non ha fatto in tempo a intervenire.
2222+2323+La mia config:
2424+- 16GB di RAM
2525+- 4GB di swap
2626+- swappiness a 60 (default)
2727+2828+Troppo poco swap, e quando la RAM si riempie velocemente il kernel non fa in tempo a uccidere i processi prima che tutto si blocchi.
2929+3030+Ho cercato in giro per capire come configurare meglio il sistema. Ecco un po' di cose utili:
3131+3232+### Swap size
3333+3434+Su [Red Hat Documentation](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/managing_storage_devices/getting-started-with-swap_managing-storage-devices) e [TheLinuxCode](https://thelinuxcode.com/change_swap_size_ubuntu/) dicono che per sistemi con più di 8GB di RAM, devi avere almeno 4GB di swap, ma se hai problemi di memory pressure è meglio andare sui 8GB. Bene io ero proprio a 4GB, quindi ho deciso di aumentare a 8GB.
3535+3636+### Earlyoom
3737+3838+Poi ho scoperto [earlyoom](https://github.com/rfjakob/earlyoom). Questo è un daemon che monitora la memoria e uccide i processi *prima* che il sistema si blocchi. A differenza dell'OOM killer del kernel che interviene quando è già troppo tardi, earlyoom agisce quando la memoria libera scende sotto una certa soglia.
3939+4040+Su [questo articolo di OneUptime](https://oneuptime.com/blog/post/2026-03-02-how-to-use-earlyoom-for-proactive-oom-prevention-on-ubuntu/view) spiegano come configurarlo per desktop, con le opzioni `--prefer` e `--avoid` per decidere cosa uccidere e cosa proteggere.
4141+4242+Infine ho trovato [zswap](https://chrisdown.name/2026/03/24/zswap-vs-zram-when-to-use-what.html). È tipo una cache compressa che sta tra la RAM e lo swap su disco. Quando la memoria si riempie, zswap comprime le pagine inattive invece di scriverle subito su disco. Rispetto a zram puro, zswap si integra meglio con lo swap su disco esistente e non rompe l'ibernazione.
4343+4444+Su [HowToGeek](https://www.howtogeek.com/even-if-you-have-16gb-of-ram-this-one-compressed-swap-trick-makes-linux-significantly-smoother/) c'è una spiegazione molto chiara del perché zswap aiuta anche su sistemi con "abbastanza" RAM.
4545+4646+## Le soluzioni che ho applicato
4747+4848+### 1. Aumentato lo swap a 8GB
4949+5050+```bash
5151+sudo swapoff -a
5252+sudo rm /swap.img
5353+sudo fallocate -l 8G /swap.img
5454+sudo chmod 600 /swap.img
5555+sudo mkswap /swap.img
5656+sudo swapon /swap.img
5757+```
5858+5959+### 2. Impostato swappiness a 10
6060+6161+Così il kernel preferisce usare la RAM e usa lo swap solo quando serve davvero:
6262+6363+```bash
6464+echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
6565+sudo sysctl -p
6666+```
6767+6868+### 3. Installato e configurato earlyoom
6969+7070+```bash
7171+sudo apt install -y earlyoom
7272+```
7373+7474+Poi `/etc/default/earlyoom`:
7575+7676+```bash
7777+EARLYOOM_ARGS="-m 5 -s 5 -k -n \
7878+ --prefer '(^|/)(firefox|chrome|chromium|electron|Isolated Web Co|Web Content)' \
7979+ --avoid '(^|/)(gnome-shell|Xorg|Xwayland|systemd|sshd|gnome-session|gdm|dbus-daemon)'"
8080+```
8181+8282+Questo dice a earlyoom di:
8383+- Intervenire quando RAM o swap scendono sotto il 5%
8484+- Preferire uccidere Firefox, Chrome, Electron (i colpevoli principali)
8585+- Proteggere gnome-shell, Xorg e i processi di sistema
8686+8787+### 4. Abilitato zswap
8888+8989+Ho modificato `/etc/default/grub` aggiungendo questi parametri al kernel:
9090+9191+```
9292+zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=25 zswap.zpool=z3fold
9393+```
9494+9595+Poi `sudo update-grub` e via.
9696+9797+## Come è configurato ora il mio sistema
9898+9999+
100100+101101+## Risultato
102102+103103+Ora se Firefox decide di mangiarsi 5GB di RAM per un tab impazzito:
104104+1. zswap comprime le pagine inattive, guadagnando tempo
105105+2. Se non basta, il disk swap assorbe il colpo
106106+3. Se ancora non basta, earlyoom uccide Firefox PRIMA che il sistema si blocchi
107107+4. Niente freeze
108108+109109+Ho finito di configurare tutto e sto scrivendo questo post. Spero sia utile a qualcuno che ha lo stesso problema.
110110+111111+---
112112+113113+*Configurazione testata su Ubuntu 24.04.4 LTS (Noble Numbat) con 2 x 8 GB DRAM DDR4 a 3200 MHz. I link sono alle fonti che ho usato per capire come configurare il tutto.*
+4-4
cv/index.html
···11<!DOCTYPE html>
22-<html lang="en-gb"><head><meta charset="utf-8">
22+<html lang="en-us"><head><meta charset="utf-8">
33<meta http-equiv="content-type" content="text/html">
44<meta name="viewport" content="width=device-width, initial-scale=1.0">
55···1515<meta property="og:description" content="Coding most of the time. Flâneur as a life style. Software developer for work. Software developer for passion. From Italy" />
1616<meta name="twitter:description" content="Coding most of the time. Flâneur as a life style. Software developer for work. Software developer for passion. From Italy" />
17171818-<meta property="og:locale" content="en-gb" />
1919-<meta name="language" content="en-gb" />
1818+<meta property="og:locale" content="en-us" />
1919+<meta name="language" content="en-us" />
20202121- <link rel="alternate" hreflang="en-gb" href="https://vittoriogioda.com/cv/" title="English" />
2121+ <link rel="alternate" hreflang="en-us" href="https://vittoriogioda.com/cv/" title="English" />
222223232424
+18-11
hugo.toml
···55languageCode = 'en-us'
6677# This defines how dates are formatted
88-defaultContentLanguage = "en-gb"
88+defaultContentLanguage = "en-us"
991010# Enable emojis globally
1111enableEmoji = true
···4848 ordered = false # generates <ul> instead of <ol>
49495050############################## English language ################################
5151-[Languages.en-gb]
5151+[Languages.en-us]
5252 languageName = "English"
5353- languageCode = "en-gb"
5353+ languageCode = "en"
5454 contentDir = "content/en"
5555 weight = 1
56565757- [Languages.en-gb.menu]
5858- [[Languages.en-gb.menu.main]]
5757+ [Languages.en-us.menu]
5858+ [[Languages.en-us.menu.main]]
5959 # The page reference (pageRef) is useful for menu highlighting
6060 # When pageRef is set, setting `url` is optional; it will be used as a fallback if the page is not found.
6161 pageRef="/"
6262 name = 'Home'
6363 url = '/'
6464 weight = 10
6565- [[Languages.en-gb.menu.main]]
6565+ [[Languages.en-us.menu.main]]
6666 pageRef="posts"
6767 name = 'Posts'
6868 url = '/posts/'
6969 weight = 20
707071717272- [[Languages.en-gb.menu.main]]
7272+ [[Languages.en-us.menu.main]]
7373 pageRef="collection"
7474 name = 'Collection'
7575 url = '/collection/'
7676 weight = 30
77777878- [[Languages.en-gb.menu.main]]
7878+ [[Languages.en-us.menu.main]]
7979 pageRef="cv"
8080 name = 'CV'
8181 url = '/cv/'
8282 weight = 40
83838484-[Languages.en-gb.params]
8484+[Languages.en-us.params]
8585 sitename = "Vittorio Gioda"
8686 defaultColor = "dark" # set color mode: dark, light, auto
8787 # Setting it to 'auto' applies the color scheme based on the visitor's device color preference.If you don't specify anything, ignore this parameter, or leave it blank,
···104104 # full - includes full blog post in the RSS feed. Generated using Hugo .Content .
105105 # By default (or if nothing is specified), summary is used.
106106107107-[Languages.en-gb.params.author]
107107+[Languages.en-us.params.author]
108108 avatar = "avatar.jpg" # put the file in assets folder; also ensure that image has same height and width
109109 # Note: image is not rendered if the resource(avatar image) is not found. No error is displayed.
110110 intro = "Vittorio Gioda"
···112112 description = "Coding most of the time. Flâneur as a life style. Software developer for work. Software developer for passion. From Italy"
113113114114# Allow to override webmanifest options
115115-[Languages.en-gb.params.webmanifest]
115115+[Languages.en-us.params.webmanifest]
116116 name = "Vittorio Gioda" # will use "params.sitename" or "title" by default
117117 short_name = "Vittorio Gioda" # same as name
118118 start_url = "/" # will use homepage url by default
···189189name = "Good Sleep, Good Learning"
190190url = "https://super-memory.com/articles/sleep.htm"
191191description = "Healt Research"
192192+193193+############################ Italian language ################################
194194+[Languages.it]
195195+ languageName = "Italiano"
196196+ languageCode = "it"
197197+ contentDir = "content/it"
198198+ weight = 2
+4-4
index.html
···11-<!DOCTYPE html><html lang="en-gb" class="dark"><head><meta charset="utf-8">
11+<!DOCTYPE html><html lang="en-us" class="dark"><head><meta charset="utf-8">
22<meta http-equiv="content-type" content="text/html">
33<meta name="viewport" content="width=device-width, initial-scale=1.0">
44···1414<meta property="og:description" content="Coding most of the time. Flâneur as a life style. Software developer for work. Software developer for passion. From Italy" />
1515<meta name="twitter:description" content="Coding most of the time. Flâneur as a life style. Software developer for work. Software developer for passion. From Italy" />
16161717-<meta property="og:locale" content="en-gb" />
1818-<meta name="language" content="en-gb" />
1717+<meta property="og:locale" content="en-us" />
1818+<meta name="language" content="en-us" />
19192020- <link rel="alternate" hreflang="en-gb" href="https://vittoriogioda.com/" title="English" />
2020+ <link rel="alternate" hreflang="en-us" href="https://vittoriogioda.com/" title="English" />
212122222323
+1-1
index.xml
···55 <link>https://vittoriogioda.com/</link>
66 <description>Recent content in Home on Vittorio Gioda</description>
77 <generator>Hugo -- gohugo.io</generator>
88- <language>en-gb</language>
88+ <language>en-us</language>
99 <lastBuildDate>Thu, 26 Feb 2026 21:52:11 +0100</lastBuildDate><atom:link href="https://vittoriogioda.com/index.xml" rel="self" type="application/rss+xml" />
1010 <item>
1111 <title>Writing posts</title>
···11-<!DOCTYPE html><html lang="en-gb" class="dark"><head><meta charset="utf-8">
11+<!DOCTYPE html><html lang="en" class="dark"><head><meta charset="utf-8">
22<meta http-equiv="content-type" content="text/html">
33<meta name="viewport" content="width=device-width, initial-scale=1.0">
44···1414<meta property="og:description" content="Coding most of the time. Flâneur as a life style. Software developer for work. Software developer for passion. From Italy" />
1515<meta name="twitter:description" content="Coding most of the time. Flâneur as a life style. Software developer for work. Software developer for passion. From Italy" />
16161717-<meta property="og:locale" content="en-gb" />
1818-<meta name="language" content="en-gb" />
1717+<meta property="og:locale" content="en" />
1818+<meta name="language" content="en" />
19192020- <link rel="alternate" hreflang="en-gb" href="https://vittoriogioda.com/" title="English" />
2020+ <link rel="alternate" hreflang="en-us" href="https://vittoriogioda.com/" title="English" />
2121+2222+ <link rel="alternate" hreflang="it" href="https://vittoriogioda.com/it/" title="Italiano" />
212322242325···4446 <link rel="canonical" href="https://vittoriogioda.com/">
4547 <link href="/index.xml" rel="alternate" type="application/rss+xml" title="Vittorio Gioda">
4648 <link href="/index.xml" rel="feed" type="application/rss+xml" title="Vittorio Gioda">
4747- <link href="/style.min.35b6534987e8960a1694fa69ba4f66aea014b26acc060337899cb460fe402efe.css" rel="stylesheet">
4949+ <link href="/style.min.77c2fe8c6bdd79edf8aa9f22e68680c60c293f0cee7f19200b3488b1fa77e553.css" rel="stylesheet">
4850 <link href="/code-highlight.min.706d31975fec544a864cb7f0d847a73ea55ca1df91bf495fd12a177138d807cf.css" rel="stylesheet">
49515052···121123 <span>|</span>
122124 </li>
123125124124-125126 </ul>
126127 <a id="mode" href="#">
127128 <svg xmlns="http://www.w3.org/2000/svg" class="mode-sunny" width="21" height="21" viewBox="0 0 14 14" stroke-width="1">
···163164164165 <article class="post-item">
165166 <h4 class="post-item-title">
166166- <a href="/posts/test-post/">Writing posts</a>
167167+ <a href="/posts/linux-out-of-memory/">Linux Ubuntu freeze Firefox</a>
167168 </h4>
168169169170170171171172172172- <time class="post-item-meta" datetime="2026-02-26T21:52:11+0100">
173173- 26 Feb 2026
173173+ <time class="post-item-meta" datetime="2026-04-28T00:00:00Z">
174174+ 28 Apr 2026
174175175176 </time>
176177</article>
+8-8
public/index.xml
···55 <link>https://vittoriogioda.com/</link>
66 <description>Recent content in Home on Vittorio Gioda</description>
77 <generator>Hugo -- gohugo.io</generator>
88- <language>en-gb</language>
99- <lastBuildDate>Thu, 26 Feb 2026 21:52:11 +0100</lastBuildDate><atom:link href="https://vittoriogioda.com/index.xml" rel="self" type="application/rss+xml" />
88+ <language>en</language>
99+ <lastBuildDate>Tue, 28 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vittoriogioda.com/index.xml" rel="self" type="application/rss+xml" />
1010 <item>
1111- <title>Writing posts</title>
1212- <link>https://vittoriogioda.com/posts/test-post/</link>
1313- <pubDate>Thu, 26 Feb 2026 21:52:11 +0100</pubDate>
1111+ <title>Linux Ubuntu freeze Firefox</title>
1212+ <link>https://vittoriogioda.com/posts/linux-out-of-memory/</link>
1313+ <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>
14141515- <guid>https://vittoriogioda.com/posts/test-post/</guid>
1515+ <guid>https://vittoriogioda.com/posts/linux-out-of-memory/</guid>
16161717- <description>Writing is fun. Writing a blog is fun.
1818-Fun is fun.</description>
1717+ <description>The problem Third time it’s happened. I open a few tabs in Firefox, work for a couple of hours, and at some point, the system locks up completely. Nothing works, no mouse, no keyboard. The only option is to hold down the power button:
1818+Out of memory: Killed process 154968 (Isolated Web Co) total-vm:8286172kB, anon-rss:5154148kB Firefox was eating 5GB of RAM. A single &ldquo;Isolated Web Co&rdquo; process (which is basically a Firefox tab or content process).</description>
19192020 </item>
2121
···11+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
22+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
33+ <channel>
44+ <title>Vittorio Gioda</title>
55+ <link>https://vittoriogioda.com/it/</link>
66+ <description>Recent content on Vittorio Gioda</description>
77+ <generator>Hugo -- gohugo.io</generator>
88+ <language>it</language>
99+ <lastBuildDate>Tue, 28 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vittoriogioda.com/it/index.xml" rel="self" type="application/rss+xml" />
1010+ <item>
1111+ <title>Linux Ubuntu freeze Firefox</title>
1212+ <link>https://vittoriogioda.com/it/posts/linux-out-of-memory/</link>
1313+ <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>
1414+1515+ <guid>https://vittoriogioda.com/it/posts/linux-out-of-memory/</guid>
1616+1717+ <description>Il problema Terza volta che succede. Apro un po&rsquo; di tab su Firefox, lavoro un paio d&rsquo;ore, e a un certo punto il sistema si inchioda completamente. Niente funziona, niente mouse, niente tastiera. L&rsquo;unica è tenere premuto il power button:
1818+Out of memory: Killed process 154968 (Isolated Web Co) total-vm:8286172kB, anon-rss:5154148kB Firefox si stava mangiando 5GB di RAM. Un singolo processo &ldquo;Isolated Web Co&rdquo; (che poi è tipo un tab o un content process di Firefox)</description>
1919+2020+ </item>
2121+2222+ </channel>
2323+</rss>
···11+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
22+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
33+ <channel>
44+ <title>Posts on Vittorio Gioda</title>
55+ <link>https://vittoriogioda.com/it/posts/</link>
66+ <description>Recent content in Posts on Vittorio Gioda</description>
77+ <generator>Hugo -- gohugo.io</generator>
88+ <language>it</language>
99+ <lastBuildDate>Tue, 28 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vittoriogioda.com/it/posts/index.xml" rel="self" type="application/rss+xml" />
1010+ <item>
1111+ <title>Linux Ubuntu freeze Firefox</title>
1212+ <link>https://vittoriogioda.com/it/posts/linux-out-of-memory/</link>
1313+ <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>
1414+1515+ <guid>https://vittoriogioda.com/it/posts/linux-out-of-memory/</guid>
1616+1717+ <description>Il problema Terza volta che succede. Apro un po&rsquo; di tab su Firefox, lavoro un paio d&rsquo;ore, e a un certo punto il sistema si inchioda completamente. Niente funziona, niente mouse, niente tastiera. L&rsquo;unica è tenere premuto il power button:
1818+Out of memory: Killed process 154968 (Isolated Web Co) total-vm:8286172kB, anon-rss:5154148kB Firefox si stava mangiando 5GB di RAM. Un singolo processo &ldquo;Isolated Web Co&rdquo; (che poi è tipo un tab o un content process di Firefox)</description>
1919+2020+ </item>
2121+2222+ </channel>
2323+</rss>
public/it/posts/linux-out-of-memory/draw.png
This is a binary file and will not be displayed.
+348
public/it/posts/linux-out-of-memory/index.html
···11+<!DOCTYPE html>
22+<html lang="it"><head><meta charset="utf-8">
33+<meta http-equiv="content-type" content="text/html">
44+<meta name="viewport" content="width=device-width, initial-scale=1.0">
55+66+<title itemprop="name">Linux Ubuntu freeze Firefox | Vittorio Gioda</title>
77+<meta property="og:title" content="Linux Ubuntu freeze Firefox | Vittorio Gioda" />
88+<meta name="twitter:title" content="Linux Ubuntu freeze Firefox | Vittorio Gioda" />
99+<meta itemprop="name" content="Linux Ubuntu freeze Firefox | Vittorio Gioda" />
1010+<meta name="application-name" content="Linux Ubuntu freeze Firefox | Vittorio Gioda" />
1111+<meta property="og:site_name" content="" />
1212+1313+<meta name="description" content="Come ho risolto i freeze di Ubuntu causati da Firefox che mangiava tutta la RAM, configurando swap, swappiness, earlyoom e zswap.">
1414+<meta itemprop="description" content="Come ho risolto i freeze di Ubuntu causati da Firefox che mangiava tutta la RAM, configurando swap, swappiness, earlyoom e zswap." />
1515+<meta property="og:description" content="Come ho risolto i freeze di Ubuntu causati da Firefox che mangiava tutta la RAM, configurando swap, swappiness, earlyoom e zswap." />
1616+<meta name="twitter:description" content="Come ho risolto i freeze di Ubuntu causati da Firefox che mangiava tutta la RAM, configurando swap, swappiness, earlyoom e zswap." />
1717+1818+<meta property="og:locale" content="it" />
1919+<meta name="language" content="it" />
2020+2121+ <link rel="alternate" hreflang="en-us" href="https://vittoriogioda.com/posts/linux-out-of-memory/" title="English" />
2222+2323+ <link rel="alternate" hreflang="it" href="https://vittoriogioda.com/it/posts/linux-out-of-memory/" title="Italiano" />
2424+2525+2626+2727+2828+2929+3030+3131+3232+3333+ <meta property="og:type" content="article" />
3434+ <meta property="og:article:published_time" content=2026-04-28T00:00:00Z />
3535+ <meta property="article:published_time" content=2026-04-28T00:00:00Z />
3636+ <meta property="og:url" content="https://vittoriogioda.com/it/posts/linux-out-of-memory/" />
3737+3838+3939+4040+4141+4242+ <script defer type="application/ld+json">
4343+ {
4444+ "@context": "http://schema.org",
4545+ "@type": "Article",
4646+ "headline": "Linux Ubuntu freeze Firefox",
4747+ "author": {
4848+ "@type": "Person",
4949+ "name": ""
5050+ },
5151+ "datePublished": "2026-04-28",
5252+ "description": "Come ho risolto i freeze di Ubuntu causati da Firefox che mangiava tutta la RAM, configurando swap, swappiness, earlyoom e zswap.",
5353+ "wordCount": 607 ,
5454+ "mainEntityOfPage": "True",
5555+ "dateModified": "2026-04-28",
5656+ "image": {
5757+ "@type": "imageObject",
5858+ "url": ""
5959+ },
6060+ "publisher": {
6161+ "@type": "Organization",
6262+ "name": "Vittorio Gioda"
6363+ }
6464+ }
6565+ </script>
6666+6767+6868+<meta name="generator" content="Hugo 0.123.7">
6969+7070+7171+ <meta property="og:title" content="Linux Ubuntu freeze Firefox" />
7272+<meta property="og:description" content="Come ho risolto i freeze di Ubuntu causati da Firefox che mangiava tutta la RAM, configurando swap, swappiness, earlyoom e zswap." />
7373+<meta property="og:type" content="article" />
7474+<meta property="og:url" content="https://vittoriogioda.com/it/posts/linux-out-of-memory/" /><meta property="article:section" content="posts" />
7575+<meta property="article:published_time" content="2026-04-28T00:00:00+00:00" />
7676+<meta property="article:modified_time" content="2026-04-28T00:00:00+00:00" />
7777+7878+7979+8080+8181+ <meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Linux Ubuntu freeze Firefox"/>
8282+<meta name="twitter:description" content="Come ho risolto i freeze di Ubuntu causati da Firefox che mangiava tutta la RAM, configurando swap, swappiness, earlyoom e zswap."/>
8383+8484+8585+8686+8787+ <link rel="canonical" href="https://vittoriogioda.com/it/posts/linux-out-of-memory/">
8888+ <link href="/style.min.77c2fe8c6bdd79edf8aa9f22e68680c60c293f0cee7f19200b3488b1fa77e553.css" rel="stylesheet">
8989+ <link href="/code-highlight.min.706d31975fec544a864cb7f0d847a73ea55ca1df91bf495fd12a177138d807cf.css" rel="stylesheet">
9090+9191+9292+ <link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon.png">
9393+ <link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
9494+ <link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
9595+ <link rel="mask-icon" href="/icons/safari-pinned-tab.svg">
9696+ <link rel="shortcut icon" href="/favicon.ico">
9797+9898+9999+100100+101101+<link rel="manifest" href="https://vittoriogioda.com/site.webmanifest">
102102+103103+<meta name="msapplication-config" content="/browserconfig.xml">
104104+<meta name="msapplication-TileColor" content="#2d89ef">
105105+<meta name="theme-color" content="#434648">
106106+ <meta name="color-scheme" content="light dark">
107107+108108+109109+ <link rel="icon" type="image/svg+xml" href="/icons/favicon.svg">
110110+111111+112112+113113+114114+</head>
115115+<body data-theme = "" class="notransition">
116116+117117+<script src="/js/theme.min.8961c317c5b88b953fe27525839672c9343f1058ab044696ca225656c8ba2ab0.js" integrity="sha256-iWHDF8W4i5U/4nUlg5ZyyTQ/EFirBEaWyiJWVsi6KrA="></script>
118118+119119+<div class="navbar" role="navigation">
120120+ <nav class="menu" aria-label="Main Navigation">
121121+ <div></div>
122122+ <input type="checkbox" id="menu-trigger" class="menu-trigger" />
123123+ <label for="menu-trigger">
124124+ <span class="menu-icon">
125125+ <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" stroke="currentColor" fill="none" viewBox="0 0 14 14"><title>Menu</title><path stroke-linecap="round" stroke-linejoin="round" d="M10.595 7L3.40726 7"></path><path stroke-linecap="round" stroke-linejoin="round" d="M10.5096 3.51488L3.49301 3.51488"></path><path stroke-linecap="round" stroke-linejoin="round" d="M10.5096 10.4851H3.49301"></path><path stroke-linecap="round" stroke-linejoin="round" d="M0.5 12.5V1.5C0.5 0.947715 0.947715 0.5 1.5 0.5H12.5C13.0523 0.5 13.5 0.947715 13.5 1.5V12.5C13.5 13.0523 13.0523 13.5 12.5 13.5H1.5C0.947715 13.5 0.5 13.0523 0.5 12.5Z"></path></svg>
126126+ </span>
127127+ </label>
128128+129129+ <div class="trigger">
130130+ <ul class="trigger-container">
131131+132132+133133+ <li class="menu-separator">
134134+ <span>|</span>
135135+ </li>
136136+137137+ <li>
138138+ <select aria-label="Select Language" class="lang-list" id="select-language" onchange="location = this.value;">
139139+140140+141141+142142+143143+144144+145145+146146+147147+ <option id="en-us" value="https://vittoriogioda.com/posts/linux-out-of-memory/">EN</option>
148148+149149+150150+151151+152152+153153+154154+155155+156156+157157+158158+159159+160160+161161+ <option id="it" value="https://vittoriogioda.com/it/posts/linux-out-of-memory/" selected>IT
162162+ </option>
163163+164164+165165+166166+167167+ </select>
168168+ </li>
169169+ <li class="menu-separator">
170170+ <span>|</span>
171171+ </li>
172172+173173+ </ul>
174174+ <a id="mode" href="#">
175175+ <svg xmlns="http://www.w3.org/2000/svg" class="mode-sunny" width="21" height="21" viewBox="0 0 14 14" stroke-width="1">
176176+<title>LIGHT</title><g><circle cx="7" cy="7" r="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></circle><line x1="7" y1="0.5" x2="7" y2="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="2.4" x2="3.82" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="0.5" y1="7" x2="2.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="11.6" x2="3.82" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="7" y1="13.5" x2="7" y2="11.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="11.6" x2="10.18" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="13.5" y1="7" x2="11.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="2.4" x2="10.18" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line></g></svg>
177177+ <svg xmlns="http://www.w3.org/2000/svg" class="mode-moon" width="21" height="21" viewBox="0 0 14 14" stroke-width="1">
178178+<title>DARK</title><g><circle cx="7" cy="7" r="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></circle><line x1="7" y1="0.5" x2="7" y2="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="2.4" x2="3.82" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="0.5" y1="7" x2="2.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="11.6" x2="3.82" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="7" y1="13.5" x2="7" y2="11.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="11.6" x2="10.18" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="13.5" y1="7" x2="11.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="2.4" x2="10.18" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line></g></svg>
179179+ </a>
180180+ </div>
181181+ </nav>
182182+</div>
183183+184184+<div class="wrapper post">
185185+ <main class="page-content" aria-label="Content">
186186+ <article>
187187+ <header class="header">
188188+ <h1 class="header-title">Linux Ubuntu freeze Firefox</h1>
189189+190190+191191+192192+ <div class="post-meta">
193193+ <time datetime="2026-04-28T00:00:00+00:00" itemprop="datePublished"> 28 apr 2026 </time>
194194+ </div>
195195+196196+ </header>
197197+198198+ <div class="page-content">
199199+ <h2 id="il-problema">Il problema</h2>
200200+<p>Terza volta che succede. Apro un po’ di tab su Firefox, lavoro un paio d’ore, e a un certo punto il sistema si inchioda completamente. Niente funziona, niente mouse, niente tastiera. L’unica è tenere premuto il power button:</p>
201201+<pre tabindex="0"><code>Out of memory: Killed process 154968 (Isolated Web Co)
202202+total-vm:8286172kB, anon-rss:5154148kB
203203+</code></pre><p><strong>Firefox si stava mangiando 5GB di RAM.</strong> Un singolo processo “Isolated Web Co” (che poi è tipo un tab o un content process di Firefox)</p>
204204+<p>Con <code>last -x</code> ho anche visto che il sistema era crashato alle 11:12, e nei log non c’era nessun messaggio OOM prima del crash. Questo significa che il sistema si è congelato così velocemente che l’OOM killer non ha fatto in tempo a intervenire.</p>
205205+<p>La mia config:</p>
206206+<ul>
207207+<li>16GB di RAM</li>
208208+<li>4GB di swap</li>
209209+<li>swappiness a 60 (default)</li>
210210+</ul>
211211+<p>Troppo poco swap, e quando la RAM si riempie velocemente il kernel non fa in tempo a uccidere i processi prima che tutto si blocchi.</p>
212212+<p>Ho cercato in giro per capire come configurare meglio il sistema. Ecco un po’ di cose utili:</p>
213213+<h3 id="swap-size">Swap size</h3>
214214+<p>Su <a href="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/managing_storage_devices/getting-started-with-swap_managing-storage-devices">Red Hat Documentation</a> e <a href="https://thelinuxcode.com/change_swap_size_ubuntu/">TheLinuxCode</a> dicono che per sistemi con più di 8GB di RAM, devi avere almeno 4GB di swap, ma se hai problemi di memory pressure è meglio andare sui 8GB. Bene io ero proprio a 4GB, quindi ho deciso di aumentare a 8GB.</p>
215215+<h3 id="earlyoom">Earlyoom</h3>
216216+<p>Poi ho scoperto <a href="https://github.com/rfjakob/earlyoom">earlyoom</a>. Questo è un daemon che monitora la memoria e uccide i processi <em>prima</em> che il sistema si blocchi. A differenza dell’OOM killer del kernel che interviene quando è già troppo tardi, earlyoom agisce quando la memoria libera scende sotto una certa soglia.</p>
217217+<p>Su <a href="https://oneuptime.com/blog/post/2026-03-02-how-to-use-earlyoom-for-proactive-oom-prevention-on-ubuntu/view">questo articolo di OneUptime</a> spiegano come configurarlo per desktop, con le opzioni <code>--prefer</code> e <code>--avoid</code> per decidere cosa uccidere e cosa proteggere.</p>
218218+<p>Infine ho trovato <a href="https://chrisdown.name/2026/03/24/zswap-vs-zram-when-to-use-what.html">zswap</a>. È tipo una cache compressa che sta tra la RAM e lo swap su disco. Quando la memoria si riempie, zswap comprime le pagine inattive invece di scriverle subito su disco. Rispetto a zram puro, zswap si integra meglio con lo swap su disco esistente e non rompe l’ibernazione.</p>
219219+<p>Su <a href="https://www.howtogeek.com/even-if-you-have-16gb-of-ram-this-one-compressed-swap-trick-makes-linux-significantly-smoother/">HowToGeek</a> c’è una spiegazione molto chiara del perché zswap aiuta anche su sistemi con “abbastanza” RAM.</p>
220220+<h2 id="le-soluzioni-che-ho-applicato">Le soluzioni che ho applicato</h2>
221221+<h3 id="1-aumentato-lo-swap-a-8gb">1. Aumentato lo swap a 8GB</h3>
222222+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo swapoff -a
223223+</span></span><span class="line"><span class="cl">sudo rm /swap.img
224224+</span></span><span class="line"><span class="cl">sudo fallocate -l 8G /swap.img
225225+</span></span><span class="line"><span class="cl">sudo chmod <span class="m">600</span> /swap.img
226226+</span></span><span class="line"><span class="cl">sudo mkswap /swap.img
227227+</span></span><span class="line"><span class="cl">sudo swapon /swap.img
228228+</span></span></code></pre></div><h3 id="2-impostato-swappiness-a-10">2. Impostato swappiness a 10</h3>
229229+<p>Così il kernel preferisce usare la RAM e usa lo swap solo quando serve davvero:</p>
230230+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">"vm.swappiness=10"</span> <span class="p">|</span> sudo tee -a /etc/sysctl.conf
231231+</span></span><span class="line"><span class="cl">sudo sysctl -p
232232+</span></span></code></pre></div><h3 id="3-installato-e-configurato-earlyoom">3. Installato e configurato earlyoom</h3>
233233+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo apt install -y earlyoom
234234+</span></span></code></pre></div><p>Poi <code>/etc/default/earlyoom</code>:</p>
235235+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">EARLYOOM_ARGS</span><span class="o">=</span><span class="s2">"-m 5 -s 5 -k -n \
236236+</span></span></span><span class="line"><span class="cl"><span class="s2"> --prefer '(^|/)(firefox|chrome|chromium|electron|Isolated Web Co|Web Content)' \
237237+</span></span></span><span class="line"><span class="cl"><span class="s2"> --avoid '(^|/)(gnome-shell|Xorg|Xwayland|systemd|sshd|gnome-session|gdm|dbus-daemon)'"</span>
238238+</span></span></code></pre></div><p>Questo dice a earlyoom di:</p>
239239+<ul>
240240+<li>Intervenire quando RAM o swap scendono sotto il 5%</li>
241241+<li>Preferire uccidere Firefox, Chrome, Electron (i colpevoli principali)</li>
242242+<li>Proteggere gnome-shell, Xorg e i processi di sistema</li>
243243+</ul>
244244+<h3 id="4-abilitato-zswap">4. Abilitato zswap</h3>
245245+<p>Ho modificato <code>/etc/default/grub</code> aggiungendo questi parametri al kernel:</p>
246246+<pre tabindex="0"><code>zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=25 zswap.zpool=z3fold
247247+</code></pre><p>Poi <code>sudo update-grub</code> e via.</p>
248248+<h2 id="come-è-configurato-ora-il-mio-sistema">Come è configurato ora il mio sistema</h2>
249249+<p><img alt="Draw" src="/it/posts/linux-out-of-memory/draw.png"></p>
250250+<h2 id="risultato">Risultato</h2>
251251+<p>Ora se Firefox decide di mangiarsi 5GB di RAM per un tab impazzito:</p>
252252+<ol>
253253+<li>zswap comprime le pagine inattive, guadagnando tempo</li>
254254+<li>Se non basta, il disk swap assorbe il colpo</li>
255255+<li>Se ancora non basta, earlyoom uccide Firefox PRIMA che il sistema si blocchi</li>
256256+<li>Niente freeze</li>
257257+</ol>
258258+<p>Ho finito di configurare tutto e sto scrivendo questo post. Spero sia utile a qualcuno che ha lo stesso problema.</p>
259259+<hr>
260260+<p><em>Configurazione testata su Ubuntu 24.04.4 LTS (Noble Numbat) con 2 x 8 GB DRAM DDR4 a 3200 MHz. I link sono alle fonti che ho usato per capire come configurare il tutto.</em></p>
261261+262262+ </div>
263263+ </article></main>
264264+</div>
265265+<footer class="footer">
266266+ <span class="footer_item"> </span>
267267+
268268+269269+ <div class="footer_social-icons">
270270+<a href="https://github.com/teygeta" target="_blank" rel="noopener noreferrer me"
271271+ title="Github">
272272+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
273273+ stroke-linecap="round" stroke-linejoin="round">
274274+ <path
275275+ d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22">
276276+ </path>
277277+</svg>
278278+</a>
279279+<a href="https://tangled.org/vittoriogioda.com/" target="_blank" rel="noopener noreferrer me"
280280+ title="Tangled">
281281+ <svg version="1.1" fill="currentColor" id="svg1" width="24" height="24" viewBox="0 0 24 24" sodipodi:docname="tangled_dolly_face_only.svg" inkscape:export-filename="tangled_dolly_face_only_white_on_trans.svg" inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="1.4 (e7c3feb100, 2024-10-09)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
282282+ <defs id="defs1">
283283+ <filter style="color-interpolation-filters:sRGB" inkscape:menu-tooltip="Fades hue progressively to white" inkscape:menu="Color" inkscape:label="Hue to White" id="filter24" x="0" y="0" width="1" height="1">
284284+ <feColorMatrix values="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 " type="matrix" result="r" in="SourceGraphic" id="feColorMatrix17"/>
285285+ <feColorMatrix values="0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 " type="matrix" result="g" in="SourceGraphic" id="feColorMatrix18"/>
286286+ <feColorMatrix values="0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 " type="matrix" result="b" in="SourceGraphic" id="feColorMatrix19"/>
287287+ <feBlend result="minrg" in="r" mode="darken" in2="g" id="feBlend19"/>
288288+ <feBlend result="p" in="minrg" mode="darken" in2="b" id="feBlend20"/>
289289+ <feBlend result="maxrg" in="r" mode="lighten" in2="g" id="feBlend21"/>
290290+ <feBlend result="q" in="maxrg" mode="lighten" in2="b" id="feBlend22"/>
291291+ <feComponentTransfer result="q2" in="q" id="feComponentTransfer22">
292292+ <feFuncR slope="0" type="linear" id="feFuncR22"/>
293293+ </feComponentTransfer>
294294+ <feBlend result="pq" in="p" mode="lighten" in2="q2" id="feBlend23"/>
295295+ <feColorMatrix values="-1 1 0 0 0 -1 1 0 0 0 -1 1 0 0 0 0 0 0 0 1 " type="matrix" result="qminp" in="pq" id="feColorMatrix23"/>
296296+ <feComposite k3="1" operator="arithmetic" result="qminpc" in="qminp" in2="qminp" id="feComposite23" k1="0" k2="0" k4="0"/>
297297+ <feBlend result="result2" in2="SourceGraphic" mode="screen" id="feBlend24"/>
298298+ <feComposite operator="in" in="result2" in2="SourceGraphic" result="result1" id="feComposite24"/>
299299+ </filter>
300300+ </defs>
301301+ <sodipodi:namedview id="namedview1" pagecolor="#ffffff" bordercolor="#000000" borderopacity="0.25" inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="true" inkscape:deskcolor="#d5d5d5" inkscape:zoom="7.0916564" inkscape:cx="38.84847" inkscape:cy="31.515909" inkscape:window-width="1920" inkscape:window-height="1080" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="0" inkscape:current-layer="g1">
302302+ <inkscape:page x="0" y="0" width="24" height="24" id="page2" margin="0" bleed="0"/>
303303+ </sodipodi:namedview>
304304+ <g inkscape:groupmode="layer" inkscape:label="Image" id="g1" transform="translate(-0.4388285,-0.8629527)">
305305+ <path style="fill-opacity:1;stroke-width:0.111183;filter:url(#filter24)" d="m 16.348974,24.09935 -0.06485,-0.03766 -0.202005,-0.0106 -0.202008,-0.01048 -0.275736,-0.02601 -0.275734,-0.02602 v -0.02649 -0.02648 l -0.204577,-0.04019 -0.204578,-0.04019 -0.167616,-0.08035 -0.167617,-0.08035 -0.0014,-0.04137 -0.0014,-0.04137 -0.266473,-0.143735 -0.266475,-0.143735 -0.276098,-0.20335 -0.2761,-0.203347 -0.262064,-0.251949 -0.262064,-0.25195 -0.22095,-0.284628 -0.220948,-0.284629 -0.170253,-0.284631 -0.170252,-0.284628 -0.01341,-0.0144 -0.0134,-0.0144 -0.141982,0.161297 -0.14198,0.1613 -0.22313,0.21426 -0.223132,0.214264 -0.186025,0.146053 -0.186023,0.14605 -0.252501,0.163342 -0.252502,0.163342 -0.249014,0.115348 -0.249013,0.115336 0.0053,0.03241 0.0053,0.03241 -0.1716725,0.04599 -0.171669,0.046 -0.3379966,0.101058 -0.3379972,0.101058 -0.1778925,0.04506 -0.1778935,0.04508 -0.3913655,0.02601 -0.3913643,0.02603 -0.3557868,-0.03514 -0.3557863,-0.03514 -0.037426,-0.03029 -0.037427,-0.03029 -0.076924,0.02011 -0.076924,0.02011 -0.050508,-0.05051 -0.050405,-0.05056 L 6.6604532,23.110188 6.451745,23.063961 6.1546135,22.960559 5.8574835,22.857156 5.5319879,22.694039 5.2064938,22.530922 4.8793922,22.302961 4.5522905,22.075005 4.247598,21.786585 3.9429055,21.49817 3.7185335,21.208777 3.4941628,20.919385 3.3669822,20.705914 3.239803,20.492443 3.1335213,20.278969 3.0272397,20.065499 2.9015252,19.7275 2.7758105,19.389504 2.6925225,18.998139 2.6092345,18.606774 2.6096814,17.91299 2.6101284,17.219208 2.6744634,16.90029 2.7387984,16.581374 2.8474286,16.242088 2.9560588,15.9028 3.1137374,15.583492 3.2714148,15.264182 3.3415068,15.150766 3.4115988,15.03735 3.3127798,14.96945 3.2139618,14.90157 3.0360685,14.800239 2.8581753,14.698908 2.5913347,14.503228 2.3244955,14.307547 2.0621238,14.055599 1.7997507,13.803651 1.6111953,13.56878 1.4226411,13.333906 1.2632237,13.087474 1.1038089,12.841042 0.97442,12.575195 0.8450307,12.30935 0.724603,11.971351 0.6041766,11.633356 0.52150365,11.241991 0.4388285,10.850626 0.44091592,10.156842 0.44300333,9.4630594 0.54235911,9.0369608 0.6417149,8.6108622 0.7741173,8.2694368 0.9065196,7.9280115 1.0736303,7.6214262 1.2407515,7.3148397 1.45931,7.0191718 1.6778685,6.7235039 1.9300326,6.4611321 2.1821966,6.1987592 2.4134579,6.0137228 2.6447193,5.8286865 2.8759792,5.6776409 3.1072406,5.526594 3.4282004,5.3713977 3.7491603,5.2162016 3.9263009,5.1508695 4.1034416,5.0855373 4.2813348,4.7481598 4.4592292,4.4107823 4.6718,4.108422 4.8843733,3.8060618 5.198353,3.4805372 5.5123313,3.155014 5.7685095,2.9596425 6.0246877,2.7642722 6.329187,2.5851365 6.6336863,2.406002 6.9497657,2.2751596 7.2658453,2.1443184 7.4756394,2.0772947 7.6854348,2.01027 8.0825241,1.931086 8.4796139,1.851902 l 0.5870477,0.00291 0.5870469,0.00291 0.4447315,0.092455 0.444734,0.092455 0.302419,0.1105495 0.302417,0.1105495 0.329929,0.1646046 0.32993,0.1646033 0.239329,-0.2316919 0.239329,-0.2316919 0.160103,-0.1256767 0.160105,-0.1256767 0.160102,-0.1021909 0.160105,-0.1021899 0.142315,-0.082328 0.142314,-0.082328 0.231262,-0.1090091 0.231259,-0.1090091 0.26684,-0.098743 0.266839,-0.098743 0.320208,-0.073514 0.320209,-0.073527 0.355787,-0.041833 0.355785,-0.041834 0.426942,0.023827 0.426945,0.023828 0.355785,0.071179 0.355788,0.0711791 0.284627,0.09267 0.284629,0.09267 0.28514,0.1310267 0.28514,0.1310255 0.238179,0.1446969 0.238174,0.1446979 0.259413,0.1955332 0.259413,0.1955319 0.290757,0.296774 0.290758,0.2967753 0.151736,0.1941581 0.151734,0.1941594 0.135326,0.2149951 0.135327,0.2149952 0.154755,0.3202073 0.154758,0.3202085 0.09409,0.2677358 0.09409,0.267737 0.06948,0.3319087 0.06948,0.3319099 0.01111,0.00808 0.01111,0.00808 0.444734,0.2173653 0.444734,0.2173665 0.309499,0.2161102 0.309497,0.2161101 0.309694,0.2930023 0.309694,0.2930037 0.18752,0.2348726 0.187524,0.2348727 0.166516,0.2574092 0.166519,0.2574108 0.15273,0.3260252 0.152734,0.3260262 0.08972,0.2668403 0.08971,0.2668391 0.08295,0.3913655 0.08295,0.3913652 -6.21e-4,0.6582049 -6.21e-4,0.658204 -0.06362,0.315725 -0.06362,0.315725 -0.09046,0.289112 -0.09046,0.289112 -0.122759,0.281358 -0.12276,0.281356 -0.146626,0.252323 -0.146629,0.252322 -0.190443,0.258668 -0.190448,0.258671 -0.254911,0.268356 -0.254911,0.268355 -0.286872,0.223127 -0.286874,0.223127 -0.320203,0.187693 -0.320209,0.187693 -0.04347,0.03519 -0.04347,0.03521 0.0564,0.12989 0.0564,0.129892 0.08728,0.213472 0.08728,0.213471 0.189755,0.729363 0.189753,0.729362 0.0652,0.302417 0.0652,0.302419 -0.0018,0.675994 -0.0018,0.675995 -0.0801,0.373573 -0.08009,0.373577 -0.09,0.266839 -0.09,0.26684 -0.190389,0.391364 -0.19039,0.391366 -0.223169,0.320207 -0.223167,0.320209 -0.303585,0.315294 -0.303584,0.315291 -0.284631,0.220665 -0.284629,0.220663 -0.220128,0.132359 -0.220127,0.132358 -0.242395,0.106698 -0.242394,0.106699 -0.08895,0.04734 -0.08895,0.04733 -0.249052,0.07247 -0.24905,0.07247 -0.322042,0.0574 -0.322044,0.0574 -0.282794,-0.003 -0.282795,-0.003 -0.07115,-0.0031 -0.07115,-0.0031 -0.177894,-0.0033 -0.177893,-0.0033 -0.124528,0.02555 -0.124528,0.02555 z m -4.470079,-5.349839 0.214838,-0.01739 0.206601,-0.06782 0.206602,-0.06782 0.244389,-0.117874 0.244393,-0.11786 0.274473,-0.206822 0.27447,-0.20682 0.229308,-0.257201 0.229306,-0.2572 0.219161,-0.28463 0.219159,-0.284629 0.188541,-0.284628 0.188543,-0.28463 0.214594,-0.373574 0.214593,-0.373577 0.133861,-0.312006 0.133865,-0.312007 0.02861,-0.01769 0.02861,-0.01769 0.197275,0.26212 0.197278,0.262119 0.163613,0.150814 0.163614,0.150814 0.201914,0.09276 0.201914,0.09276 0.302417,0.01421 0.302418,0.01421 0.213472,-0.08025 0.213471,-0.08025 0.200606,-0.204641 0.200606,-0.204642 0.09242,-0.278887 0.09241,-0.278888 0.05765,-0.302418 0.05764,-0.302416 L 18.41327,13.768114 18.39502,13.34117 18.31849,12.915185 18.24196,12.4892 18.15595,12.168033 18.06994,11.846867 17.928869,11.444534 17.787801,11.042201 17.621278,10.73296 17.454757,10.423723 17.337388,10.263619 17.220021,10.103516 17.095645,9.9837986 16.971268,9.8640816 16.990048,9.6813736 17.008828,9.4986654 16.947568,9.249616 16.886308,9.0005655 16.752419,8.7159355 16.618521,8.4313217 16.435707,8.2294676 16.252892,8.0276114 16.079629,7.9004245 15.906366,7.773238 l -0.20429,0.1230127 -0.204289,0.1230121 -0.26702,0.059413 -0.267022,0.059413 -0.205761,-0.021508 -0.205766,-0.021508 -0.23495,-0.08844 -0.234953,-0.08844 -0.118429,-0.090334 -0.118428,-0.090333 h -0.03944 -0.03944 L 13.711268,7.8540732 13.655958,7.9706205 13.497227,8.1520709 13.338499,8.3335203 13.168394,8.4419112 12.998289,8.550301 12.777045,8.624223 12.5558,8.698155 H 12.275611 11.995429 L 11.799973,8.6309015 11.604513,8.5636472 11.491311,8.5051061 11.37811,8.446565 11.138172,8.2254579 10.898231,8.0043497 l -0.09565,-0.084618 -0.09565,-0.084613 -0.218822,0.198024 -0.218822,0.1980231 -0.165392,0.078387 -0.1653925,0.078387 -0.177894,0.047948 -0.177892,0.047948 L 9.3635263,8.4842631 9.144328,8.4846889 8.9195029,8.4147138 8.6946778,8.3447386 8.5931214,8.4414036 8.491565,8.5380686 8.3707618,8.7019598 8.2499597,8.8658478 8.0802403,8.9290726 7.9105231,8.9922974 7.7952769,9.0780061 7.6800299,9.1637148 7.5706169,9.2778257 7.4612038,9.3919481 7.1059768,9.9205267 6.7507497,10.449105 l -0.2159851,0.449834 -0.2159839,0.449834 -0.2216572,0.462522 -0.2216559,0.462523 -0.1459343,0.337996 -0.1459342,0.337998 -0.055483,0.220042 -0.055483,0.220041 -0.015885,0.206903 -0.015872,0.206901 0.034307,0.242939 0.034307,0.24294 0.096281,0.196632 0.096281,0.196634 0.143607,0.125222 0.1436071,0.125222 0.1873143,0.08737 0.1873141,0.08737 0.2752084,0.002 0.2752084,0.002 0.2312297,-0.09773 0.231231,-0.09772 0.1067615,-0.07603 0.1067614,-0.07603 0.3679062,-0.29377 0.3679065,-0.293771 0.026804,0.01656 0.026804,0.01656 0.023626,0.466819 0.023626,0.466815 0.088326,0.513195 0.088326,0.513193 0.08897,0.364413 0.08897,0.364411 0.1315362,0.302418 0.1315352,0.302418 0.1051964,0.160105 0.1051954,0.160103 0.1104741,0.11877 0.1104731,0.118769 0.2846284,0.205644 0.2846305,0.205642 0.144448,0.07312 0.144448,0.07312 0.214787,0.05566 0.214787,0.05566 0.245601,0.03075 0.245602,0.03075 0.204577,-0.0125 0.204578,-0.0125 z m 0.686342,-3.497495 -0.11281,-0.06077 -0.106155,-0.134033 -0.106155,-0.134031 -0.04406,-0.18371 -0.04406,-0.183707 0.02417,-0.553937 0.02417,-0.553936 0.03513,-0.426945 0.03513,-0.426942 0.07225,-0.373576 0.07225,-0.373575 0.05417,-0.211338 0.05417,-0.211339 0.0674,-0.132112 0.0674,-0.132112 0.132437,-0.10916 0.132437,-0.109161 0.187436,-0.04195 0.187438,-0.04195 0.170366,0.06469 0.170364,0.06469 0.114312,0.124073 0.114313,0.124086 0.04139,0.18495 0.04139,0.184951 -0.111218,0.459845 -0.111219,0.459844 -0.03383,0.26584 -0.03382,0.265841 -0.03986,0.818307 -0.03986,0.818309 -0.0378,0.15162 -0.03779,0.151621 -0.11089,0.110562 -0.110891,0.110561 -0.114489,0.04913 -0.114489,0.04913 -0.187932,-0.0016 -0.187929,-0.0016 z m -2.8087655,-0.358124 -0.146445,-0.06848 -0.088025,-0.119502 -0.088024,-0.119502 -0.038581,-0.106736 -0.038581,-0.106736 -0.02237,-0.134956 -0.02239,-0.134957 -0.031955,-0.46988 -0.031955,-0.469881 0.036203,-0.444733 0.036203,-0.444731 0.048862,-0.215257 0.048862,-0.215255 0.076082,-0.203349 0.076081,-0.203348 0.0936,-0.111244 0.0936,-0.111245 0.143787,-0.06531 0.1437865,-0.06532 h 0.142315 0.142314 l 0.142314,0.06588 0.142316,0.06588 0.093,0.102325 0.093,0.102325 0.04042,0.120942 0.04042,0.120942 v 0.152479 0.152477 l -0.03347,0.08804 -0.03347,0.08805 -0.05693,0.275653 -0.05693,0.275651 2.11e-4,0.430246 2.12e-4,0.430243 0.04294,0.392646 0.04295,0.392647 -0.09189,0.200702 -0.09189,0.200702 -0.148688,0.0984 -0.148687,0.0984 -0.20136,0.01212 -0.2013595,0.01212 z" id="path4"/>
306306+ </g>
307307+</svg>
308308+</a>
309309+<a href="https://bsky.app/profile/vittoriogioda.com" target="_blank" rel="noopener noreferrer me"
310310+ title="Bluesky">
311311+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" stroke="none" stroke-width="2"
312312+ stroke-linecap="round" stroke-linejoin="round">
313313+ <path
314314+ d="M11.999,10.236c0.321,-0.524 0.916,-1.507 1.405,-2.376c0.755,-1.344 1.692,-2.852 2.869,-4.028c1.283,-1.281 2.845,-2.171 4.739,-2.171c1.144,-0 1.864,0.585 2.299,1.497c0.486,1.017 0.545,2.551 0.51,3.883c-0.051,1.945 -0.232,3.337 -0.505,4.275c-0.229,0.786 -0.543,1.303 -0.878,1.615c-0.892,0.833 -1.8,1.263 -2.634,1.484c0.029,0.018 0.056,0.036 0.084,0.055c0.528,0.367 0.823,0.79 1.081,1.107c0.648,0.794 0.644,1.795 0.23,2.784c-0.481,1.151 -1.533,2.279 -2.12,2.773c-1.389,1.171 -2.506,1.362 -3.383,1.133c-0.88,-0.23 -1.59,-0.932 -2.156,-1.826c-0.45,-0.71 -0.817,-1.537 -1.176,-2.186c-0.115,-0.208 -0.302,-0.455 -0.406,-0.587c-0.02,0.019 -0.04,0.04 -0.056,0.058c-0.121,0.145 -0.234,0.328 -0.349,0.531c-0.363,0.644 -0.721,1.463 -1.157,2.166c-0.555,0.895 -1.252,1.597 -2.12,1.825c-0.863,0.227 -1.97,0.037 -3.363,-1.136c-0.586,-0.494 -1.638,-1.622 -2.119,-2.773c-0.414,-0.989 -0.418,-1.99 0.229,-2.784c0.258,-0.317 0.554,-0.74 1.082,-1.106c0.027,-0.019 0.055,-0.038 0.084,-0.056c-0.834,-0.221 -1.742,-0.651 -2.634,-1.484c-0.335,-0.312 -0.649,-0.829 -0.878,-1.615c-0.273,-0.938 -0.454,-2.33 -0.505,-4.275c-0.036,-1.332 0.024,-2.866 0.509,-3.883c0.435,-0.912 1.156,-1.497 2.3,-1.497c2.32,0 4.109,1.203 5.494,2.808c1.272,1.474 2.195,3.283 2.9,4.643c0.231,0.447 0.436,0.84 0.624,1.146Zm-0.01,5.653l0.296,0.031l0.271,0.086c0.208,0.088 0.413,0.229 0.607,0.428c0.455,0.467 0.882,1.369 1.36,2.284c0.249,0.477 0.518,0.958 0.841,1.339c0.231,0.274 0.483,0.502 0.805,0.569c0.488,0.103 1.052,-0.157 1.811,-0.797c0.452,-0.38 1.274,-1.239 1.645,-2.126c0.155,-0.371 0.265,-0.75 0.022,-1.048c-0.179,-0.22 -0.366,-0.529 -0.732,-0.783c-0.536,-0.372 -1.356,-0.51 -1.905,-0.654c-0.405,-0.106 -0.715,-0.234 -0.88,-0.355l-0.284,-0.303l-0.135,-0.367l-0.008,-0.211l0.035,-0.196l0.078,-0.195l0.142,-0.209l0.198,-0.181l0.296,-0.154c0.151,-0.055 0.348,-0.092 0.587,-0.104c0.815,-0.042 2.571,0.294 4.235,-1.259c0.171,-0.159 0.288,-0.445 0.404,-0.845c0.246,-0.843 0.391,-2.096 0.438,-3.843c0.024,-0.91 0.026,-1.938 -0.208,-2.738c-0.142,-0.486 -0.367,-0.891 -0.896,-0.891c-1.675,0 -2.974,0.983 -4.031,2.21c-1.179,1.369 -2.058,3.057 -2.752,4.321c-0.483,0.88 -0.902,1.573 -1.25,1.916c-0.088,0.086 -0.174,0.157 -0.257,0.214l-0.221,0.125l-0.228,0.078l-0.267,0.031l-0.274,-0.034l-0.231,-0.083l-0.219,-0.132c-0.081,-0.058 -0.164,-0.131 -0.248,-0.22c-0.327,-0.343 -0.718,-1.037 -1.174,-1.917c-0.654,-1.262 -1.497,-2.948 -2.676,-4.314c-1.067,-1.236 -2.417,-2.217 -4.203,-2.217c-0.53,0 -0.754,0.405 -0.896,0.891c-0.234,0.8 -0.232,1.828 -0.208,2.738c0.046,1.747 0.192,3 0.438,3.843c0.116,0.4 0.233,0.686 0.403,0.845c1.665,1.553 3.421,1.217 4.235,1.259c0.24,0.012 0.437,0.049 0.588,0.104l0.295,0.154l0.199,0.181l0.142,0.209l0.078,0.195l0.035,0.196l-0.009,0.211l-0.135,0.368l-0.283,0.303c-0.165,0.12 -0.476,0.248 -0.88,0.355c-0.549,0.144 -1.369,0.281 -1.905,0.653c-0.366,0.254 -0.554,0.564 -0.732,0.783c-0.243,0.298 -0.133,0.677 0.022,1.048c0.371,0.887 1.193,1.746 1.645,2.127c0.757,0.637 1.311,0.9 1.789,0.8c0.311,-0.066 0.55,-0.29 0.772,-0.557c0.315,-0.381 0.577,-0.86 0.822,-1.337c0.394,-0.763 0.752,-1.521 1.138,-2.01c0.431,-0.544 0.929,-0.815 1.455,-0.815Z" style="fill-rule:nonzero;"/>
315315+</svg>
316316+</a>
317317+<a href="https://www.goodreads.com/user/show/189616321-vittorio-gioda" target="_blank" rel="noopener noreferrer me"
318318+ title="Goodreads">
319319+ <svg xmlns="http://www.w3.org/2000/svg" role="img" fill="currentColor" viewBox="0 0 24 24">
320320+ <path
321321+ d="M11.43 23.995c-3.608-.208-6.274-2.077-6.448-5.078.695.007 1.375-.013 2.07-.006.224 1.342 1.065 2.43 2.683 3.026 1.583.496 3.737.46 5.082-.174 1.351-.636 2.145-1.822 2.503-3.577.212-1.042.236-1.734.231-2.92l-.005-1.631h-.059c-1.245 2.564-3.315 3.53-5.59 3.475-5.74-.054-7.68-4.534-7.528-8.606.01-5.241 3.22-8.537 7.557-8.495 2.354-.14 4.605 1.362 5.554 3.37l.059.002.002-2.918 2.099.004-.002 15.717c-.193 7.04-4.376 7.89-8.209 7.811zm6.1-15.633c-.096-3.26-1.601-6.62-5.503-6.645-3.954-.017-5.625 3.592-5.604 6.85-.013 3.439 1.643 6.305 4.703 6.762 4.532.591 6.551-3.411 6.404-6.967z" />
322322+</svg>
323323+</a>
324324+<a href="/index.xml" target="_blank" rel="noopener noreferrer me"
325325+ title="Rss">
326326+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
327327+ stroke-linecap="round" stroke-linejoin="round">
328328+ <path d="M4 11a9 9 0 0 1 9 9" />
329329+ <path d="M4 4a16 16 0 0 1 16 16" />
330330+ <circle cx="5" cy="19" r="1" />
331331+</svg>
332332+</a>
333333+</div>
334334+</footer>
335335+336336+337337+338338+339339+340340+341341+342342+343343+ <script src="https://vittoriogioda.com/js/main.min.35f435a5d8eac613c52daa28d8af544a4512337d3e95236e4a4978417b8dcb2f.js" integrity="sha256-NfQ1pdjqxhPFLaoo2K9USkUSM30+lSNuSkl4QXuNyy8="></script>
344344+345345+346346+347347+</body>
348348+</html>
···55 <link>https://vittoriogioda.com/posts/</link>
66 <description>Recent content in Posts on Vittorio Gioda</description>
77 <generator>Hugo -- gohugo.io</generator>
88- <language>en-gb</language>
99- <lastBuildDate>Thu, 26 Feb 2026 21:52:11 +0100</lastBuildDate><atom:link href="https://vittoriogioda.com/posts/index.xml" rel="self" type="application/rss+xml" />
88+ <language>en</language>
99+ <lastBuildDate>Tue, 28 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vittoriogioda.com/posts/index.xml" rel="self" type="application/rss+xml" />
1010 <item>
1111- <title>Writing posts</title>
1212- <link>https://vittoriogioda.com/posts/test-post/</link>
1313- <pubDate>Thu, 26 Feb 2026 21:52:11 +0100</pubDate>
1111+ <title>Linux Ubuntu freeze Firefox</title>
1212+ <link>https://vittoriogioda.com/posts/linux-out-of-memory/</link>
1313+ <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>
14141515- <guid>https://vittoriogioda.com/posts/test-post/</guid>
1515+ <guid>https://vittoriogioda.com/posts/linux-out-of-memory/</guid>
16161717- <description>Writing is fun. Writing a blog is fun.
1818-Fun is fun.</description>
1717+ <description>The problem Third time it’s happened. I open a few tabs in Firefox, work for a couple of hours, and at some point, the system locks up completely. Nothing works, no mouse, no keyboard. The only option is to hold down the power button:
1818+Out of memory: Killed process 154968 (Isolated Web Co) total-vm:8286172kB, anon-rss:5154148kB Firefox was eating 5GB of RAM. A single &ldquo;Isolated Web Co&rdquo; process (which is basically a Firefox tab or content process).</description>
19192020 </item>
2121
public/posts/linux-out-of-memory/draw.png
This is a binary file and will not be displayed.
+399
public/posts/linux-out-of-memory/index.html
···11+<!DOCTYPE html>
22+<html lang="en"><head><meta charset="utf-8">
33+<meta http-equiv="content-type" content="text/html">
44+<meta name="viewport" content="width=device-width, initial-scale=1.0">
55+66+<title itemprop="name">Linux Ubuntu freeze Firefox | Vittorio Gioda</title>
77+<meta property="og:title" content="Linux Ubuntu freeze Firefox | Vittorio Gioda" />
88+<meta name="twitter:title" content="Linux Ubuntu freeze Firefox | Vittorio Gioda" />
99+<meta itemprop="name" content="Linux Ubuntu freeze Firefox | Vittorio Gioda" />
1010+<meta name="application-name" content="Linux Ubuntu freeze Firefox | Vittorio Gioda" />
1111+<meta property="og:site_name" content="Vittorio Gioda" />
1212+1313+<meta name="description" content="How I fixed Ubuntu freezes caused by Firefox consuming all RAM by configuring swap, swappiness, earlyoom, and zswap.">
1414+<meta itemprop="description" content="How I fixed Ubuntu freezes caused by Firefox consuming all RAM by configuring swap, swappiness, earlyoom, and zswap." />
1515+<meta property="og:description" content="How I fixed Ubuntu freezes caused by Firefox consuming all RAM by configuring swap, swappiness, earlyoom, and zswap." />
1616+<meta name="twitter:description" content="How I fixed Ubuntu freezes caused by Firefox consuming all RAM by configuring swap, swappiness, earlyoom, and zswap." />
1717+1818+<meta property="og:locale" content="en" />
1919+<meta name="language" content="en" />
2020+2121+ <link rel="alternate" hreflang="en-us" href="https://vittoriogioda.com/posts/linux-out-of-memory/" title="English" />
2222+2323+ <link rel="alternate" hreflang="it" href="https://vittoriogioda.com/it/posts/linux-out-of-memory/" title="Italiano" />
2424+2525+2626+2727+2828+2929+3030+3131+3232+3333+ <meta property="og:type" content="article" />
3434+ <meta property="og:article:published_time" content=2026-04-28T00:00:00Z />
3535+ <meta property="article:published_time" content=2026-04-28T00:00:00Z />
3636+ <meta property="og:url" content="https://vittoriogioda.com/posts/linux-out-of-memory/" />
3737+3838+3939+ <meta property="og:article:author" content="Vittorio Gioda" />
4040+ <meta property="article:author" content="Vittorio Gioda" />
4141+ <meta name="author" content="Vittorio Gioda" />
4242+4343+4444+4545+4646+4747+ <script defer type="application/ld+json">
4848+ {
4949+ "@context": "http://schema.org",
5050+ "@type": "Article",
5151+ "headline": "Linux Ubuntu freeze Firefox",
5252+ "author": {
5353+ "@type": "Person",
5454+ "name": ""
5555+ },
5656+ "datePublished": "2026-04-28",
5757+ "description": "How I fixed Ubuntu freezes caused by Firefox consuming all RAM by configuring swap, swappiness, earlyoom, and zswap.",
5858+ "wordCount": 569 ,
5959+ "mainEntityOfPage": "True",
6060+ "dateModified": "2026-04-28",
6161+ "image": {
6262+ "@type": "imageObject",
6363+ "url": ""
6464+ },
6565+ "publisher": {
6666+ "@type": "Organization",
6767+ "name": "Vittorio Gioda"
6868+ }
6969+ }
7070+ </script>
7171+7272+7373+<meta name="generator" content="Hugo 0.123.7">
7474+7575+7676+ <meta property="og:title" content="Linux Ubuntu freeze Firefox" />
7777+<meta property="og:description" content="How I fixed Ubuntu freezes caused by Firefox consuming all RAM by configuring swap, swappiness, earlyoom, and zswap." />
7878+<meta property="og:type" content="article" />
7979+<meta property="og:url" content="https://vittoriogioda.com/posts/linux-out-of-memory/" /><meta property="article:section" content="posts" />
8080+<meta property="article:published_time" content="2026-04-28T00:00:00+00:00" />
8181+<meta property="article:modified_time" content="2026-04-28T00:00:00+00:00" />
8282+8383+8484+8585+8686+ <meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Linux Ubuntu freeze Firefox"/>
8787+<meta name="twitter:description" content="How I fixed Ubuntu freezes caused by Firefox consuming all RAM by configuring swap, swappiness, earlyoom, and zswap."/>
8888+8989+9090+9191+9292+ <link rel="canonical" href="https://vittoriogioda.com/posts/linux-out-of-memory/">
9393+ <link href="/style.min.77c2fe8c6bdd79edf8aa9f22e68680c60c293f0cee7f19200b3488b1fa77e553.css" rel="stylesheet">
9494+ <link href="/code-highlight.min.706d31975fec544a864cb7f0d847a73ea55ca1df91bf495fd12a177138d807cf.css" rel="stylesheet">
9595+9696+9797+ <link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon.png">
9898+ <link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
9999+ <link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
100100+ <link rel="mask-icon" href="/icons/safari-pinned-tab.svg">
101101+ <link rel="shortcut icon" href="/favicon.ico">
102102+103103+104104+105105+106106+<link rel="manifest" href="https://vittoriogioda.com/site.webmanifest">
107107+108108+<meta name="msapplication-config" content="/browserconfig.xml">
109109+<meta name="msapplication-TileColor" content="#2d89ef">
110110+<meta name="theme-color" content="#434648">
111111+ <meta name="color-scheme" content="light dark">
112112+113113+114114+ <link rel="icon" type="image/svg+xml" href="/icons/favicon.svg">
115115+116116+117117+118118+119119+</head>
120120+<body data-theme = "dark" class="notransition">
121121+122122+<script src="/js/theme.min.8961c317c5b88b953fe27525839672c9343f1058ab044696ca225656c8ba2ab0.js" integrity="sha256-iWHDF8W4i5U/4nUlg5ZyyTQ/EFirBEaWyiJWVsi6KrA="></script>
123123+124124+<div class="navbar" role="navigation">
125125+ <nav class="menu" aria-label="Main Navigation">
126126+ <div></div>
127127+ <input type="checkbox" id="menu-trigger" class="menu-trigger" />
128128+ <label for="menu-trigger">
129129+ <span class="menu-icon">
130130+ <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" stroke="currentColor" fill="none" viewBox="0 0 14 14"><title>Menu</title><path stroke-linecap="round" stroke-linejoin="round" d="M10.595 7L3.40726 7"></path><path stroke-linecap="round" stroke-linejoin="round" d="M10.5096 3.51488L3.49301 3.51488"></path><path stroke-linecap="round" stroke-linejoin="round" d="M10.5096 10.4851H3.49301"></path><path stroke-linecap="round" stroke-linejoin="round" d="M0.5 12.5V1.5C0.5 0.947715 0.947715 0.5 1.5 0.5H12.5C13.0523 0.5 13.5 0.947715 13.5 1.5V12.5C13.5 13.0523 13.0523 13.5 12.5 13.5H1.5C0.947715 13.5 0.5 13.0523 0.5 12.5Z"></path></svg>
131131+ </span>
132132+ </label>
133133+134134+ <div class="trigger">
135135+ <ul class="trigger-container">
136136+137137+138138+ <li>
139139+ <a class="menu-link " href="/">
140140+ Home
141141+ </a>
142142+143143+ </li>
144144+145145+ <li>
146146+ <a class="menu-link active" href="/posts/">
147147+ Posts
148148+ </a>
149149+150150+ </li>
151151+152152+ <li>
153153+ <a class="menu-link " href="/collection/">
154154+ Collection
155155+ </a>
156156+157157+ </li>
158158+159159+ <li>
160160+ <a class="menu-link " href="/cv/">
161161+ CV
162162+ </a>
163163+164164+ </li>
165165+166166+ <li class="menu-separator">
167167+ <span>|</span>
168168+ </li>
169169+170170+ <li>
171171+ <select aria-label="Select Language" class="lang-list" id="select-language" onchange="location = this.value;">
172172+173173+174174+175175+176176+177177+178178+179179+180180+ <option id="en-us" value="https://vittoriogioda.com/posts/linux-out-of-memory/" selected>EN
181181+ </option>
182182+183183+184184+185185+186186+187187+188188+189189+190190+191191+192192+193193+194194+195195+ <option id="it" value="https://vittoriogioda.com/it/posts/linux-out-of-memory/">IT</option>
196196+197197+198198+199199+200200+ </select>
201201+ </li>
202202+ <li class="menu-separator">
203203+ <span>|</span>
204204+ </li>
205205+206206+ </ul>
207207+ <a id="mode" href="#">
208208+ <svg xmlns="http://www.w3.org/2000/svg" class="mode-sunny" width="21" height="21" viewBox="0 0 14 14" stroke-width="1">
209209+<title>LIGHT</title><g><circle cx="7" cy="7" r="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></circle><line x1="7" y1="0.5" x2="7" y2="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="2.4" x2="3.82" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="0.5" y1="7" x2="2.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="11.6" x2="3.82" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="7" y1="13.5" x2="7" y2="11.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="11.6" x2="10.18" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="13.5" y1="7" x2="11.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="2.4" x2="10.18" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line></g></svg>
210210+ <svg xmlns="http://www.w3.org/2000/svg" class="mode-moon" width="21" height="21" viewBox="0 0 14 14" stroke-width="1">
211211+<title>DARK</title><g><circle cx="7" cy="7" r="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></circle><line x1="7" y1="0.5" x2="7" y2="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="2.4" x2="3.82" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="0.5" y1="7" x2="2.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="11.6" x2="3.82" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="7" y1="13.5" x2="7" y2="11.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="11.6" x2="10.18" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="13.5" y1="7" x2="11.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="2.4" x2="10.18" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line></g></svg>
212212+ </a>
213213+ </div>
214214+ </nav>
215215+</div>
216216+217217+<div class="wrapper post">
218218+ <main class="page-content" aria-label="Content">
219219+ <article>
220220+ <header class="header">
221221+ <h1 class="header-title">Linux Ubuntu freeze Firefox</h1>
222222+223223+224224+225225+ <div class="post-meta">
226226+ <time datetime="2026-04-28T00:00:00+00:00" itemprop="datePublished"> Apr 28, 2026 </time>
227227+ </div>
228228+229229+ </header>
230230+231231+ <div class="page-content">
232232+ <h2 id="the-problem">The problem</h2>
233233+<p>Third time it’s happened. I open a few tabs in Firefox, work for a couple of hours, and at some point, the system locks up completely. Nothing works, no mouse, no keyboard. The only option is to hold down the power button:</p>
234234+<pre tabindex="0"><code>Out of memory: Killed process 154968 (Isolated Web Co)
235235+total-vm:8286172kB, anon-rss:5154148kB
236236+</code></pre><p><strong>Firefox was eating 5GB of RAM.</strong> A single “Isolated Web Co” process (which is basically a Firefox tab or content process).</p>
237237+<p>Using <code>last -x</code>, I saw the system had crashed at 11:12, and there were no OOM messages in the logs before the crash. This means the system froze so quickly that the OOM killer didn’t have time to intervene.</p>
238238+<p>My config:</p>
239239+<ul>
240240+<li>16GB RAM</li>
241241+<li>4GB swap</li>
242242+<li>swappiness at 60 (default)</li>
243243+</ul>
244244+<p>Too little swap, and when RAM fills up quickly, the kernel doesn’t have time to kill processes before everything stalls.</p>
245245+<p>I looked around to understand how to better configure the system. Here are some useful things:</p>
246246+<h3 id="swap-size">Swap size</h3>
247247+<p><a href="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/managing_storage_devices/getting-started-with-swap_managing-storage-devices">Red Hat Documentation</a> and <a href="https://thelinuxcode.com/change_swap_size_ubuntu/">TheLinuxCode</a> state that for systems with more than 8GB of RAM, you should have at least 4GB of swap, but if you experience memory pressure, it’s better to go with 8GB. I was exactly at 4GB, so I decided to increase it to 8GB.</p>
248248+<h3 id="earlyoom">Earlyoom</h3>
249249+<p>Then I discovered <a href="https://github.com/rfjakob/earlyoom">earlyoom</a>. This is a daemon that monitors memory and kills processes <em>before</em> the system locks up. Unlike the kernel’s OOM killer which intervenes when it’s already too late, earlyoom acts when free memory drops below a certain threshold.</p>
250250+<p><a href="https://oneuptime.com/blog/post/2026-03-02-how-to-use-earlyoom-for-proactive-oom-prevention-on-ubuntu/view">This article by OneUptime</a> explains how to configure it for desktop, using the <code>--prefer</code> and <code>--avoid</code> options to decide what to kill and what to protect.</p>
251251+<h3 id="zswap">Zswap</h3>
252252+<p>Finally, I found <a href="https://chrisdown.name/2026/03/24/zswap-vs-zram-when-to-use-what.html">zswap</a>. It is a compressed cache that sits between RAM and disk swap. When memory fills up, zswap compresses inactive pages instead of writing them immediately to disk. Compared to pure zram, zswap integrates better with existing disk swap and doesn’t break hibernation.</p>
253253+<p>On <a href="https://www.howtogeek.com/even-if-you-have-16gb-of-ram-this-one-compressed-swap-trick-makes-linux-significantly-smoother/">HowToGeek</a> there is a very clear explanation of why zswap helps even on systems with “enough” RAM.</p>
254254+<h2 id="solutions-applied">Solutions applied</h2>
255255+<h3 id="1-increased-swap-to-8gb">1. Increased swap to 8GB</h3>
256256+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo swapoff -a
257257+</span></span><span class="line"><span class="cl">sudo rm /swap.img
258258+</span></span><span class="line"><span class="cl">sudo fallocate -l 8G /swap.img
259259+</span></span><span class="line"><span class="cl">sudo chmod <span class="m">600</span> /swap.img
260260+</span></span><span class="line"><span class="cl">sudo mkswap /swap.img
261261+</span></span><span class="line"><span class="cl">sudo swapon /swap.img
262262+</span></span></code></pre></div><h3 id="2-set-swappiness-to-10">2. Set swappiness to 10</h3>
263263+<p>This way, the kernel prefers using RAM and only uses swap when truly necessary:</p>
264264+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">"vm.swappiness=10"</span> <span class="p">|</span> sudo tee -a /etc/sysctl.conf
265265+</span></span><span class="line"><span class="cl">sudo sysctl -p
266266+</span></span></code></pre></div><h3 id="3-installed-and-configured-earlyoom">3. Installed and configured earlyoom</h3>
267267+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo apt install -y earlyoom
268268+</span></span></code></pre></div><p>Then <code>/etc/default/earlyoom</code>:</p>
269269+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">EARLYOOM_ARGS</span><span class="o">=</span><span class="s2">"-m 5 -s 5 -k -n \
270270+</span></span></span><span class="line"><span class="cl"><span class="s2"> --prefer '(^|/)(firefox|chrome|chromium|electron|Isolated Web Co|Web Content)' \
271271+</span></span></span><span class="line"><span class="cl"><span class="s2"> --avoid '(^|/)(gnome-shell|Xorg|Xwayland|systemd|sshd|gnome-session|gdm|dbus-daemon)'"</span>
272272+</span></span></code></pre></div><p>This tells earlyoom to:</p>
273273+<ul>
274274+<li>Intervene when RAM or swap drops below 5%</li>
275275+<li>Prefer killing Firefox, Chrome, Electron (the main culprits)</li>
276276+<li>Protect gnome-shell, Xorg, and system processes</li>
277277+</ul>
278278+<h3 id="4-enabled-zswap">4. Enabled zswap</h3>
279279+<p>I modified <code>/etc/default/grub</code> adding these parameters to the kernel:</p>
280280+<pre tabindex="0"><code>zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=25 zswap.zpool=z3fold
281281+</code></pre><p>Then <code>sudo update-grub</code>.</p>
282282+<h2 id="how-my-system-is-configured-now">How my system is configured now</h2>
283283+<p><img alt="Draw" src="/posts/linux-out-of-memory/draw.png"></p>
284284+<h2 id="result">Result</h2>
285285+<p>Now if Firefox decides to eat 5GB of RAM for a runaway tab:</p>
286286+<ol>
287287+<li>zswap compresses inactive pages, gaining time</li>
288288+<li>If that’s not enough, disk swap absorbs the hit</li>
289289+<li>If still not enough, earlyoom kills Firefox BEFORE the system freezes</li>
290290+<li>No freezes</li>
291291+</ol>
292292+<p>I’ve finished configuring everything and I’m writing this post. I hope it’s useful to someone having the same problem.</p>
293293+<hr>
294294+<p><em>Configuration tested on Ubuntu 24.04.4 LTS (Noble Numbat) with 2 x 8 GB DRAM DDR4 at 3200 MHz. Links lead to the sources I used to understand the setup.</em></p>
295295+296296+ </div>
297297+ </article></main>
298298+</div>
299299+<footer class="footer">
300300+ <span class="footer_item"> </span>
301301+
302302+303303+ <div class="footer_social-icons">
304304+<a href="https://github.com/teygeta" target="_blank" rel="noopener noreferrer me"
305305+ title="Github">
306306+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
307307+ stroke-linecap="round" stroke-linejoin="round">
308308+ <path
309309+ d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22">
310310+ </path>
311311+</svg>
312312+</a>
313313+<a href="https://tangled.org/vittoriogioda.com/" target="_blank" rel="noopener noreferrer me"
314314+ title="Tangled">
315315+ <svg version="1.1" fill="currentColor" id="svg1" width="24" height="24" viewBox="0 0 24 24" sodipodi:docname="tangled_dolly_face_only.svg" inkscape:export-filename="tangled_dolly_face_only_white_on_trans.svg" inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="1.4 (e7c3feb100, 2024-10-09)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
316316+ <defs id="defs1">
317317+ <filter style="color-interpolation-filters:sRGB" inkscape:menu-tooltip="Fades hue progressively to white" inkscape:menu="Color" inkscape:label="Hue to White" id="filter24" x="0" y="0" width="1" height="1">
318318+ <feColorMatrix values="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 " type="matrix" result="r" in="SourceGraphic" id="feColorMatrix17"/>
319319+ <feColorMatrix values="0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 " type="matrix" result="g" in="SourceGraphic" id="feColorMatrix18"/>
320320+ <feColorMatrix values="0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 " type="matrix" result="b" in="SourceGraphic" id="feColorMatrix19"/>
321321+ <feBlend result="minrg" in="r" mode="darken" in2="g" id="feBlend19"/>
322322+ <feBlend result="p" in="minrg" mode="darken" in2="b" id="feBlend20"/>
323323+ <feBlend result="maxrg" in="r" mode="lighten" in2="g" id="feBlend21"/>
324324+ <feBlend result="q" in="maxrg" mode="lighten" in2="b" id="feBlend22"/>
325325+ <feComponentTransfer result="q2" in="q" id="feComponentTransfer22">
326326+ <feFuncR slope="0" type="linear" id="feFuncR22"/>
327327+ </feComponentTransfer>
328328+ <feBlend result="pq" in="p" mode="lighten" in2="q2" id="feBlend23"/>
329329+ <feColorMatrix values="-1 1 0 0 0 -1 1 0 0 0 -1 1 0 0 0 0 0 0 0 1 " type="matrix" result="qminp" in="pq" id="feColorMatrix23"/>
330330+ <feComposite k3="1" operator="arithmetic" result="qminpc" in="qminp" in2="qminp" id="feComposite23" k1="0" k2="0" k4="0"/>
331331+ <feBlend result="result2" in2="SourceGraphic" mode="screen" id="feBlend24"/>
332332+ <feComposite operator="in" in="result2" in2="SourceGraphic" result="result1" id="feComposite24"/>
333333+ </filter>
334334+ </defs>
335335+ <sodipodi:namedview id="namedview1" pagecolor="#ffffff" bordercolor="#000000" borderopacity="0.25" inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="true" inkscape:deskcolor="#d5d5d5" inkscape:zoom="7.0916564" inkscape:cx="38.84847" inkscape:cy="31.515909" inkscape:window-width="1920" inkscape:window-height="1080" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="0" inkscape:current-layer="g1">
336336+ <inkscape:page x="0" y="0" width="24" height="24" id="page2" margin="0" bleed="0"/>
337337+ </sodipodi:namedview>
338338+ <g inkscape:groupmode="layer" inkscape:label="Image" id="g1" transform="translate(-0.4388285,-0.8629527)">
339339+ <path style="fill-opacity:1;stroke-width:0.111183;filter:url(#filter24)" d="m 16.348974,24.09935 -0.06485,-0.03766 -0.202005,-0.0106 -0.202008,-0.01048 -0.275736,-0.02601 -0.275734,-0.02602 v -0.02649 -0.02648 l -0.204577,-0.04019 -0.204578,-0.04019 -0.167616,-0.08035 -0.167617,-0.08035 -0.0014,-0.04137 -0.0014,-0.04137 -0.266473,-0.143735 -0.266475,-0.143735 -0.276098,-0.20335 -0.2761,-0.203347 -0.262064,-0.251949 -0.262064,-0.25195 -0.22095,-0.284628 -0.220948,-0.284629 -0.170253,-0.284631 -0.170252,-0.284628 -0.01341,-0.0144 -0.0134,-0.0144 -0.141982,0.161297 -0.14198,0.1613 -0.22313,0.21426 -0.223132,0.214264 -0.186025,0.146053 -0.186023,0.14605 -0.252501,0.163342 -0.252502,0.163342 -0.249014,0.115348 -0.249013,0.115336 0.0053,0.03241 0.0053,0.03241 -0.1716725,0.04599 -0.171669,0.046 -0.3379966,0.101058 -0.3379972,0.101058 -0.1778925,0.04506 -0.1778935,0.04508 -0.3913655,0.02601 -0.3913643,0.02603 -0.3557868,-0.03514 -0.3557863,-0.03514 -0.037426,-0.03029 -0.037427,-0.03029 -0.076924,0.02011 -0.076924,0.02011 -0.050508,-0.05051 -0.050405,-0.05056 L 6.6604532,23.110188 6.451745,23.063961 6.1546135,22.960559 5.8574835,22.857156 5.5319879,22.694039 5.2064938,22.530922 4.8793922,22.302961 4.5522905,22.075005 4.247598,21.786585 3.9429055,21.49817 3.7185335,21.208777 3.4941628,20.919385 3.3669822,20.705914 3.239803,20.492443 3.1335213,20.278969 3.0272397,20.065499 2.9015252,19.7275 2.7758105,19.389504 2.6925225,18.998139 2.6092345,18.606774 2.6096814,17.91299 2.6101284,17.219208 2.6744634,16.90029 2.7387984,16.581374 2.8474286,16.242088 2.9560588,15.9028 3.1137374,15.583492 3.2714148,15.264182 3.3415068,15.150766 3.4115988,15.03735 3.3127798,14.96945 3.2139618,14.90157 3.0360685,14.800239 2.8581753,14.698908 2.5913347,14.503228 2.3244955,14.307547 2.0621238,14.055599 1.7997507,13.803651 1.6111953,13.56878 1.4226411,13.333906 1.2632237,13.087474 1.1038089,12.841042 0.97442,12.575195 0.8450307,12.30935 0.724603,11.971351 0.6041766,11.633356 0.52150365,11.241991 0.4388285,10.850626 0.44091592,10.156842 0.44300333,9.4630594 0.54235911,9.0369608 0.6417149,8.6108622 0.7741173,8.2694368 0.9065196,7.9280115 1.0736303,7.6214262 1.2407515,7.3148397 1.45931,7.0191718 1.6778685,6.7235039 1.9300326,6.4611321 2.1821966,6.1987592 2.4134579,6.0137228 2.6447193,5.8286865 2.8759792,5.6776409 3.1072406,5.526594 3.4282004,5.3713977 3.7491603,5.2162016 3.9263009,5.1508695 4.1034416,5.0855373 4.2813348,4.7481598 4.4592292,4.4107823 4.6718,4.108422 4.8843733,3.8060618 5.198353,3.4805372 5.5123313,3.155014 5.7685095,2.9596425 6.0246877,2.7642722 6.329187,2.5851365 6.6336863,2.406002 6.9497657,2.2751596 7.2658453,2.1443184 7.4756394,2.0772947 7.6854348,2.01027 8.0825241,1.931086 8.4796139,1.851902 l 0.5870477,0.00291 0.5870469,0.00291 0.4447315,0.092455 0.444734,0.092455 0.302419,0.1105495 0.302417,0.1105495 0.329929,0.1646046 0.32993,0.1646033 0.239329,-0.2316919 0.239329,-0.2316919 0.160103,-0.1256767 0.160105,-0.1256767 0.160102,-0.1021909 0.160105,-0.1021899 0.142315,-0.082328 0.142314,-0.082328 0.231262,-0.1090091 0.231259,-0.1090091 0.26684,-0.098743 0.266839,-0.098743 0.320208,-0.073514 0.320209,-0.073527 0.355787,-0.041833 0.355785,-0.041834 0.426942,0.023827 0.426945,0.023828 0.355785,0.071179 0.355788,0.0711791 0.284627,0.09267 0.284629,0.09267 0.28514,0.1310267 0.28514,0.1310255 0.238179,0.1446969 0.238174,0.1446979 0.259413,0.1955332 0.259413,0.1955319 0.290757,0.296774 0.290758,0.2967753 0.151736,0.1941581 0.151734,0.1941594 0.135326,0.2149951 0.135327,0.2149952 0.154755,0.3202073 0.154758,0.3202085 0.09409,0.2677358 0.09409,0.267737 0.06948,0.3319087 0.06948,0.3319099 0.01111,0.00808 0.01111,0.00808 0.444734,0.2173653 0.444734,0.2173665 0.309499,0.2161102 0.309497,0.2161101 0.309694,0.2930023 0.309694,0.2930037 0.18752,0.2348726 0.187524,0.2348727 0.166516,0.2574092 0.166519,0.2574108 0.15273,0.3260252 0.152734,0.3260262 0.08972,0.2668403 0.08971,0.2668391 0.08295,0.3913655 0.08295,0.3913652 -6.21e-4,0.6582049 -6.21e-4,0.658204 -0.06362,0.315725 -0.06362,0.315725 -0.09046,0.289112 -0.09046,0.289112 -0.122759,0.281358 -0.12276,0.281356 -0.146626,0.252323 -0.146629,0.252322 -0.190443,0.258668 -0.190448,0.258671 -0.254911,0.268356 -0.254911,0.268355 -0.286872,0.223127 -0.286874,0.223127 -0.320203,0.187693 -0.320209,0.187693 -0.04347,0.03519 -0.04347,0.03521 0.0564,0.12989 0.0564,0.129892 0.08728,0.213472 0.08728,0.213471 0.189755,0.729363 0.189753,0.729362 0.0652,0.302417 0.0652,0.302419 -0.0018,0.675994 -0.0018,0.675995 -0.0801,0.373573 -0.08009,0.373577 -0.09,0.266839 -0.09,0.26684 -0.190389,0.391364 -0.19039,0.391366 -0.223169,0.320207 -0.223167,0.320209 -0.303585,0.315294 -0.303584,0.315291 -0.284631,0.220665 -0.284629,0.220663 -0.220128,0.132359 -0.220127,0.132358 -0.242395,0.106698 -0.242394,0.106699 -0.08895,0.04734 -0.08895,0.04733 -0.249052,0.07247 -0.24905,0.07247 -0.322042,0.0574 -0.322044,0.0574 -0.282794,-0.003 -0.282795,-0.003 -0.07115,-0.0031 -0.07115,-0.0031 -0.177894,-0.0033 -0.177893,-0.0033 -0.124528,0.02555 -0.124528,0.02555 z m -4.470079,-5.349839 0.214838,-0.01739 0.206601,-0.06782 0.206602,-0.06782 0.244389,-0.117874 0.244393,-0.11786 0.274473,-0.206822 0.27447,-0.20682 0.229308,-0.257201 0.229306,-0.2572 0.219161,-0.28463 0.219159,-0.284629 0.188541,-0.284628 0.188543,-0.28463 0.214594,-0.373574 0.214593,-0.373577 0.133861,-0.312006 0.133865,-0.312007 0.02861,-0.01769 0.02861,-0.01769 0.197275,0.26212 0.197278,0.262119 0.163613,0.150814 0.163614,0.150814 0.201914,0.09276 0.201914,0.09276 0.302417,0.01421 0.302418,0.01421 0.213472,-0.08025 0.213471,-0.08025 0.200606,-0.204641 0.200606,-0.204642 0.09242,-0.278887 0.09241,-0.278888 0.05765,-0.302418 0.05764,-0.302416 L 18.41327,13.768114 18.39502,13.34117 18.31849,12.915185 18.24196,12.4892 18.15595,12.168033 18.06994,11.846867 17.928869,11.444534 17.787801,11.042201 17.621278,10.73296 17.454757,10.423723 17.337388,10.263619 17.220021,10.103516 17.095645,9.9837986 16.971268,9.8640816 16.990048,9.6813736 17.008828,9.4986654 16.947568,9.249616 16.886308,9.0005655 16.752419,8.7159355 16.618521,8.4313217 16.435707,8.2294676 16.252892,8.0276114 16.079629,7.9004245 15.906366,7.773238 l -0.20429,0.1230127 -0.204289,0.1230121 -0.26702,0.059413 -0.267022,0.059413 -0.205761,-0.021508 -0.205766,-0.021508 -0.23495,-0.08844 -0.234953,-0.08844 -0.118429,-0.090334 -0.118428,-0.090333 h -0.03944 -0.03944 L 13.711268,7.8540732 13.655958,7.9706205 13.497227,8.1520709 13.338499,8.3335203 13.168394,8.4419112 12.998289,8.550301 12.777045,8.624223 12.5558,8.698155 H 12.275611 11.995429 L 11.799973,8.6309015 11.604513,8.5636472 11.491311,8.5051061 11.37811,8.446565 11.138172,8.2254579 10.898231,8.0043497 l -0.09565,-0.084618 -0.09565,-0.084613 -0.218822,0.198024 -0.218822,0.1980231 -0.165392,0.078387 -0.1653925,0.078387 -0.177894,0.047948 -0.177892,0.047948 L 9.3635263,8.4842631 9.144328,8.4846889 8.9195029,8.4147138 8.6946778,8.3447386 8.5931214,8.4414036 8.491565,8.5380686 8.3707618,8.7019598 8.2499597,8.8658478 8.0802403,8.9290726 7.9105231,8.9922974 7.7952769,9.0780061 7.6800299,9.1637148 7.5706169,9.2778257 7.4612038,9.3919481 7.1059768,9.9205267 6.7507497,10.449105 l -0.2159851,0.449834 -0.2159839,0.449834 -0.2216572,0.462522 -0.2216559,0.462523 -0.1459343,0.337996 -0.1459342,0.337998 -0.055483,0.220042 -0.055483,0.220041 -0.015885,0.206903 -0.015872,0.206901 0.034307,0.242939 0.034307,0.24294 0.096281,0.196632 0.096281,0.196634 0.143607,0.125222 0.1436071,0.125222 0.1873143,0.08737 0.1873141,0.08737 0.2752084,0.002 0.2752084,0.002 0.2312297,-0.09773 0.231231,-0.09772 0.1067615,-0.07603 0.1067614,-0.07603 0.3679062,-0.29377 0.3679065,-0.293771 0.026804,0.01656 0.026804,0.01656 0.023626,0.466819 0.023626,0.466815 0.088326,0.513195 0.088326,0.513193 0.08897,0.364413 0.08897,0.364411 0.1315362,0.302418 0.1315352,0.302418 0.1051964,0.160105 0.1051954,0.160103 0.1104741,0.11877 0.1104731,0.118769 0.2846284,0.205644 0.2846305,0.205642 0.144448,0.07312 0.144448,0.07312 0.214787,0.05566 0.214787,0.05566 0.245601,0.03075 0.245602,0.03075 0.204577,-0.0125 0.204578,-0.0125 z m 0.686342,-3.497495 -0.11281,-0.06077 -0.106155,-0.134033 -0.106155,-0.134031 -0.04406,-0.18371 -0.04406,-0.183707 0.02417,-0.553937 0.02417,-0.553936 0.03513,-0.426945 0.03513,-0.426942 0.07225,-0.373576 0.07225,-0.373575 0.05417,-0.211338 0.05417,-0.211339 0.0674,-0.132112 0.0674,-0.132112 0.132437,-0.10916 0.132437,-0.109161 0.187436,-0.04195 0.187438,-0.04195 0.170366,0.06469 0.170364,0.06469 0.114312,0.124073 0.114313,0.124086 0.04139,0.18495 0.04139,0.184951 -0.111218,0.459845 -0.111219,0.459844 -0.03383,0.26584 -0.03382,0.265841 -0.03986,0.818307 -0.03986,0.818309 -0.0378,0.15162 -0.03779,0.151621 -0.11089,0.110562 -0.110891,0.110561 -0.114489,0.04913 -0.114489,0.04913 -0.187932,-0.0016 -0.187929,-0.0016 z m -2.8087655,-0.358124 -0.146445,-0.06848 -0.088025,-0.119502 -0.088024,-0.119502 -0.038581,-0.106736 -0.038581,-0.106736 -0.02237,-0.134956 -0.02239,-0.134957 -0.031955,-0.46988 -0.031955,-0.469881 0.036203,-0.444733 0.036203,-0.444731 0.048862,-0.215257 0.048862,-0.215255 0.076082,-0.203349 0.076081,-0.203348 0.0936,-0.111244 0.0936,-0.111245 0.143787,-0.06531 0.1437865,-0.06532 h 0.142315 0.142314 l 0.142314,0.06588 0.142316,0.06588 0.093,0.102325 0.093,0.102325 0.04042,0.120942 0.04042,0.120942 v 0.152479 0.152477 l -0.03347,0.08804 -0.03347,0.08805 -0.05693,0.275653 -0.05693,0.275651 2.11e-4,0.430246 2.12e-4,0.430243 0.04294,0.392646 0.04295,0.392647 -0.09189,0.200702 -0.09189,0.200702 -0.148688,0.0984 -0.148687,0.0984 -0.20136,0.01212 -0.2013595,0.01212 z" id="path4"/>
340340+ </g>
341341+</svg>
342342+</a>
343343+<a href="https://bsky.app/profile/vittoriogioda.com" target="_blank" rel="noopener noreferrer me"
344344+ title="Bluesky">
345345+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" stroke="none" stroke-width="2"
346346+ stroke-linecap="round" stroke-linejoin="round">
347347+ <path
348348+ d="M11.999,10.236c0.321,-0.524 0.916,-1.507 1.405,-2.376c0.755,-1.344 1.692,-2.852 2.869,-4.028c1.283,-1.281 2.845,-2.171 4.739,-2.171c1.144,-0 1.864,0.585 2.299,1.497c0.486,1.017 0.545,2.551 0.51,3.883c-0.051,1.945 -0.232,3.337 -0.505,4.275c-0.229,0.786 -0.543,1.303 -0.878,1.615c-0.892,0.833 -1.8,1.263 -2.634,1.484c0.029,0.018 0.056,0.036 0.084,0.055c0.528,0.367 0.823,0.79 1.081,1.107c0.648,0.794 0.644,1.795 0.23,2.784c-0.481,1.151 -1.533,2.279 -2.12,2.773c-1.389,1.171 -2.506,1.362 -3.383,1.133c-0.88,-0.23 -1.59,-0.932 -2.156,-1.826c-0.45,-0.71 -0.817,-1.537 -1.176,-2.186c-0.115,-0.208 -0.302,-0.455 -0.406,-0.587c-0.02,0.019 -0.04,0.04 -0.056,0.058c-0.121,0.145 -0.234,0.328 -0.349,0.531c-0.363,0.644 -0.721,1.463 -1.157,2.166c-0.555,0.895 -1.252,1.597 -2.12,1.825c-0.863,0.227 -1.97,0.037 -3.363,-1.136c-0.586,-0.494 -1.638,-1.622 -2.119,-2.773c-0.414,-0.989 -0.418,-1.99 0.229,-2.784c0.258,-0.317 0.554,-0.74 1.082,-1.106c0.027,-0.019 0.055,-0.038 0.084,-0.056c-0.834,-0.221 -1.742,-0.651 -2.634,-1.484c-0.335,-0.312 -0.649,-0.829 -0.878,-1.615c-0.273,-0.938 -0.454,-2.33 -0.505,-4.275c-0.036,-1.332 0.024,-2.866 0.509,-3.883c0.435,-0.912 1.156,-1.497 2.3,-1.497c2.32,0 4.109,1.203 5.494,2.808c1.272,1.474 2.195,3.283 2.9,4.643c0.231,0.447 0.436,0.84 0.624,1.146Zm-0.01,5.653l0.296,0.031l0.271,0.086c0.208,0.088 0.413,0.229 0.607,0.428c0.455,0.467 0.882,1.369 1.36,2.284c0.249,0.477 0.518,0.958 0.841,1.339c0.231,0.274 0.483,0.502 0.805,0.569c0.488,0.103 1.052,-0.157 1.811,-0.797c0.452,-0.38 1.274,-1.239 1.645,-2.126c0.155,-0.371 0.265,-0.75 0.022,-1.048c-0.179,-0.22 -0.366,-0.529 -0.732,-0.783c-0.536,-0.372 -1.356,-0.51 -1.905,-0.654c-0.405,-0.106 -0.715,-0.234 -0.88,-0.355l-0.284,-0.303l-0.135,-0.367l-0.008,-0.211l0.035,-0.196l0.078,-0.195l0.142,-0.209l0.198,-0.181l0.296,-0.154c0.151,-0.055 0.348,-0.092 0.587,-0.104c0.815,-0.042 2.571,0.294 4.235,-1.259c0.171,-0.159 0.288,-0.445 0.404,-0.845c0.246,-0.843 0.391,-2.096 0.438,-3.843c0.024,-0.91 0.026,-1.938 -0.208,-2.738c-0.142,-0.486 -0.367,-0.891 -0.896,-0.891c-1.675,0 -2.974,0.983 -4.031,2.21c-1.179,1.369 -2.058,3.057 -2.752,4.321c-0.483,0.88 -0.902,1.573 -1.25,1.916c-0.088,0.086 -0.174,0.157 -0.257,0.214l-0.221,0.125l-0.228,0.078l-0.267,0.031l-0.274,-0.034l-0.231,-0.083l-0.219,-0.132c-0.081,-0.058 -0.164,-0.131 -0.248,-0.22c-0.327,-0.343 -0.718,-1.037 -1.174,-1.917c-0.654,-1.262 -1.497,-2.948 -2.676,-4.314c-1.067,-1.236 -2.417,-2.217 -4.203,-2.217c-0.53,0 -0.754,0.405 -0.896,0.891c-0.234,0.8 -0.232,1.828 -0.208,2.738c0.046,1.747 0.192,3 0.438,3.843c0.116,0.4 0.233,0.686 0.403,0.845c1.665,1.553 3.421,1.217 4.235,1.259c0.24,0.012 0.437,0.049 0.588,0.104l0.295,0.154l0.199,0.181l0.142,0.209l0.078,0.195l0.035,0.196l-0.009,0.211l-0.135,0.368l-0.283,0.303c-0.165,0.12 -0.476,0.248 -0.88,0.355c-0.549,0.144 -1.369,0.281 -1.905,0.653c-0.366,0.254 -0.554,0.564 -0.732,0.783c-0.243,0.298 -0.133,0.677 0.022,1.048c0.371,0.887 1.193,1.746 1.645,2.127c0.757,0.637 1.311,0.9 1.789,0.8c0.311,-0.066 0.55,-0.29 0.772,-0.557c0.315,-0.381 0.577,-0.86 0.822,-1.337c0.394,-0.763 0.752,-1.521 1.138,-2.01c0.431,-0.544 0.929,-0.815 1.455,-0.815Z" style="fill-rule:nonzero;"/>
349349+</svg>
350350+</a>
351351+<a href="https://www.goodreads.com/user/show/189616321-vittorio-gioda" target="_blank" rel="noopener noreferrer me"
352352+ title="Goodreads">
353353+ <svg xmlns="http://www.w3.org/2000/svg" role="img" fill="currentColor" viewBox="0 0 24 24">
354354+ <path
355355+ d="M11.43 23.995c-3.608-.208-6.274-2.077-6.448-5.078.695.007 1.375-.013 2.07-.006.224 1.342 1.065 2.43 2.683 3.026 1.583.496 3.737.46 5.082-.174 1.351-.636 2.145-1.822 2.503-3.577.212-1.042.236-1.734.231-2.92l-.005-1.631h-.059c-1.245 2.564-3.315 3.53-5.59 3.475-5.74-.054-7.68-4.534-7.528-8.606.01-5.241 3.22-8.537 7.557-8.495 2.354-.14 4.605 1.362 5.554 3.37l.059.002.002-2.918 2.099.004-.002 15.717c-.193 7.04-4.376 7.89-8.209 7.811zm6.1-15.633c-.096-3.26-1.601-6.62-5.503-6.645-3.954-.017-5.625 3.592-5.604 6.85-.013 3.439 1.643 6.305 4.703 6.762 4.532.591 6.551-3.411 6.404-6.967z" />
356356+</svg>
357357+</a>
358358+<a href="/index.xml" target="_blank" rel="noopener noreferrer me"
359359+ title="Rss">
360360+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
361361+ stroke-linecap="round" stroke-linejoin="round">
362362+ <path d="M4 11a9 9 0 0 1 9 9" />
363363+ <path d="M4 4a16 16 0 0 1 16 16" />
364364+ <circle cx="5" cy="19" r="1" />
365365+</svg>
366366+</a>
367367+</div>
368368+</footer><a href="#" title="Go to top" id="totop">
369369+ <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" fill="currentColor" stroke="currentColor" viewBox="0 96 960 960">
370370+ <path d="M283 704.739 234.261 656 480 410.261 725.739 656 677 704.739l-197-197-197 197Z"/>
371371+</svg>
372372+373373+</a>
374374+375375+376376+377377+378378+379379+380380+381381+382382+383383+384384+385385+386386+387387+388388+389389+390390+391391+392392+393393+394394+ <script src="https://vittoriogioda.com/js/main.min.35f435a5d8eac613c52daa28d8af544a4512337d3e95236e4a4978417b8dcb2f.js" integrity="sha256-NfQ1pdjqxhPFLaoo2K9USkUSM30+lSNuSkl4QXuNyy8="></script>
395395+396396+397397+398398+</body>
399399+</html>
···55languageCode = 'en-us'
6677# This defines how dates are formatted
88-defaultContentLanguage = "en-gb"
88+defaultContentLanguage = "en-us"
991010# Enable emojis globally
1111enableEmoji = true
···4848 ordered = false # generates <ul> instead of <ol>
49495050############################## English language ################################
5151-[Languages.en-gb]
5151+[Languages.en-us]
5252 languageName = "English"
5353- languageCode = "en-gb"
5353+ languageCode = "en-us"
5454 contentDir = "content/en"
5555 weight = 1
56565757- [Languages.en-gb.menu]
5858- [[Languages.en-gb.menu.main]]
5757+ [Languages.en-us.menu]
5858+ [[Languages.en-us.menu.main]]
5959 # The page reference (pageRef) is useful for menu highlighting
6060 # When pageRef is set, setting `url` is optional; it will be used as a fallback if the page is not found.
6161 pageRef="/"
6262 name = 'Home'
6363 url = '/'
6464 weight = 10
6565- [[Languages.en-gb.menu.main]]
6565+ [[Languages.en-us.menu.main]]
6666 pageRef="posts"
6767 name = 'Posts'
6868 url = '/posts/'
6969 weight = 20
7070- [[Languages.en-gb.menu.main]]
7070+ [[Languages.en-us.menu.main]]
7171 pageRef="about"
7272 name = 'About'
7373 url = '/about/'
7474 weight = 30
75757676-[Languages.en-gb.params]
7676+[Languages.en-us.params]
7777 sitename = "Awesome hugo blog"
7878 defaultColor = "dark" # set color mode: dark, light, auto
7979 # Setting it to 'auto' applies the color scheme based on the visitor's device color preference.If you don't specify anything, ignore this parameter, or leave it blank,
···9696 # full - includes full blog post in the RSS feed. Generated using Hugo .Content .
9797 # By default (or if nothing is specified), summary is used.
98989999-[Languages.en-gb.params.author]
9999+[Languages.en-us.params.author]
100100 avatar = "avatar.jpg" # put the file in assets folder; also ensure that image has same height and width
101101 # Note: image is not rendered if the resource(avatar image) is not found. No error is displayed.
102102 intro = "Awesome hugo blog"
···104104 description = "A fast, minimalistic Hugo theme with light and dark mode support, for running a personal site or blog."
105105106106# Allow to override webmanifest options
107107-[Languages.en-gb.params.webmanifest]
107107+[Languages.en-us.params.webmanifest]
108108 name = "sitename" # will use "params.sitename" or "title" by default
109109 short_name = "sitename" # same as name
110110 start_url = "/" # will use homepage url by default