Dado
El portal corporativo en Bitrix24, diseñado para varios cientos de usuarios, con ~ 300 GB de archivos y ~ 80 GB de bases de datos en un servidor dedicado con BitrixVM.
Antes de cambiar la configuración, los indicadores eran los siguientes:
Prueba de rendimiento estándar en el panel de administración de Bitrix
De todos los parámetros, debe prestar especial atención a trabajar con MySQL y Configuración PHP. Estos indicadores son especialmente importantes para nosotros, ya que reflejan indirectamente el nivel de desempeño del proyecto.
Solicitud de cliente
Nuestro cliente no solo quería trasladar el proyecto a un nuevo servidor dedicado, sino también mejorar los parámetros de rendimiento. Por ejemplo, las dificultades incluyen la imposibilidad de volcar la base de datos en el servidor de origen y el funcionamiento lento del portal en sí.
Decisión
La configuración de MySQL es lo primero con lo que empezamos a trabajar.
Reemplacemos los valores estándar de BitrixVM con:
explicit_defaults_for_timestamp = 1
expire_logs_days = 10
max_binlog_size = 100M
max_allowed_packet = 128M
transaction-isolation = READ-COMMITTED
performance_schema = OFF
sql_mode = ""
# Cache parameters
query_cache_type = 1
query_cache_size=16M
query_cache_limit=4M
key_buffer_size=256M
join_buffer_size=2M
sort_buffer_size=4M
# Parameters for temporary tables
tmpdir = /tmp
tmp_table_size=128M
max_heap_table_size=128M
thread_cache_size = 4
table_open_cache = 2048
# InnoDB parameters
innodb_file_per_table
innodb_buffer_pool_size = 8192M
innodb_buffer_pool_instances = 1
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
innodb_strict_mode = OFF
# Database charset parameters
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
[mysqldump]
quick
quote-names
default-character-set = utf8
El siguiente paso es cambiar el modo de energía de la CPU, ya que Bitrix ama una frecuencia de procesador más alta.
Dependiendo del número de núcleos en cada
archivo de cambios ,
/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
ahorre energía en el rendimiento .
A continuación, veamos el resultado:
Vemos que el trabajo con MySQL ha cambiado más: los parámetros "escribir" y "cambiar" han crecido casi 3 veces; el indicador de "lectura" aumentó 5 veces. Esto significa que cuando el sitio acceda a la base de datos, este tipo de operación se realizará varias veces más rápido. Como resultado, el rendimiento general del sitio también aumentará.
Debido al cambio en el modo de energía de la CPU (esto es posible, ya que se usa un servidor dedicado), el número de operaciones en la CPU ha aumentado.
Ahora necesita editar la configuración de OPcache.
En el archivo,
/etc/php.d/10-opcache.ini
reemplace su valor original con:
zend_extension=opcache.so opcache.enable = 1 opcache.enable_cli = 1 opcache.memory_consumption = 256 opcache.max_file_size = 2M opcache.interned_strings_buffer = 64 opcache.max_accelerated_files = 130987 opcache.fast_shutdown = 1 opcache.revalidate_freq = 1 opcache.fast_shutdown=1 opcache.save_comments=1 opcache.load_comments=1 opcache.use_cwd = 1
Nota: La prueba de Bitrix te dirá que el parámetro
opcache.revalidate_freq
debe tener un valor de 0 y no 1, pero funcionará mejor con el que especificamos.
El propio parámetro se
opcache.revalidate_freq
encarga de verificar la caché: con un valor de 0 se ejecuta cada vez que se lanza el script, y con un valor de 1 se ejecuta una vez por segundo.
Después de cambiar la configuración, comprobamos el resultado:
De la tabla se deduce que el indicador de trabajo con MySQL ha crecido un poco más. Al mismo tiempo, las operaciones de la CPU y el rendimiento general de Bitrix han aumentado significativamente debido a los cambios en la configuración de PHP y el almacenamiento en caché de scripts.
Salida
Gracias a cambios tan simples en la configuración, pudimos aumentar el rendimiento del proyecto en 3 veces y la interacción con la base de datos, de 3 a 5 veces (según la puntuación general de la prueba Bitrix). Nuestro cliente está completamente satisfecho con el trabajo del proyecto en el nuevo servidor. ¡Lo hicimos!
En este método de optimización, nos centramos en los puntos principales con los que interactúa Bitrix, así como en la prueba en sí. Los clientes a menudo le prestan atención.
Otras formas de mejorar el rendimiento de Bitrix incluyen instalar y configurar un servicio de almacenamiento en caché (por ejemplo, Redis). El rendimiento de CMS puede caer, pero el rendimiento general del sitio debería ser mejor. Además, puede usar php-fpm, pero en nuestro caso sería irracional rehacer el sistema operativo configurado inicialmente para Bitrix.
También puedes jugar con la configuración de MySQL. Son individuales para cada proyecto y configuración, por lo que no existe una receta perfecta. Será interesante conocer sus trucos de vida para optimizar proyectos en Bitrix. Comparte tu opinión en los comentarios.