¿Cuánta memoria del servidor consume mi sitio WordPress?

26 de marzo de 2010 — Darío Ferrer

A la hora de un problema, muchos desarrolladores y bloggers entusiastas de la programación invierten buena parte de su preocupación en las consultas que su sistema hace a la base de datos, pero olvidan un punto importante: la memoria de su servidor PHP.

Comencemos por explicar cómo puedes saber la memoria PHP que tu sitio web consume. Abre el archivo footer.php de tu plantilla y colocas el siguiente código en el lugar más apropiado (código más completo al final):

1
Consumo: <?php echo round(memory_get_usage()/1048576,2) ?>MB

Respecto a los niveles “normales” de consumo no puedo ofrecer un dato exacto, pero luego de unas pruebas noté que:

  • Una instalación nueva consume unos 10.5MB.
  • Darioferrer.com se come alrededor de 25MB.
  • Darioferrer.com con la plantilla “default” (y configuraciones por defecto) consume unos 14MB.
  • Cierto portal grande (tipo 20minutos.es) consume aproximadamente 48MB.
  • Otro proyecto, un catálogo de productos, consume unos 36MB

Por otra parte, efectué una prueba de los plugins que tengo instalados y anoté la memoria que cada uno de éstos exige en el frontend del sitio:

  • CodeColorer: 2MB (mierda!)
  • Sociable: 0.4MB
  • WP Smart Image II: 0.2MB
  • Custom Field Template: 2.2MB (mierda!)
  • Get Recent Comments: 0.2MB
  • WP-PageNavi: 0.2MB
  • Max Image Size Control: 0.2MB

Obviamente lo anterior me indica que algunos plugins están consumiendo una memoria excesiva de PHP, por lo cual es posible que pronto decida probar otras opciones. Por cierto, no quiero ni imaginar lo que consumen plugins como CformII o NextGen Gallery (no uso ninguno de ambos debido a su innecesaria complejidad de funcionamiento), o el WP E-commerce.

Como conclusión debo decir que el límite regular de memoria (consumida por script) en un servidor compartido se encuentra en niveles aceptables. Y mi consejo a quienes experimenten problemas de tipo “Allowed memory exhaust bla bla bla…” es: Háganle una revisión a sus plugins, tanto la explicada como la de número de consultas a la base de datos. Dejo el código completo de ambas para copiar y pegar:

1
2
3
<p>Consumo de PHP: <?php echo round(memory_get_usage()/1048576,2) ?>MB.</p>
<p>Base de datos: <?php echo get_num_queries(); ?> consultas.</p>
<p>Tiempo de carga: <?php timer_stop(1); ?> segundos.</p>
  • Bitacoras.com
  • Meneame
  • Twitter
  • del.icio.us
  • Facebook
  • Digg
  • Technorati
  • BarraPunto

Publicado en Wordpress. 32 Comentarios »

32 comentarios

  • Fernando Tellado dijo:
    26 de marzo de 2010 a las 7:17 pm

    Muy interesante Darío :)

    No te cuento lo que consume AW porque me pegas, pero seguro que ronda los 50 Mb con todas las cosas que activo para probar y luego nunca desactivo :D

  • Aporte: ¿Cuanta memoria consume tu WP? dijo:
    26 de marzo de 2010 a las 7:41 pm

    [...]¿Cuánta memoria del servidor consume mi sitio WordPress? — Darío Ferrer[...]

  • Rafa dijo:
    26 de marzo de 2010 a las 7:42 pm

    Aporto la línea que yo tengo en mi blog, para quien le interese:

    [cc lang="php"] consultas | secs | Carga Mb

  • Rafa dijo:
    26 de marzo de 2010 a las 7:43 pm

    Reenvío (uds perdonen) ahora en texto plano : )

    consultas | secs | Carga Mb

  • Darío Ferrer dijo:
    26 de marzo de 2010 a las 7:44 pm

    Qué tal Fernando. Estoy seguro que en este momento te encuentras revisando el panel :). En mi opinión (y luego de esta fugaz prueba) los plugins que más merecen revisión son los que actúan en el contenido, seguidos de los que operan en el index y categorías.

  • Jacobo dijo:
    26 de marzo de 2010 a las 7:59 pm

    Muchas gracias por compartirlo, no lo conocía.
    Lo estoy probando en una instalación nueva, ¿es normal que consuma 24 megas? Tengo mas aplicaciones instaladas en el mismo server (concretamente Prestashop) ¿puede esto influir en la medida?

    Por otro lado yo también uso Custom Field Template, hace tiempo que le busco un sustituto pero no encuentro nada que cumpla su función sin alterar la base de datos. Si lo encuentras informa por aquí por favor

  • ejner69 dijo:
    26 de marzo de 2010 a las 8:15 pm

    Para un cliente utilice un código similar, pero expresaba el consumo en Kb. Como la expresión en Mb es más entendible, agradezco el aporte.

    Aún no lo pruebo en mi sitio, pero debe rondar los 20MB. En todo caso, estoy en vías de rediseñarlo y eliminar ciertas cosillas que encuentro muy inútiles, así que me viene de mil maravillas este post.

    Saludos!

  • zanguanga dijo:
    26 de marzo de 2010 a las 8:33 pm

    Excelente, habrá que probarlo.
    No lo he medido aún, pero he notado que wp-useronline es otro plugin que consume mucho.
    ¡Gracias por esta información tan valiosa!

  • Sabogal dijo:
    26 de marzo de 2010 a las 9:45 pm

    Supongo que el consumo de memoria depende también de la cantidad de usuarios simmultaneos, puesto que el número de consultas a la base de datos y la cantidad de datos servidos se incrementa.

    En mi caso, tengo un dedicado con 4 gb de memoria y en algunos momentos me consume el 60% de la memoria.

    Saludos!

  • descargas dijo:
    26 de marzo de 2010 a las 9:47 pm

    Hola, he llegado aqui de la mano de Fernando y, leyendo los datos que das .. hasta me he asustado porque tengo ya bastantes plugins “en acción” aparte de varias llamadas a scripts.

    He puesto los códigos que mencionas. Que relajo me ha entrado!! menos de 17Mb de consumo.

    Gracias por el código, y gracias a Fernando también por el enlace.

    1 saludo

  • Hispania dijo:
    27 de marzo de 2010 a las 4:39 am

    Yo también he llegado aquí gracias a Fernando y me ha parecido muy interesante el código. El problema es que no me funciona, por lo menos en local, me da el siguiente error:

    Fatal error: Call to undefined function memory_get_usage() in C:\Archivos de programa\xampp\htdocs\wordpress\wp-content\themes\evidens-white\footer.php on line 13

    ¿ Me arriesgo y lo pongo en el blog real no en local ?

  • Hispania dijo:
    27 de marzo de 2010 a las 5:02 am

    Al final lo he colocado en el blog y ahí si que funcionan :D
    En enlazandoweb marca:
    Consumo de PHP: 24.95MB.
    Base de datos: 63 consultas.
    Tiempo de carga: 9.800 segundos.

    y en ephenic me pone esto otro:
    Consumo de PHP: 17.73MB.
    Base de datos: 52 consultas.
    Tiempo de carga: 0.643 segundos.

    En el primer caso creo que es algo exagerado, sobre todo el tiempo de carga :((

  • maty dijo:
    27 de marzo de 2010 a las 5:50 am

    He añadido la línea para el consumo de memoria en Una temporada en el infierno:

    19 queries. 0.372 seconds.
    Consumo de PHP: 10.56MB.

    Nota: la bitácora funciona con WP desde el 2005. Las múltiples funcionalidades de las que dispone han sido insertadas directamente en código sin hacer el uso de widgets.

    Si miráis el código de la página, al final de ella veréis tales valores.

    Lo dicho, siempre hay que pensar en OPTIMIZAR LOS RECURSOS.

    - Un saludo -

  • Linux Hispano | Datos de rendimiento de WordPress dijo:
    27 de marzo de 2010 a las 8:53 am

    [...] información la he obtenido de un post más extenso sobre el tema que he leído en Darío Ferrer. ¿Te ha [...]

  • Camilo dijo:
    27 de marzo de 2010 a las 11:53 am

    Para que quede como aporte, le agregué un IF para que los datos se vean sólo para un usuario logueado, y no para el público en general.

    1
    2
    3
    4
    5
    <?php if (is_user_logged_in()) { ?>
    <p>Consumo de PHP: <?php echo round(memory_get_usage()/1048576,2) ?>MB.</p>
    <p>Base de datos: <?php echo get_num_queries(); ?> consultas.</p>
    <p>Tiempo de carga: <?php timer_stop(1); ?> segundos.</p>
    <?php } ?>

    Gracias por código. :)

  • soyNacho dijo:
    27 de marzo de 2010 a las 3:07 pm

    Excelente aporte! Ya lo estoy utilizando en mis sitios y haciendo pruebas… :P

  • Piratamovil dijo:
    28 de marzo de 2010 a las 12:57 pm

    Sabes de algún código similar que muestre el consumo de CPU de tu servicio de Hosting?

  • Medir el uso de memoria de tu blog | Volteck.net | Tecnología e Informática | Noticias | Blog dijo:
    28 de marzo de 2010 a las 1:01 pm

    [...] a AyudaWordpres veo un código echo por Darío Ferrer. Con solo agregar la siguiente linea “Consumo: <?php echo [...]

  • zanguanga dijo:
    28 de marzo de 2010 a las 4:02 pm

    Hola tras hacer algunas pruebas, os cuento el resultado:
    Zanguanga, es el que más consume, y no me extraña, porque está sin optimizar desde hace muchos meses: (16.42MB. 42 consultas. 4.272 segundos)

    Pero en otros blog (he probado 7 hasta ahora) he observado algunas detalles que pueden ser interesantes:

    -La plantilla Thematic consume mucho más de BBDD que el resto de plantillas que he probado que no son “frame”, casi el doble (sin embargo en PHP y tiempo va ok, 6.44MB y 1.925 segundos)

    -Las plantillas con páginas de opciones consumen mucho más PHP que el resto, me temo que más del doble.

    Supongo que es lógico que así sea, pero quería compartirlo con vosotros, porque me ha extrañado lo de Thematic, esperaba más consumo en PHP que en BBDD. Cuando tenga un poco más de tiempo publicaré los detalles.

    No he probado aún la diferencia, plantilla a plantilla y plugin a plugin, pero en general estoy muy contenta con los resultados. ¡Contentísima!

    El código es genial, de las cosas más útiles con las que me he tropezado últimamente :-)

  • David dijo:
    28 de marzo de 2010 a las 4:45 pm

    Aquí poniendo los datos de Agunata.

    Consumo de PHP: 10.48MB.
    Base de datos: 15 consultas.
    Tiempo de carga: 0.783 segundos.

    Pero como se darán cuenta, mi blog es muy simple :P

  • Pande dijo:
    29 de marzo de 2010 a las 3:54 am

    Buenísimo. me ha encantado ademas el aporte de Camilo, lo pillaré.
    En Pandeblog.org tengo:

    Consumo de PHP: 5.83MB.

    Base de datos: 16 consultas.

    Tiempo de carga: 0.210 segundos.

    No sé si influye el que sea hora baja y Semana Santa, lo probaré esta noche en hora punta. Tengo metido el el wp-supercache, el widget caché y el autoptimize.

  • Pande dijo:
    29 de marzo de 2010 a las 3:54 am

    Ah, el blog no es nuevo, tiene ya 7 añitos y una base de datos de 100 MB

  • Turypeople dijo:
    29 de marzo de 2010 a las 4:10 am

    Para nuestro blog de turismo http://www.turypeople.org hemos visto que el consumo está bien optimizado con estos datos:

    Consumo de PHP: 15.19MB.

    Base de datos: 13 consultas.

    Tiempo de carga: 1.073 segundos.

    Muy util e interesante la parte de código.

    gracias!!

  • lomaswtf.com dijo:
    29 de marzo de 2010 a las 4:44 am

    Muy interesante. ¿Como puedo saber cuanto consume cada plug-in?

  • zanguanga dijo:
    30 de marzo de 2010 a las 12:59 pm

    Hola Darío ¿qué ha pasado? ¿se borraron comentarios?

  • Darío Ferrer dijo:
    30 de marzo de 2010 a las 8:00 pm

    Zanguanga escribió:
    Hola Darío ¿qué ha pasado? ¿se borraron comentarios?

    Nada de eso mi reina :D. Sólo que he estado aprovechando la “semana santa” para alejarme un poco de todo. sin embargo todas las noches vuelvo a la madriguera, aunque esta vez tardé 2 días =P

    Jacobo escribió:
    Lo estoy probando en una instalación nueva, ¿es normal que consuma 24 megas? Tengo mas aplicaciones instaladas en el mismo server (concretamente Prestashop) ¿puede esto influir en la medida?

    El resultado refleja el consumo de servidor al momento que se renderiza la página que estás viendo al momento Si estás usando algún plugin o tienes algún widget que retorne datos de otro sistema y esté presente en el instante del refrescamiento, por supuesto entra también en el cálculo.

    Hispania escribió:
    Yo también he llegado aquí gracias a Fernando y me ha parecido muy interesante el código. El problema es que no me funciona, por lo menos en local, me da el siguiente error:

    Fatal error: Call to undefined function memory_get_usage() in C:\Archivos de programa\xampp\htdocs\wordpress\wp-content\themes\evidens-white\footer.php on line 13

    ¿ Me arriesgo y lo pongo en el blog real no en local ?

    Debes revisar la versión de tu servidor PHP. La función está implementada en PHP a partir de la versión 4.3.2.

    Hispania escribió:
    En el primer caso creo que es algo exagerado, sobre todo el tiempo de carga :((

    Muchas veces depende de la configuración de tu hosting. Creo que lo ideal es hacer una comparativa del comportamiento tanto en remoto como en local.

    Pande escribió:
    Consumo de PHP: 5.83MB.

    Base de datos: 16 consultas.

    Tiempo de carga: 0.210 segundos.

    Tu consumo de PHP es algo bajo para el mínimo de WordPress. Quizás tengas activado un plugin de caché, lo cual ahorra trabajo del servidor.

    lomaswtf.com escribió:
    Muy interesante. ¿Como puedo saber cuanto consume cada plug-in?

    Hasta el momento lo que se me ha ocurrido es actualizar la página con y sin plugin, para luego sacar la diferencia.

    Zanguanga escribió:
    Hola tras hacer algunas pruebas, os cuento el resultado:
    Zanguanga, es el que más consume, y no me extraña, porque está sin optimizar desde hace muchos meses: (16.42MB. 42 consultas. 4.272 segundos)

    Son buenos niveles. Aunque también me daría curiosidad saber cuánto consume cuando tienes sIFR desactivado.

  • dragondeluz dijo:
    31 de marzo de 2010 a las 8:31 am

    PUF esto si que es tremendo aporte…. Gracias darío , gracias camilo

  • zanguanga dijo:
    1 de abril de 2010 a las 12:22 pm

    Tus deseos son órdenes, milord. Aquí van los resultados con SIFR y sin SIFR tras actualizar WordPress y optimizar BBDD:

    Sin SIFR

    Consumo de PHP: 5.32MB.
    Base de datos: 39 consultas.
    Tiempo de carga: 1.251 segundos.

    Sin SIFR tras limpiar caché del FF.

    Consumo de PHP: 5.32MB.
    Base de datos: 39 consultas.
    Tiempo de carga: 1.478 segundos.

    Con SIFR

    Consumo de PHP: 5.32MB.
    Base de datos: 39 consultas.
    Tiempo de carga: 1.340 segundos.

    Con SIFR tras limpiar caché del FF.

    Consumo de PHP: 5.32MB.
    Base de datos: 39 consultas.
    Tiempo de carga: 1.628 segundos.

    Curioso ¿no?

    Plugins activos: Akismet, All in One SEO Pack, Contact Form 7, FeedBurner FeedSmith, Google XML Sitemaps, Simple Tags, WP-Optimize

  • zanguanga dijo:
    1 de abril de 2010 a las 12:31 pm

    Olvidé mencionar que tengo también Lightbox, una versión del siglo pasado, instalada en carpeta en raiz del dominio, y no en carpeta plugins :p

  • woolframio dijo:
    21 de mayo de 2010 a las 11:07 am

    las variacion, son por el themes que uno ocupe y tambien la cantidad de post que se publican por pagina, sin considerar las categorias y tag.
    hay algunos themes que consume mas de Consumo de PHP: 25MB, Base de datos: 90 consultas. Tiempo de carga: 2.123 segundos.
    el themes defaul que tiene wordpress 3.0 es de solo:
    Consumo de PHP: 25MB
    Base de datos: 10 consultas.
    Tiempo de carga: 0.123 segundos.
    considerando que hay un solo post.

  • Medir el uso de memoria de tu blog | SohbeTCix.NeT | Chat Sohbet Muhabbet Odaları dijo:
    7 de junio de 2010 a las 2:27 pm

    [...] código echo por Darío Ferrer. Con solo agregar la siguiente linea “Consumo: <?php echo [...]

  • Consumo de memoria de Wordpress « Blog LinkLift.es dijo:
    30 de julio de 2010 a las 4:33 am

    [...] de servidor, es probable que acabe experimentando algunos problemas y se ralentice bastante. En ¿Cuánta memoria del servidor consume mi sitio WordPress? nos revelan como calcular este gasto. Para ello debemos agregar este pedacito de código en, por [...]

Comentar este artículo

Nombre (Requerido)

Correo (No será publicado) (Requerido)

Sitio web

Secciones

Anteriores

comentarios recientes

@Willy en ¿Joomla Vs. Wordpress? (1ª parte): Era lo que necesitaba leer!!! como programador, aprender como editar un template de cero en joomla y...

@Willy en [Meme] Concepto bizarrón de CSS: Cagadas Siempre Suceden!! XD Counter Strike Server. no es bizarro pero bue!!

@Horacio en ¿Joomla Vs. Wordpress? (1ª parte): Hola, hace tiempo empece a trabajar con joomla y armar mi sitio web en un servidor gratuito para...

@birgitta en ¿”WatchTower” o “CashPower”?: Hilaridad sin H,mis disculpas

@birgitta en ¿”WatchTower” o “CashPower”?: AY AY AY.Cuanto lobotomizado hay por aqui!!!!!! Muchas gracias Dario por tu...

@Darío en ¿Joomla Vs. Wordpress? (1ª parte): Gracias por la sugerencia tocayo, voy a analizarla! Luego de buscar un poco más encontré que la página...

@Juan Vera en Dar acceso a grupos de Joomla (o restringírselo) para cualquier componente: Hola, mira yo quiero algo parecido pero para las personas...

@Emanuel en Dos tips sobre Adobe Reader: Detener AcroRd32Info.exe e impedir actualizaciones automáticas: Para que molestarse instalando acrobat si...

Darío Ferrer — Blog personal

Sitio desarrollado con Wordpress, software libre para un mundo libre.

57 consultas a la BD en 2,263 segundos. Blog alojado en DreamHost