Estoy intentando rehacer (rebake) 45k publicaciones porque he cambiado la URL de la CDN de S3 y sigue quedándose sin memoria y se cierra.
Leí esto sobre cómo configurar un archivo de intercambio (swapfile)…
Los dos primeros comandos salieron bien…
Crear un archivo de intercambio vacío install -o root -g root -m 0600 /dev/null /swapfile
Escribir un archivo de 2GB llamado ‘swapfile’ dd if=/dev/zero of=/swapfile bs=1k count=2048k
Pero luego, al ejecutar mkswap /swapfile, me dio un error…
Error de mkswap: swapfile está montado, no se creará espacio de intercambio
Intenté esto en su lugar…
swapoff /swapfile && rm /swapfile
Y obtuve este error…
swapoff: No superusuario
Estoy en un Digital Ocean Droplet, así que supongo que no tengo los permisos necesarios para eso, ¿verdad?
Al encontrarme con esos obstáculos, intenté simplemente rehacer las publicaciones sin cocinar ejecutando…
rake posts:rebake_uncooked_posts
Ejecutará varios cientos, tal vez unos miles si tengo suerte, y luego se cerrará de nuevo. Después de vigilarlo desde ayer, estoy medio horneado.
¿Hay alguna forma de ejecutar un comando de rehacer que esté limitado (throttled)? No me importa si tarda un tiempo, durante la noche o lo que sea, solo quiero que deje de fallar.
Curiosamente, volví a ejecutar el sin cocinar mientras escribía todo eso. Fui a un largo almuerzo con unos amigos y volví cuando estaba 100% terminado. No estoy seguro de si el archivo de intercambio finalmente comenzó a funcionar o si fue solo una coincidencia de bajo uso en el momento, pero…
Advertencia : no hagas cosas a ciegas en un sitio de producción, existe una alta probabilidad de que las cosas salgan mal sin una forma real de recuperarlas.
No, no es al nivel ubuntu:.
¿Hiciste un ./launcher enter app antes de intentar crear el espacio de intercambio (swap)? Si es así, eso es lo que no deberías haber hecho.
Cuando inicias sesión por primera vez en tu servidor, estás en el host; cuando entras en la aplicación (app), estás realizando acciones dentro del contenedor.
El espacio de intercambio necesita crearse en el host; la aplicación vive dentro del contenedor, que es a lo que accederás para ejecutar el comando rebake.
Nuestro foro es solo un grupo de amigos y tiene buenas copias de seguridad, así que si lo arruino por una semana más o menos, tendremos que aguantar con GroupMe.
Esto significa que ya tienes un archivo de intercambio, se llama /swapfile, y está en uso.
Si quieres hacerlo más grande, puedes detener tu contenedor, luego desmontarlo, y luego usar ese comando dd para hacerlo más grande, y después el comando mkswap.
Si alguien más lee esto, la forma en que yo lo hago es usar grep swap discourse-setup y mirar los comandos allí. Es una versión un poco más fácil de lo que hay que hacer.
No sé ustedes, pero yo me quedaba repetidamente sin memoria durante un proceso largo de “rebake” (rehorneado). Crear un archivo de intercambio (swap) de 2 GB mejoró la situación (se horneó más contenido), pero seguía obteniendo OOM (Out of Memory/Fuera de Memoria) después de un tiempo. Aumenté el swap a 4 GB y pude hornear de nuevo todas mis publicaciones.
No sabía nada sobre archivos de intercambio (swap files) aparte de esta guía Create a swapfile for your Linux server, pero chatGPT fue lo suficientemente conocedor como para ayudarme a aumentar mi swap sin problemas.
Un problema para mí es que no tengo una buena idea de lo que se debe hacer en cada área. Dentro o fuera del contenedor o dentro o fuera de la aplicación. Intento llevar buenas notas y tengo atajos mentales para las cosas que usaré de nuevo. Pero justo cuando empiezo a entenderlo, termino con lo que necesito hacer y no lo tocaré de nuevo en otros 6, 12 o 18 meses. Luego tengo que volver a aprenderlo.