NuevoBlack Friday: 50 % de descuento en tu primer pago
Solución de problemas de WordPress

Permitido tamaño de la memoria agotado

PHP alcanzó el techo que se dio y paró. El número en el mensaje es el límite, no la cantidad que su sitio necesita.

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)

Respuesta breve

Elevar el límite suficiente para recuperar el sitio, y luego encontrar lo que lo consumió. Un límite levantado sin ese segundo paso se levanta de nuevo el mes próximo, y el número en el mensaje no le dice nada acerca de qué código era responsable.

Diagnóstico

Las causas más probables primero.

Revisa la lista en orden. Cada comprobación permite confirmar o descartar una causa antes de hacer cambios: las soluciones son distintas y adivinar cuesta más que ejecutar un comando.

CausaCómo comprobarloSolución
Una imagen que se redimensionaEl error aparece en la subida o en una pantalla de media-libración, y el archivo involucrado es grande.Dar la memoria o el tamaño suficiente de la cámara JPEG puede necesitar muchas veces su tamaño de archivo para descomprimir.
Una consulta cargando todo en un arrayEl error se aterriza en un archivo, una exportación o un informe - dondequiera que posts_per_page es -1.Paginar la consulta. Buscar cada fila para contarlas es la versión más común de esto en el código de plugins.
Opciones autocargadas grandesEl tamaño autocargado se mide en megabytes. Cada solicitud lo paga, por lo que el error puede aparecer en cualquier lugar.Mover las opciones más grandes de la autocarga. Los plugins que almacenan los registros o caches en wp_options son la razón habitual.
El límite es simplemente bajoEl mensaje nombra un límite bien debajo de 256M en un sitio con un conjunto de plugins ordinario.Levanten WP_MEMORY_LIMIT a algo moderno. Un predeterminado de 40M es una década de fecha.
Una importación que sostiene cada filaLa memoria se eleva constantemente a través de un trabajo de larga duración en lugar de espiar de inmediato.Proceso en pedazos y libre cada lote. La memoria que sólo crece es un trabajo que nunca libera lo que ha leído.
Guía

Solución paso a paso.

Los comandos requieren WP-CLI y acceso a la consola. Si no los tienes, cada paso explica cómo hacer lo mismo desde el panel o por SFTP.

  1. Lea el límite que está golpeando

    Hay dos: PHP propio, y WordPress propio en la parte superior de él.

    php -i | grep '^memory_limit'
    wp config get WP_MEMORY_LIMIT
  2. Suele ser suficiente para cargar el sitio de nuevo

    Esto es triage, te compra el tablero para que puedas hacer el siguiente paso.

    wp config set WP_MEMORY_LIMIT '256M'
    wp config set WP_MAX_MEMORY_LIMIT '512M'
  3. Medir las opciones autocargadas

    Cada solicitud paga por esto antes de que haga cualquier otra cosa.

    wp db query "SELECT ROUND(SUM(LENGTH(option_value))/1024/1024, 2) AS mb FROM \$wpdb->options WHERE autoload='yes';"
  4. Encontrar a los mayores delincuentes por nombre

    La parte superior de esta lista es generalmente un plugin almacenando algo que no debe.

    wp db query "SELECT option_name, ROUND(LENGTH(option_value)/1024, 1) AS kb FROM \$wpdb->options WHERE autoload='yes' ORDER BY LENGTH(option_value) DESC LIMIT 10;"
  5. Confirme la fijación bajo el límite original

    Pon el límite de vuelta a donde estaba y recargar la página que falló. Si sostiene, fijaste la causa en lugar de el síntoma.

    wp config set WP_MEMORY_LIMIT '128M'
En MagicWP

De esto se encarga la plataforma.

La memoria es tallada en el plan en lugar de en un defecto compartido, por lo que el punto de partida es un número moderno en lugar de uno de los años de edad, y pertenece a su contenedor solo. El panel muestra la memoria que un sitio está utilizando en realidad contra lo que tiene, que es la medición que convierte este error de una conjetura en una decisión.

Preguntas frecuentes

Preguntas frecuentes.

¿Cuánto tiempo de memoria necesita WordPress?
Solo Core es modesto. Lo que decide el número es sus plugins, sus tamaños de imagen y su pantalla de administración más grande - por lo que la respuesta honesta es medir el sitio en lugar de copiar una figura de otro lugar.
¿Por qué el mensaje menciona una pequeña asignación?
Porque esa asignación fue la que no encajaba. Es la paja, no la carga. El número interesante es el límite y lo que la llenó, ninguno de los cuales el mensaje le dice.
¿Puedo levantar el límite para siempre?
Puedes levantarlo, pero un límite es lo que detiene una solicitud de huida derribando toda la piscina. Removiéndolo convierte una sola página fallida en una máquina que cambia.
¿Por qué sólo sucede en wp-admin?
Las pantallas de Admin cargan más por solicitud - cheques de actualización, tablas de lista y el código de configuración de cada plugin. Una página de entrada que viene de cache pide una fracción de ella.
Errores relacionados

Si el problema era otro.

Estos errores pueden parecerse en el navegador.