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)…
Os dois primeiros comandos correram bem…
Criar um arquivo de troca vazio install -o root -g root -m 0600 /dev/null /swapfile
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…
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.
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…
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.
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.
Eu não sabia nada sobre arquivos swap além deste guia Create a swapfile for your Linux server, mas o chatGPT foi experiente o suficiente para me ajudar a aumentar meu swap sem problemas.
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.
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
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…