Foro Confederac.io

Problemas en red.confederac.io (Mastodon)

Ya funciona… Se había llenado el disco duro.

2 Likes

Mira cuando puedas a ver si está fallando otra vez

Hm. Lo miro. Esta tarde he hecho esto, e igual tiene que ver.

1 Like

Ya está. El problema es casi siempre el mismo: el servidor se queda sin memoria porque la base de datos se llena de ficheros remotos que hay que ir limpiando.

Hace tiempo que quiero crear una tarea cron para que haga esto de manera automática, pero no es sencillo. Justo he visto estas instrucciones, pero hoy ya he tenido bastante Mastodon. :slight_smile:

1 Like

No tengo experiencia en el manejo de servidores, sólo en el Linux de escritorio, pero ¿no hay ningún parámetro para ajustar el tamaño o el tiempo de la cache en Mastodon?

Lo que crece no es la cache, sino entradas permanentes en la base de datos (mensajes y media de otras instancias federadas). Mastodon ya provee una herramienta para ir limpiando estos datos federados a la que adquieren una cierta antigüedad. Lo que no provee es documentación clara para hacer correr esa herramienta periódicamente de manera automática, y es ahí donde un servidor (yo) se queda encallado. :slight_smile:

El script tiene buena pinta :slight_smile:
Gracias por el tiempo y las ganas que le echas, icaria!

1 Like

Seguramente es más complicado pero, si el comando lo consigues correr desde la consola, añadirlo a cron es muy sencillo. La única complicación estaría en ese caso en si lo añades al cron de root o al de un usuario, y ahí puede que no se ejecute algún comando por la variable de entorno.

En principio lo que yo leo en ese script (y hace muchos años que prácticamente no uso Linux) es que metes unas variables al bashrc para que sepa dónde localizar los archivos y ejecutar tootctl con Rails para borrar la cache de mensajes y de archivos adjuntos.

Otra cosa que puede complicarlo, como me ha sucedido el otro día, es que hayas hecho un instalación de Debian al estilo Ubuntu, o sea sin usuario root, y quizás tienes que probar con cosas como sudo su- para lograr los permisos de root. Pero si esos dos comandos del tutorial los estás ejecutando sin errores en la consola (sin el --days=3), entonces la cosa puede ser que no tengas las variables en el bashrc del usuario al que añades el trabajo de cron. Pon las variables de bash en el usuario o admin que ejecute el trabajo de cron. Y en el trabajo de cron, o mejor dicho dos trabajos consecutivos con un delay, cada uno con una de esas líneas de comando:

/home/mastodon/live/bin/tootctl statuses remove

/home/mastodon/live/bin/tootctl media remove

Que en idioma cron es:

* * 3 * * /home/mastodon/live/bin/tootctl statuses remove > tootctl-statuses-remove.log

55 * 3 * * /home/mastodon/live/bin/tootctl media remove > tootctl-media-remove.log

Dicho esto, parece que tengo mucha idea de administrar sistemas y seguro que el problema es otra cosa que no me suena ni de oídas ^^

1 Like

Mientras, sigo haciendo esto manualmente una vez por semana o cuando me acuerdo…

Hoy:

Removed 21637 media attachments (approx. 6.77 GB)

Pero no me has dicho cuál es el error que te da el script.

El error es no haberme puesto aún con el script y el cron…

Pues entonces prueba la solución que te di hace dos meses porque posiblemente es la correcta.

1 Like

Veo que algo no va en red.confederac.io. Vamos, que no funciona nada. Lo miro en un rato.

1 Like

Si es lo de siempre, pásame si quieres un usuario para que pueda entrar por ssh e intento (intento) instalar el script de marras…

Bueno, “ya” funciona. Igual hay algún contenido reciente (de los últimos días) que ha desaparecido. Y sí, era lo de siempre. :frowning:

A ver.

El crontab del usuario mastodon ya tenía esto “de fábrica”:

RAILS_ENV=production
@daily cd /home/mastodon/live && /home/mastodon/.rbenv/shims/bundle exec rake mastodon:media:remove_remote

Le he añadido esto, y a ver qué tal funciona:

0 5 * * * cd /home/mastodon/live && bin/tootctl media remove

No entiendo lo suficiente para saber si esto es mejor, peor o lo mismo que propone @LETRA:

Mañana repaso y miro si ha habido limpieza automática. Cuando estemos seguros de que limpia a diario, podemos refinar los argumentos de la limpieza.

2 Likes

Pues se ha vuelto a caer. Prueba con la orden de cron que puse, pero sólo con la segunda línea, la otra quizás borra los toots:

55 * 3 * * /home/mastodon/live/bin/tootctl media remove > tootctl-media-remove.log

También hay unas instrucciones de hace pocos meses en github que podrían servir:

1 Like

A mi me funciona ahora… Antes he estado mirando a ratos y es cierto que a veces veía el Error 500, pero en cuestión de segundos volvía a funcionar.

Ese código es esencialmente el mismo que había añadido, pero novato de mi no había definido estas variables:

SHELL=/bin/bash
PATH=/home/mastodon/.rbenv/shims:/home/mastodon/.rbenv/bin:/usr/local/bin:/usr/bin:/bin

Lo he añadido ahora, he reproducido los pasos manualmente en la linea de comandos y me ha funcionado. Mañana por la mañana compruebo que el cron haya funcionado.

1 Like

Un mensaje ha sido separado a un nuevo tema: Tres cuentas a moderar en red.confederac.io

Esta mañana en syslog:

Nov 27 06:00:01 mastodon CRON[4398]: (mastodon) CMD (cd /home/mastodon/live && bin/tootctl media remove)

Para hacer la prueba del algodón, he intentado el mismo comando manualmente, una hora y pico después de esa instrucción del cron. No había nada que borrar. ¡Parece que funciona!

mastodon@mastodon:~/live$ RAILS_ENV=production bin/tootctl media remove

Removed 0 media attachments (approx. 0 Bytes) 
2 Likes

Justo ahora, repito el proceso manual. La respuesta:

Removed 0 media attachments (approx. 0 Bytes)

Bueno, parece que este viejo problema está resuelto. Miraré de nuevo un par de veces separadas por una semana para asegurarme, pero vamos.

@LETRA muchas gracias por… sobretodo por la persistencia. Y los enlaces. :slight_smile: Me sabe mal no haber solucionado esto antes.

2 Likes