Comprar un plan mayor es rápido, y a veces acertado. También es la manera más común de gastar dinero en un problema que era un índice que faltaba o una sola llamada lenta a una API. Diez minutos de medición lo deciden.

¿De verdad se ha quedado sin memoria?

free -h
vmstat 1 5

En vmstat, lea las columnas si y so: páginas que entran y salen del swap por segundo. Números distintos de cero sostenidos significan que a la máquina le falta memoria de verdad. Ceros significan que no, diga lo que diga la columna free.

Linux usa la memoria libre como caché de disco a propósito. Una máquina que informa de casi nada de memoria libre y de ningún swap está sana: vea RAM, swap y cuándo el swap es un síntoma.

Qué es en su lugar, normalmente

  • Una consulta lenta. Una consulta sin índice sobre una tabla que crece. Vea el registro de consultas lentas.
  • Esperar a otra cosa: una API de pagos, un servidor de correo, un feed remoto, donde el servidor está parado y no ocupado.
  • El disco. Un iowait alto en top significa que el almacenamiento es el límite; más memoria solo ayuda cacheando a su alrededor.
  • Un núcleo de CPU clavado al tope por un trabajo de un solo hilo mientras los demás están parados.

Léalos por separado

top -b -n1 | head -15        # load, iowait, what is busy
iostat -x 1 3               # disk latency and utilisation
ss -s                       # connection counts

Cuándo más RAM SÍ es la respuesta

  • Swap constante con tráfico normal.
  • Un conjunto de trabajo de la base mayor de lo que puede darle al buffer pool: vea innodb_buffer_pool_size.
  • Un pool de PHP que no puede dimensionar lo bastante grande para su tráfico sin pasarse de memoria.
Mida primero, suba de plan después. Un cambio de plan es fácil de hacer e incómodo de deshacer, y la consulta lenta sigue ahí luego, ahora sobre una máquina más cara.