Pasar al contenido principal
Monoforms Web Development
CAPTCHA
17 + 3 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Main navigation

  • Home
  • Sobre mi
  • Contacto
CAPTCHA
16 + 4 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Sobrescribir enlaces de ayuda a la navegación

  1. Home
  2. Cómo Liberé 12GB En Mi Servidor y Reviví Mi Sitio Web (sin Llorar… Mucho)

Cómo liberé 12GB en mi servidor y reviví mi sitio web (sin llorar… mucho)

By peter, 21 Febrero, 2025

El fin de semana pasado mi sitio decidió tomarse unas vacaciones sin avisar y dejó de estar disponible. En pantalla solo aparecía este mensaje superútil:

The website encountered an unexpected error. Please try again later.

Cuando intenté entrar por consola usando el panel de Digital Ocean, tampoco me dejó. Así que, como todo buen informático, apliqué la solución universal: reiniciar la instancia. Y sí, con eso pude entrar.

Lo primero que hice fue preguntarle a ChatGPT cómo ver qué carpetas estaban devorando mi disco, y me pasó este comando mágico:

du -h --max-depth=1 / | sort -rh | head -10

Con esto descubrí que mi servidor estaba acumulando logs como si fueran tesoros. En particular, la carpeta /var/log/journal pesaba unos jugosos 2GB. Me puse a investigar y, con otro comando que me pasó ChatGPT, filtré los intentos de acceso con:

journalctl --file system@bbfa76cf12a94546b8be21fe7a07d96f-0000000001bd46ca-00062d997baa0eca.journal | grep "Accepted password"

Spoiler: no había intrusos, solo yo mismo logueándome :D . Para borrar esos logs, ChatGPT me sugirió este combo:

sudo journalctl --rotate
sudo journalctl --vacuum-size=1K

Con eso me deshice de casi 2GB de basura.

Puedes ver el video al respecto donde voy haciendo el procedimiento a prueba y error:

¿Y qué pasaba con MySQL?

Después fui a ver qué onda con la carpeta /var/lib/mysql, que estaba ocupando la módica cantidad de 14GB. Resulta que se estaban generando montones de archivos de binlog, esos logs binarios que MySQL/MariaDB usa para replicación o recuperación de datos. Como yo no uso replicación, estaban ahí ocupando espacio de gratis.

Le pedí a ChatGPT un comando para leerlos, y me dio:

mysqlbinlog /var/mysql/binlog.001017

¿Lo entendí? Pues no, pero me di cuenta de que Drupal estaba logueando en las tablas de logs/cache como si no hubiera un mañana. Así que la primera medida fue vaciar la caché de Drupal.

Para deshacerme de los binlogs viejos, ejecuté esto en MySQL:

PURGE BINARY LOGS BEFORE NOW() - INTERVAL 30 DAY;

Y para deshabilitarlos de una vez por todas, edité el archivo de configuración en /etc/mysql/mysql.conf.d/mysqld.cnf y agregué esto al final:

[mysqld]
skip-log-bin

Después reinicié MySQL con:

sudo systemctl restart mysql

Y con eso bajé el uso de disco de MySQL de 14GB a solo 1.6GB. ¡Victoria! 🎉

Reduciendo espacio en MySQL

También hice un video continuado todo lo anterior expuesto.


Resumen de la Operación Rescate Espacio en Disco:

  1. Rotar y eliminar logs de journal.
  2. Vaciar caché de Drupal.
  3. Borrar binlogs de MySQL.
  4. Deshabilitar binlogs de MySQL.
  5. Reiniciar MySQL.

Conclusión

Parece que el servidor se quedó sin espacio en disco, lo que provocó la caída del sitio. Las principales razones fueron:

  • Montones de intentos de acceso al servidor generando logs interminables.
  • Drupal logueando como si le pagaran por cada línea guardada.
  • MySQL acumulando binlogs sin que nadie los usara.

 ¡Hasta la próxima crisis! 🚀

Etiquetas

  • mysql
  • drupal
  • linux
  • Journal
  • ChatGpt

Comentarios

Contenido reciente

  • Como limpiar usings sin usar en Rider
  • Instalando apache, mysql y php en Ubuntu
  • Cómo liberé 12GB en mi servidor y reviví mi sitio web (sin llorar… mucho)
  • ¿Que son los sitios web agregadores y los anuncios clasificados?
  • Mi Experiencia con Docker, Podman y Kubernetes
  • Lo más destacado del AWS User Group Puebla
  • Docker: Ignorar el directorio vendor en un proyecto de Go.
  • Instala Kubernetes en Ubuntu 22.04 para pruebas
  • Serverless, Lambda y Kubernetes: Fundamentos para la nube
  • Ejecuta tu lambda de Golang en AWS SAM de forma local

Recomendados

  • Biodiv
  • Medium
RSS feed

Política de privacidad

Términos de uso

Recomendados

  • Biodiv
  • Medium
Powered by Drupal

Monoforms ©2021 Created by Pedro Rojas Reyes