# Reduzir o "throttle rebake" para evitar ficar sem memória?

**URL:** https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914
**Category:** Support
**Created:** [Janeiro 7, 2026, 8:10pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914 "2026-01-07T20:10:27Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![DavidO](https://avatars.discourse-cdn.com/v4/letter/d/f475e1/32.png) [@DavidO](https://meta.discourse.org/u/DavidO)
#### Post date: [Janeiro 7, 2026, 8:10pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/1 "2026-01-07T20:10:28Z")

</div>

Estou tentando reprocessar 45 mil publicações porque alterei a URL do CDN do S3 e ele continua ficando sem memória e sendo encerrado.

Li isto sobre como configurar um arquivo de troca (swapfile)…

> [@Create a swapfile for your Linux server](https://meta.discourse.org/t/create-a-swapfile-for-your-linux-server/13880):
>
> bulb For servers with \<= 2GB of RAM, running ./discourse-setup will prompt for and automatically create a 2GB swapfile. Most cloud virtual machine providers do not set up swapfiles as part of their server provisioning. In particular, upgrading Discourse produces a lot of memory pressure. With a swap file, rather than randomly terminating processes with an out of memory error, things will slow down instead. Having a swap file is a cheap insurance policy that protects you from many other lo…

Os dois primeiros comandos correram bem…

1. Criar um arquivo de troca vazio  
`install -o root -g root -m 0600 /dev/null /swapfile`

2. Escrever um arquivo de 2GB chamado ‘swapfile’  
`dd if=/dev/zero of=/swapfile bs=1k count=2048k`

Mas depois em `mkswap /swapfile` deu-me um erro…

**Erro mkswap swapfile está montado, não criará espaço de troca**

Tentei isto em vez disso…

> [@Installation Error](https://meta.discourse.org/t/installation-error/274937/2):
>
> What you get from free df -h The install script has detected you have less than 2G of RAM and less than 2G of swap, and is trying to create a swapfile. According to [the source](https://github.com/discourse/discourse_docker/blob/main/discourse-setup#L193C1-L225C5), it doesn’t deal with the case where there is an existing swapfile. Probably you should remove the existing swapfile and try again. This might be enough: swapoff /swapfile && rm /swapfile free

`swapoff /swapfile && rm /swapfile`

e recebi este erro…

**swapoff: Não é superusuário**

Estou num Droplet da Digital Ocean, então acho que não tenho as permissões necessárias para isso?

Encontrando esses obstáculos, tentei apenas reprocessar as publicações não cozidas executando…

`rake posts:rebake_uncooked_posts`

Ele executará algumas centenas, talvez alguns milhares se eu tiver sorte, e depois será encerrado novamente. Depois de vigiá-lo desde ontem, estou meio cozido. 😉

Existe uma maneira de executar um comando de reprocessamento que seja limitado (throttled)? Não me importo se demorar um pouco, durante a noite ou o que for, eu só quero que pare de falhar.

Qualquer ajuda seria muito apreciada.

---

<div class="post-metadata">

### Author: ![DavidO](https://avatars.discourse-cdn.com/v4/letter/d/f475e1/32.png) [@DavidO](https://meta.discourse.org/u/DavidO)
#### Post date: [Janeiro 7, 2026, 8:13pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/2 "2026-01-07T20:13:04Z")

</div>

Estranhamente, deixei o não cozido rodando novamente enquanto escrevia tudo aquilo. Fui almoçar com alguns amigos e voltei e ele estava 100% concluído. Não sei se o arquivo de troca finalmente começou a funcionar ou se foi apenas uma coincidência de baixo uso de tempo, mas…

 ![image](https://global.discourse-cdn.com/meta/original/4X/8/a/6/8a6b91dd46d7ca4d1cc40721fb678ffa1893f4a8.png)

concluído, finalmente!

Talvez se alguém tiver uma resposta, possa ajudar outra pessoa ou a mim na próxima vez.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [Janeiro 7, 2026, 8:13pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/3 "2026-01-07T20:13:16Z")

</div>

> [@DavidO](#):
>
> swapoff: Não é superusuário

No Ubuntu:

`Sudo -i`

No Debian

`Su -`

---

<div class="post-metadata">

### Author: ![DavidO](https://avatars.discourse-cdn.com/v4/letter/d/f475e1/32.png) [@DavidO](https://meta.discourse.org/u/DavidO)
#### Post date: [Janeiro 7, 2026, 8:22pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/4 "2026-01-07T20:22:37Z")

</div>

Obrigado. Não tenho certeza se fiz certo ou não.

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/0/a/00a94543dcc5cef54815853ea07deb6f8a02a0bf.png)

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [Janeiro 7, 2026, 8:26pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/5 "2026-01-07T20:26:52Z")

</div>

Isso não parece certo. Quais instruções você está seguindo?

E por que você está criando swap dentro do contêiner? O swap deve ser criado no host, não dentro do contêiner.

---

<div class="post-metadata">

### Author: ![DavidO](https://avatars.discourse-cdn.com/v4/letter/d/f475e1/32.png) [@DavidO](https://meta.discourse.org/u/DavidO)
#### Post date: [Janeiro 7, 2026, 8:31pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/6 "2026-01-07T20:31:41Z")

</div>

> [@itsbhanusharma](#):
>
> E por que você está criando swap dentro do contêiner?

Porque eu só sei minimamente o que estou fazendo. 😉

> [@itsbhanusharma](#):
>
> Swap deve ser criado no host e não dentro do contêiner.

Então isso é no nível base `ubuntu:` e não nos níveis `ubuntu:/var/discourse` ou `ubuntu-app:/var/www/discourse`?

Alguma ideia sobre a limitação de re-rebake (rebake throttling)?

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [Janeiro 7, 2026, 8:33pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/7 "2026-01-07T20:33:37Z")

</div>

> [@DavidO](#):
>
> Alguma ideia sobre o estrangulamento (throttling) do rebake?

Eu nunca vi o rebake ser estrangulado, ele é assíncrono, ele enfileira os trabalhos que são processados em segundo plano.

---

<div class="post-metadata">

### Author: ![DavidO](https://avatars.discourse-cdn.com/v4/letter/d/f475e1/32.png) [@DavidO](https://meta.discourse.org/u/DavidO)
#### Post date: [Janeiro 7, 2026, 8:34pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/8 "2026-01-07T20:34:39Z")

</div>

OK, obrigado. O meu terminou o _rebake_ por agora, então vou me considerar com sorte e parar de mexer nele. 😃

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [Janeiro 7, 2026, 8:38pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/9 "2026-01-07T20:38:39Z")

</div>

> [@DavidO](#):
>
> Então isso é no nível base `ubuntu:` e não no nível `ubuntu:/var/discourse`?

Aviso ⚠: não faça as coisas cegamente em um site de produção, há uma grande chance de as coisas darem errado sem nenhuma maneira real de recuperá-las.

Não, não é no nível `ubuntu:`.

Você executou `./launcher enter app` antes de tentar criar o swap? Se sim, é isso que você não deveria ter feito.

Quando você acessa seu servidor pela primeira vez é o host, quando você entra no app, você está executando ações dentro do contêiner.

O swap precisa ser criado no host, a aplicação vive dentro do contêiner, é isso que você acessará para executar o comando `rebake`.

---

<div class="post-metadata">

### Author: ![DavidO](https://avatars.discourse-cdn.com/v4/letter/d/f475e1/32.png) [@DavidO](https://meta.discourse.org/u/DavidO)
#### Post date: [Janeiro 7, 2026, 8:40pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/10 "2026-01-07T20:40:48Z")

</div>

OK, obrigado pela orientação.

Nosso fórum é apenas um grupo de amigos e tem bons backups, então se eu o deixar inativo por uma semana ou mais, teremos que aguentar o GroupMe. 😉

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [Janeiro 7, 2026, 8:47pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/11 "2026-01-07T20:47:13Z")

</div>

> [@DavidO](#):
>
> **erro mkswap swapfile está montado não criará espaço de troca**

Isso significa que você já tem um arquivo de troca (swapfile), ele se chama `/swapfile` e está em uso.

Se você quiser aumentá-lo, você pode parar seu contêiner, desmontá-lo, e então usar aquele comando `dd` para aumentá-lo, e depois o comando `mkswap`.

Se outra pessoa ler isto, a maneira que eu faço é usar `grep swap discourse-setup` e olhar os comandos lá. É uma versão um pouco mais fácil do que fazer.

---

<div class="post-metadata">

### Author: ![DavidO](https://avatars.discourse-cdn.com/v4/letter/d/f475e1/32.png) [@DavidO](https://meta.discourse.org/u/DavidO)
#### Post date: [Janeiro 7, 2026, 8:49pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/12 "2026-01-07T20:49:21Z")

</div>

> [@pfaffman](#):
>
> Se mais alguém ler isto

Eu frequentemente sirvo como um aviso.

Obrigado pela adição.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [Janeiro 7, 2026, 11:33pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/13 "2026-01-07T23:33:28Z")

</div>

> [@DavidO](#):
>
> Talvez se alguém tiver uma resposta, possa ajudar outra pessoa ou a mim na próxima vez.

Não sei quanto a você, mas eu estava repetidamente ficando sem memória durante um longo processo de _rebake_ (remodelação). Criar um _swap_ de 2 GB melhorou (mais publicações foram remodeladas), mas ainda assim deu OOM (_Out of Memory_ - Fora de Memória) depois de um tempo. Aumentei o _swap_ para 4 GB e consegui remodelar todas as minhas publicações.

> [@Rebake failing: how to diagnose and fix?](https://meta.discourse.org/t/rebake-failing-how-to-diagnose-and-fix/389064/3?u=canapin):
>
> I increased the swap size from 2 to 4 GB, and the rebake worked. So, I guess it was about memory, though I am a bit surprised by how much it asks (8 GB RAM + 4 GB swap), especially since older rebakes didn’t have any issues with no swap and the same amount of RAM. What should I do if I want to monitor RAM usage and check for any issues? What metric should matter to estimate the memory requirements? Page views per day (5000-8000 + bot spikes once or twice a month)? Database size (23 GB)? …

Eu não sabia nada sobre arquivos _swap_ além deste guia [Create a swapfile for your Linux server](https://meta.discourse.org/t/create-a-swapfile-for-your-linux-server/13880?u=canapin), mas o chatGPT foi experiente o suficiente para me ajudar a aumentar meu _swap_ sem problemas.

---

<div class="post-metadata">

### Author: ![DavidO](https://avatars.discourse-cdn.com/v4/letter/d/f475e1/32.png) [@DavidO](https://meta.discourse.org/u/DavidO)
#### Post date: [Janeiro 8, 2026, 3:11pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/14 "2026-01-08T15:11:11Z")

</div>

Um problema para mim é que eu não tenho uma boa noção do que precisa ser feito em qual área. Dentro ou fora do contêiner ou dentro ou fora do aplicativo. Eu tento manter boas anotações e tenho atalhos mentais para as coisas que usarei novamente. Mas assim que começo a entender, termino o que preciso fazer e não toco nisso novamente por mais 6 a 12 a 18 meses. Então, eu tenho que meio que reaprender.

---

<div class="post-metadata">

### Author: ![Andrew\_Rowe](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_rowe/32/445877_2.png) [@Andrew\_Rowe](https://meta.discourse.org/u/Andrew_Rowe)
#### Post date: [Janeiro 8, 2026, 3:40pm UTC](https://meta.discourse.org/t/throttle-rebake-to-keep-from-running-out-of-memory/392914/15 "2026-01-08T15:40:44Z")

</div>

> [@DavidO](#):
>
> assim que começo a entender, termino o que preciso fazer e não toco mais nisso por mais 6 a 12 a 18 meses. Aí eu tenho que meio que reaprender.

Parece a história da vida de todo administrador de sistema 😂

Minha solução é fazer anotações e depois criar um pequeno tutorial aqui no meta

> [@Self hosted email certificate renewal for docker mail server](https://meta.discourse.org/t/self-hosted-email-certificate-renewal-for-docker-mail-server/357456?u=andrew_rowe):
>
> This is a How-To for other self hosted administrators I self host on a virtual private server (debian) I use [docker-mailserver](https://github.com/docker-mailserver/docker-mailserver) to provide an email server for my Discourse instance. It is a really easy solution for simple transactional email server for Discourse. It saves the emails in files on the server and doesn’t need a database. It is a no-frills solution without an online interface or any other amenities, just postfix, dovecot, fail2ban and ClamAV. Here are the [Docs](https://docker-mailserver.github.io/docker-mailserver/latest/)Renew LetsEncrypt Ce…

Eu o transformo em uma wiki para que outros possam editá-lo se encontrarem algum erro ou omissão e, da próxima vez que eu precisar fazer a mesma coisa…
