Actualización de Discourse falla por espacio insuficiente en disco en droplet de 25G

18G /var

du -h -s /var/* | sort -h -r
14G     /var/lib
2.8G    /var/log
933M    /var/discourse
du -h -s /var/lib/* | sort -h -r
13G     /var/lib/docker
744M    /var/lib/snapd
root@DO-Discourse:/var/discourse# du -h -s /var/lib/docker/* | sort -h -r
13G     /var/lib/docker/overlay2
16M     /var/lib/docker/image
root@DO-Discourse:/var/discourse# du -h -s /var/lib/docker/overlay2/* | sort -h -r
8.7G    /var/lib/docker/overlay2/d319d95263d87c2a75a4bc9a9f03a25ea7f6eb1f7bac687e7ae7d45522939dc0
2.8G    /var/lib/docker/overlay2/79be56509f1588c272683332ef50abd54f0aeb06d0e2d13f8eea1bace3b3db46
873M    /var/lib/docker/overlay2/5b148cbbcca894be512c7407568104cd7b2e3d48ab7b7d74c6c0f731806cdddc

¿Vale la pena seguir investigando?

Eliminé 2.8G de registros, lo que solo me llevó a 4.9G. No tengo una instancia de “prueba” para intentar ./launcher rebuild app --skip-prereqs

¿Alguna otra sugerencia?

¿Simplemente ya no es posible ejecutar una instancia de Discourse en una droplet de 25G?

Ver el final de Prune unused Docker objects | Docker Docs

Creo que quieres podar todo y podar volúmenes

docker system prune --volumes
ADVERTENCIA! Esto eliminará:
  - todos los contenedores detenidos
  - todas las redes no utilizadas por al menos un contenedor
  - todos los volúmenes no utilizados por al menos un contenedor
  - todas las imágenes colgantes
  - toda la caché de compilación colgante

¿Está seguro de que desea continuar? [y/N] y
Espacio total recuperado: 0B
root@DO-Discourse:/# 

¿Alguna otra sugerencia?

¿Tienes algún uso para snap?

Realmente no, es bastante revelador que el espacio esté siendo consumido por docker para tus contenedores. Después de una limpieza, mis números son muy similares a los tuyos, lo que quizás (pero no necesariamente) indica que es solo cuánto usa.

Tuve problemas con un Linode de 25 GB, sin embargo, fue con copias de seguridad de 500 MB o más; eliminar dos o tres copias de seguridad me dio suficiente espacio para reconstruir. Opté por pasar al siguiente nivel con 50 GB porque solo se volvería más restrictivo y quería reconstruir con un trabajo cron mensual.

Eso fue antes del cambio a Ember CLI, ¿podría eso haber hecho las cosas significativamente más grandes?

Esa superposición de 9 GB parece ser el problema. Pero tengo una de tamaño similar en otra instancia que acabo de revisar. Siempre ha sido un desafío con 25 GB. Te recomendaría que hagas el sacrificio y consigas más SSD. Lo siguiente que podrías intentar sería ver si hay cosas a nivel del sistema operativo que puedas eliminar (registros, programas innecesarios, índices de find, ¿quizás?).

Otra idea sería simplemente iniciar una nueva VM de 25 GB y mudarte allí, esperando que lo que sea que haya llenado la anterior no sea un problema esta vez.

Ninguna de estas respuestas parece especialmente satisfactoria. Luché mucho con un droplet de 25 GB en una o dos instancias que ayudo a administrar en la última semana o dos, pero creo que has hecho todo lo que yo hice.

3 Me gusta

No estoy seguro. ¿Lo necesito para una instalación exclusiva de discourse? Y si no, ¿cómo lo elimino?

No lo creo :thinking:
después de una descarga completa de copia de seguridad, podrías snap list para comprobar qué snaps están instalados, y si no hay ninguno sudo apt purge snapd

root@DO-Discourse:/var/discourse# snap list
Name    Version        Rev    Tracking       Publisher   Notes
core18  20220309       2344   latest/stable  canonical✓  base
core20  20220304       1376   latest/stable  canonical✓  base
lxd     4.0.9-8e2046b  22753  4.0/stable/…   canonical✓  -
snapd   2.54.4         15177  latest/stable  canonical✓  snapd
root@DO-Discourse:/var/discourse# 

¿Qué son esas superposiciones? ¿Puedo eliminarlas?

Hola Andy, disculpa la demora.
En este punto, ten en cuenta que sin conocer tu sistema anfitrión, es fácil guiarte hacia un precipicio, así que haz una copia de seguridad/instantánea/etc… (o incluso haz una copia de seguridad, inicia una instancia nueva y prueba el proceso de restauración, ha sido un buen ejercicio para mí)
Suponiendo que no usas lxd (lxc list debería mostrar los contenedores instalados) snap remove lxd (y luego core18 y 20)

1 me gusta

¿Puedes compartir la salida de docker images y docker ps -a?

Gracias por tu ayuda. Sí, sé tan poco sobre Linux que aprecio totalmente el consejo de hacer una copia de seguridad. Tengo una instantánea automática y hago una manual cada vez que estoy trasteando como ahora.

No tengo ni idea de qué es lxd. No necesito nada en este droplet que discourse/docker no necesite, ya que es exclusivamente un droplet de discourse.

1 me gusta
root@DO-Discourse:/var/discourse# docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
local_discourse/app   latest    3dac608caa92   4 months ago   3.17GB
root@DO-Discourse:/var/discourse#
root@DO-Discourse:/var/discourse# docker ps -a
CONTAINER ID   IMAGE                 COMMAND        CREATED        STATUS        PORTS                                      NAMES
9abaf4517b7e   local_discourse/app   “/sbin/boot”   4 months ago   Up 4 months   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app
root@DO-Discourse:/var/discourse#

Considerando

y

Creo que tienes algunas capas colgadas en tu carpeta overlay2.

Consulta esta respuesta de StackOverflow para obtener orientación:

3 Me gusta

Gracias.
Eso está bastante por encima de mi nivel, ¿sería seguro simplemente hacer una instantánea y luego eliminarlos y ver qué sucede?

1 me gusta

Creo que es seguro eliminar todas esas imágenes. Si las necesitas, se reemplazarán cuando reconstruyas.

Hacer una instantánea no es mala idea.

Lo que yo haría es simplemente iniciar una nueva instancia; eso es lo más seguro y probablemente más rápido que una instantánea, pero si saber cómo hacerlo no es divertido o instructivo, tu idea está bien.

2 Me gusta

¡Eliminé una de las imágenes y eso solucionó el problema!

Muchas gracias a todos por vuestra ayuda.

2 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.