• Resuelto cr0hn

    (@cr0hn)


    Hola a todos,

    Escribo con la esperanza que podáis echarme una mano. Os comento mi problema:

    Cuando navego por la zona pública del blog tarda algo en cargar, pero después funciona bien. Cuando me logeo, toda la zona privada tarda muchísimo en cargar y, por ejemplo, la parte de instalación de plugins tarda mucho mas y la de actualización de wordpress o la búsqueda de plugins no he conseguido de que cargue (antes aparece un timeout -que está puesto a 60s-).

    Os cuento el escenario:

    Estoy configurando un Blog con WordPress en una máquina virtual, de un sistema de virtualización dedicado que solo controlo yo, y en la que solamente hay 2 máquinas corriendo, con hardware más que sobrado para correr cualquier sistema (i7 + 16GB de RAM).

    La máquina aloja el WordPress está corriendo en un jaula de FreeBSD, con un nginx + php-fpm. La máquina que tiene MySQL corre en otra máquina, en una jaula también.

    – La conectividad entre la máquina con wordpress y mysql es muy bueno.
    – Mysql tiene asignados 3,9GB de RAM y unas configuraciones muy «generosas» de cacheo. Solo uso INNODB.
    – PHP está configurado con una memoria máxima de 96MB, así como la variable WP_MEMORY_LIMIT de wordpress, a 96 MB también.
    – Los permisos de los directorios están revisados.
    – El rendimiento de la red desde internet es muy bueno (100MB simétricos).

    He rebuscado en internet y he hecho todo lo que he encontrado: reinstalar wordpress, la BBDD, varias opciones de configuración de wordpress y un sin fin de cosas mas.

    Espero que alguien pueda echarme una mano, porque ya no se por donde tirar.

    Un saludo y gracias.

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • Moderador erchache2000

    (@erchache2000)

    ¿Con qué virtualizas? Xen, Qemu?

    ¿Las 2 máquinas estan conectadas por iscsi a la cabina de discos? ¿Tienes HA activo en el sistema de virtualización?

    ¿Cómo has configurado cada máquina virtual?

    ¿Has compilado freebsd o es precompilado?

    ¿Cómo has hecho el chroot de freebsd, sistema completo o solamente al User Space de ngnix?

    ¿Por qué has elegido ngnix en vez de apache?

    ¿Condiciones muy generosas de cacheo mysql? ¿Cuál es tu my.cnf?

    Iniciador del debate cr0hn

    (@cr0hn)

    Hola,

    Da gusto oír tantas preguntas, no puse esa información al principio para no saturar. Muchas gracias por tu tiempo.

    Voy respondiendo:

    – Uso Xen. Mas concretamente XenServer, la versión de Citrix.

    – No uso cabinas conectadas, ni NAS ni nada similar. Uso 2 HD que lleva instalado el PC usados con LVM. A cada máquina le asigno un disco duro lógico de ese espacio.

    – Cada máquina virtual:
    — Corre un FreeBSD 9.
    — Todo el user space está recomipilado desde los fuentes.
    — El kernel está recompilado para aprovechar Xen. He usado el XENHVM con algunas cosas más añadidas (como desactivas el STCP, por ejemplo).
    — Todo el software instalado está compilado.
    — El sistema corre con un «securelevel» de 2.
    — No se qué información mas necesitas sobre esto.

    – El sitio con wordpress:
    — Corre en una jaula (no en un chroot).
    — Está comunicado con internet a través de un nat.
    — Está comunicado con mysql a través de una VLAN (mysql está en otra máquina virtual).
    — Dentro de la jaula está el nginx + php-fpm.
    — La jaula no está echa con ezjail, sino «a mano». Funciona perfectamente con otros sitio hechos en java, mono o mysql.
    — El hardware de esta vm es: 2VCPU + 4G RAM.

    – El myql
    — Corre en otra VM, con FreeBSD también.
    — Tiene una interfaz de red, conectada a la VLAN de la jaula del wordpress.
    — Solamente está mysql corriendo en esta VM.
    — El hardware de la vm es: 2VCPU + 4G RAM.

    – Uso nginx en lugar de Apache porque tengo experiencia con él, me ha dado muy buenos resultados de rendimiento y… algo de manía personal 🙂

    – Mis condiciones «generosas» (teniendo en cuenta mis conocimientos algo limitados de administración de mysql). Hago un copy&paste, aunque saldrá enorme:
    ###############
    # The MySQL server
    [mysqld]
    port = 3306
    socket = /tmp/mysql.sock
    log_slow_queries = /data/mysql-slow.log
    skip-external-locking
    key_buffer_size = 384M
    max_allowed_packet = 1M
    table_open_cache = 512
    sort_buffer_size = 2M
    read_buffer_size = 2M
    read_rnd_buffer_size = 8M
    myisam_sort_buffer_size = 64M
    thread_cache_size = 8
    query_cache_size = 32M
    query_cache_limit = 128M
    # Try number of CPU’s*2 for thread_concurrency
    thread_concurrency = 4
    tmp_table_size = 24M
    max_heap_table_size = 32M
    skip-name-resolve

    log-bin=mysql-bin
    server-id = 1

    innodb_data_home_dir = /data/
    innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
    innodb_log_group_home_dir = /data/
    innodb_buffer_pool_size = 1600M
    innodb_additional_mem_pool_size = 20M
    innodb_log_file_size = 750M
    innodb_log_buffer_size = 8M
    innodb_flush_log_at_trx_commit = 1
    innodb_lock_wait_timeout = 50

    [mysqldump]
    quick
    max_allowed_packet = 16M

    [mysql]
    no-auto-rehash
    # Remove the next comment character if you are not familiar with SQL
    #safe-updates

    [myisamchk]
    key_buffer_size = 256M
    sort_buffer_size = 256M
    read_buffer = 2M
    write_buffer = 2M

    [mysqlhotcopy]
    interactive-timeout
    ########

    Un saludo.

    Moderador erchache2000

    (@erchache2000)

    Con todo respeto, el my.cnf esta a la virulé… XD máxime para una instancia virtualizada.

    No creo que sea un problema de WordPress sino de «afinar» y «calzar» las VM’s. Con la información que me das creo que estas haciendo virtualización de servidores en escritorio. Esto es, lo tienes todo en un churumbel y eso no es ni virtualizar ni ná…

    Ya que aunque afines y tal, luego cuando lo pases a producción seguramente tendrás que reafinar todo.

    Yo paso de Citrix, usa el xen community.

    Total que entre el sistema operativo anfitrion, la configuración del Xen de Citrix y tal, eso hace un cuello de botella que lo flipas…

    Te recomiendo que leas esto, http://es.forums.wordpress.org/topic/recomendaciones-antes-de-instalar-wordpress-2?replies=1

    Iniciador del debate cr0hn

    (@cr0hn)

    jajaja Esperaba que me dijeras eso de mi my.cnf. Mas que nada para encontrar puntos de fallo, ya que con mis conocimientos de mysql no soy capaz de ver los «gambazos» que hay 🙂

    El sistema de virtualización obviamente no es el que puede tener una compañía para sus servicios. Es un servidor personal, pero no va nada mal de hardware, aunque se que le fallan algunas cosas (como el almacenamiento), solo tengo un nodo de ejecución, etc.

    El Xen comunity es el que me hubiera gustado tener de base, junto con un FreeBSD. Pero por varias cosas que no vienen al caso, ha tenido que ser el de Citrix.

    Lo del cuello de botella estoy de acuerdo, pero hasta cierto punto. No tengo tal cantidad de transacciones ni accesos a disco como para que sea provocado. Tengo otros sitios albergados de esta forma y no tengo problemas con ellos, WordPress es el primero que me da problemas.

    Volviendo al wordpress, lo que mas raro me parece es que vaya bien y rápido todas las secciones salvo algunas del area privada. No se si por el acceso a mysql o porque será, pero, como comentaba antes, me salta el timeout antes de obtener el resultado.

    Intentaré mirar algún mysql más optimizado para una instancia virtualizada a ver qué tal. Alguna sugerencia?

    Un saludo y gracias!

    Moderador erchache2000

    (@erchache2000)

    Si quieres ser un maestro jedi de mysql, http://www.amazon.com/MySQL-Experts-Voice-Open-Source/dp/159059505X este es tu libro…

    Con respecto a lo de la virtualización… lo dicho, bonito juguetito pero no será funcional. Todos pasamos por ahí XD

    Iniciador del debate cr0hn

    (@cr0hn)

    Gracias por la info. Investigaré por ahí.

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • El debate ‘WordPress muy lento en la zona de administración’ está cerrado a nuevas respuestas.