FAQ Mejorar el rendimiento

Dolibarr es una aplicación web diseñada para tener un tiempo de respuesta lo más optimizado posible. Utiliza muchas tecnologías, pero algunas de ellas no están habilitadas por defecto, ya que necesitan algunas configuraciones específicas para su uso. Esta es una lista de todo lo que puede hacer para aumentar la velocidad Dolibarr.

= Soluciones recomendadas =

Desactivación de xdebug
Eficacia: *****

Principio: Si el módulo php xdebug está activado, habrá que desactivarlo. Este módulo es una funcionalidad de PHP que le sirve a los desarrolladores, pero que ralentiza el funcionamiento de toda aplicación PHP. Para averiguar si el módulo está activado, vaya a la página Inicio-Configuración-Info del Sistema-PHP y realice una búsqueda de xdebug. Si no encuentra nada, el módulo no está atcivado. Si encuentra una ocurrencia, está activado y puede desactivarse. Su activación/desactivación depende de su sistema PHP y SO, lo más corriente suele ser desactivarlo comentando una línea en el archivo php.ini

Aplicación Cache vía MemCached
Eficacia: *****

Principio: Instalar un servidor de caché Memcached y el Módulo MemCached.

Caché PHP OPCODE
Eficacia: ****

Principio: Instalar un módulo apache/php que mete en caché la compilación de sus páginas PHP. En cada acceso, una página que ya haya sido accedida cargará más rápidamente. Para ello puede instalar cualquier acelerador. xcache parte como solución recomendada. Este cache trabaja a un nivel diferente que el Módulo MemCached, ¡las mejoras son acumulativas!

Cache HTTP de las páginas de estadísticas
Eficacia: ***

Principio: Puede configurar apache para activar la caché explicita de recursos estadísticos añadiendo las directivas: Las mejoras se acumulan a los cachés anteriores.

Compresión de los recursos por Apache
Eficacia: *** Principio: Puede configurar Apache para activar la compresión de los recursos reenviados por el servidor gracias a las siguientes directivas:

Uso del driver mysqli en lugar de mysql
Eficacia: ***

Principio: Si usa una base de datos Mysql, comprueba en su archivo de configuración de Dolibarr htdocs/conf/conf.php que tiene bien la línea Si el valor tiene mysql, cambie lo por mysqli que da mejor rendimiento (gana 30ms en cada página).

Búsqueda al inicio del campo
Eficacia: ***

Principio: Si tiene activado en el módulo Productos la búsqueda "autocompletar" y la lista tarda un tiempo en aparecer en cada tecleo de carácter, es por que tiene un número importante de productos. La búsqueda se realiza en cualquier lugar del texto, el índice de la base de datos no puede usarse. Añadiendo la constante PRODUCT_DONOTSEARCH_ANYWHERE con valor 1 en Inicio-Configuración-Varios, limitará la búsqueda al inicio de la cadena, permitiendo el uso del índice y obteniendo una respuesta inmediata.

Uso de un navegador reciente
Eficacia: *** Principio: Muchas funcionalidades se basan en las tecnologías Ajax o JavaScript para proporcionar una ergonomía moderna. Estas tecnologías tienen un papel importante en el tiempo de visualización de las páginas y son mucho mejor aprovechadas con un navegador web reciente. Las diferencias de rendimiento de una versión a otra son a veces muy importantes, también hay que considerar el uso de un navegador web optimizado y con la última versión disponible (Firefox, Chrome, Safari u Opera). Evite el IE u otros navegadores exóticos.

Actualizar las estadísticas de la base de datos
Eficacia: **

Principio: Si su base de datos es voluminosa (más de 100 000 registros), compruebe que las estadísticas de sus datos están actualizadas. Requiere de acceso como administrador a la base de datos y de conocimientos de administración. Consulte el manual de la base de datos acerca de como "actualizar las estadísticas".

= Otas soluciones = Todas las soluciones que aquí se clasifican por separado en este capítulo "Otras soluciones", ya que no son recomendables. Pueden requerir conocimientos técnicos avanzados, pueden ser inestables, no soportadas o pueden impedir el funcionamiento de ciertas características... pero existen, así que ¡Uselas solamente si sabe lo que hace!

Aplicación Cache vía Shared memory
Eficacia: ****

Prerrequisito: Uso del servidor web Apache

Principio: Añadir en Inicio-Configuración-Varios la constante MAIN_OPTIMIZE_SPEED. Si el valor de la constante tiene el bit 1 definido (Ejemplo: MAIN_OPTIMIZE_SPEED=2), la memoria compartida de su SO se utilizará para guardar en caché los archivos lang, aunque también implica que todo el interfaz solamente será visible en un único idioma, el del primero que se conecte al arrancar el servidor web (quien cargue los archivos de idioma en caché). Usar en lugar del Módulo MemCached para una optimización mediante una aplicación de caché que no tenga ninguna de estas limitaciones y sea de mayor rendimiento.

Desactivar la generación de PDF "al vuelo"
Eficacia: **

Principio: Añadir en Inicio-Configuración-Varios la constante MAIN_DISABLE_PDF_AUTOUPDATE con valor 1. Esto desactivará la generación de un PDF cada vez que modifique un elemento (factura, pedido, etc.). La generación del PDF solo se realizará mediante el clic al botón "Generar".

Compresión para Dolibarr
Eficacia: **

Principio: Añadir en Inicio-Configuración-Varios la constante MAIN_OPTIMIZE_SPEED. Si el valor de esta constante tiene el bit 2 definido (Ejemplo: MAIN_OPTIMIZE_SPEED=4), Dolibarr devolverá las páginas comprimidas en GZ (y si el navegador lo soporta). Consume más CPU en el servidor pero reduce el tiempo de transferencia.

Desactivar la función Canvas
Eficacia: *

Principio: Añadir en Inicio-Configuración-Varios la constante MAIN_DISABLE_CANVAS con valor 1. Esto desactivará las funciones de gestión de canvas, que puede usarse por ciertos módulos externos y que ahorrará una consulta a base de datos cada vez que acceda a la ficha de un objeto. Si un módulo externo usa esta función de canvas, esto dejará al módulo defectuoso. Si no tiene instalado ningún módulo complementario externo, no hay ningún riesgo.

Nota: Para obtener la totalidad de las optimizaciones usando MAIN_OPTIMIZE_SPEED, hay que activar todos los bits (Ejemplo: MAIN_OPTIMIZE_SPEED=7 entonces 1+2+4 contiene el bit 0, 1 y 2).