ricm

Se incorporó
28 Agosto 2005
Mensajes
7.590
Estimados, tengo un servidor web pequeñito que hasta hace poco andaba de lo mas tranqui. Cuando cambie version de linux, y de mysql 5.7 a 8, el consumo de ram se fue a las nubes.
Mi servidor corre apache, php y mysql.

Como soy nuevo no se por donde comenzar a atacar el problema así que aquí van unas capturas

1728334324338.png

1728333986280.png
 

ricm

Se incorporó
28 Agosto 2005
Mensajes
7.590
Pd: esa conexión global puede que esté dejando abierto las conexiones, tb con mysql workspace puedes ver cuáles clientes están conectados y qué están haciendo.

Puedes probar eliminando esa query de forma temporal y revisando qué tal anda dp de un par de días. Wiki está hecho para servir cantidades industriales de datos así que ellos deben tener sus estructuras y conexiones bien definidos y en orden.

Y por último... Reiniciaste mysql dp del upgrade inicial?

Saludos.
Si reinicié. Comenzó usando menos ram pero fue subiendo durante el día.

Igual el sitio no anda mal, quizás es un poco la ansiedad de ver la ram usada finalmente.
 
Upvote 0

Kitsune

Fanático
Se incorporó
5 Mayo 2006
Mensajes
1.049
muy weno el mysqltunner siempre da buenas observaciones
Solo me llama la atención porque de la actualización, solo por nueva versión?
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.403
pregunta:
que motor esta usando? innodb o myisam ?

en la configuracion que cantidad tiene definida en el buffer de innodb ? por defecto a veces puede quedar en 512MB, y si la db pesa eso o mas, perfectamente tratara de subir la mayor cantidad de datos a la ram.

el tema de la consulta variada y random puede aplicar si trata de filtrar por datos no indizados, lo que provocara que se lea la tabla completa de disco a memoria para hacer el filtado.

se ven consultas o conexiones pegadas/funcionando en la consola? lease : show processlist:

los "subprocesos" que se visualizan en Htop puede que sean hilos secundarios de mysql, que pueden ser conexiones activas o queryes en ejecucion, asi que con el comando anterior en mysql deberia indicarte como esta funcionando y que esta corriendo en el momento.

dato: en HTOP puedes usar la tecla H para activar/desactivar la vista de "threads", y asi ver los recursos unificados por proceso unico
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.403
Si reinicié. Comenzó usando menos ram pero fue subiendo durante el día.

Igual el sitio no anda mal, quizás es un poco la ansiedad de ver la ram usada finalmente.

igual 1GB es poquito para estandares actuales, quizas debas mirar la conf y ver los tamaños de bufferes y caches de querys
tambien noto que no tienes Swap , y con esa cantidad de Ram quizas te convenga agregar unos 4 GB de memoria swap en un archivo:

asi movera paginas sin usar a la swap y liberara memoria para procesos en uso (igual puede ser necesario definir el nivel de cacheado y swappiness )
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.601
Hot take: hoy en día para bases pequeñas y con baja concurrencia es mejor usar SQLite
Siempre y cuando no necesites transacciones o la consistencia de una base de datos relacional.

Y no es un hot-take, SQLite tiene su espacio, sobretodo en ambientes donde se leen muchos datos pero no se escriben de vuelta: por algo tb está embebido en un montón de software: firefox y Chrome por ejemplo lo ocupan para guardar datos, mientras que Windows 10 y Android lo ocupan para lo mismo, pero a nivel de OS.

Así que como ves, SQLite no es tan impopular, lo que pasa es que está más escondido jajajaj

En el caso de la wiki, dudo que tengan una conexión disponible para SQLite y si la tienen, debe ser para guardar otro tipo de datos y no necesariamente el de los artículos.

Saludos.
 
Upvote 0

ricm

Se incorporó
28 Agosto 2005
Mensajes
7.590
Al final que hiciste? xD
Disminuir la cantidad de consultas a la base pesada usando una segunda base de datos más liviana para las funciones que no necesiten detalles.

Uso más extensivo en php de mysql close(), no se si esto sea buena idea pero estoy probando.

Active slow query log y no encontró nada sobre 3 segundos, salvo ciertas operaciones muy puntuales qué hice yo a mano.

Show processlist usualmente esta vacío pq las consultas son respondidas casi instantáneamente.

Las bases son innodb.


Igual mi sospecha principal es que algo extraño ocurrió en el cambio de versiones de sql, como configuraciones no óptimas arrastradas de versiones anteriores por ejemplo, aunque no he podido pillar cual, ni he tenido el tiempo de hacer una instalación limpia.
 
Última modificación:
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.403
y el buffer innodb en cuanto estaba ?
si no esta definido en la conf, se puede obtener desde la consola de mysql

tambien revisar el tamaño de las caches de temporales y querys, aunque si no son muy grandes no se deberian llenar demasiado.

el tema de cerrar las conexiones esta bien, no es sano mantener conexiones activas si no se van a utilizar (conectar, hacer todas las consultas utiles, entregar resultado, cerrar conexion ), pero tambien puede variar si es que hay mas tareas en paralelo
 
Upvote 0
Subir