Bitrix24. Brincando com as configurações e otimizando o projeto

Neste artigo, mostraremos como otimizar um grande projeto no Bitrix24 e aumentar seu desempenho em 3 vezes alterando as configurações do MySQL e o modo de energia da CPU.



Dado



O portal corporativo em Bitrix24, projetado para várias centenas de usuários, com ~ 300 GB de arquivos e ~ 80 GB de bancos de dados em um servidor dedicado com BitrixVM.



Antes de alterar as configurações, os indicadores eram os seguintes:







Teste padrão de desempenho no painel de administração do Bitrix



De todos os parâmetros, você deve prestar atenção especial em trabalhar com MySQL e Configuração de PHP. Esses indicadores são especialmente importantes para nós, pois refletem indiretamente o nível de desempenho do projeto.



Pedido do cliente



Nosso cliente queria não apenas mover o projeto para um novo servidor dedicado, mas também melhorar os parâmetros de desempenho. Por exemplo, as dificuldades incluem a incapacidade de despejar o banco de dados no servidor de origem e a operação lenta do próprio portal.



Decisão



As configurações do MySQL são a primeira coisa com a qual começamos a trabalhar.



Vamos substituir os valores padrão do BitrixVM por:



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
      
      





O próximo passo é mudar o modo de energia da CPU, já que o Bitrix adora uma frequência de processador mais alta.



Dependendo do número de núcleos em cada

arquivo de mudança, /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor



economize no desempenho .



A seguir, vamos verificar o resultado:







Vemos que o trabalho com MySQL mudou muito: os parâmetros "write" e "change" aumentaram quase 3 vezes; o indicador de "leitura" aumentou 5 vezes. Isso significa que quando o site acessar o banco de dados, este tipo de operação será realizada várias vezes mais rápido. Como resultado, o desempenho geral do site também aumentará.



Devido à alteração do modo de potência da CPU (isso é possível, visto que é usado um servidor dedicado), o número de operações na CPU aumentou.



Agora você precisa editar as configurações do OPcache.



No arquivo, /etc/php.d/10-opcache.ini



substitua seu valor original por:



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: O teste Bitrix dirá que o parâmetro opcache.revalidate_freq



deve ter um valor 0 e não 1, mas funcionará melhor com o que especificamos.



O próprio parâmetro é opcache.revalidate_freq



responsável pela verificação do cache: com valor 0, ele é executado toda vez que o script é iniciado, e com valor 1, é executado uma vez por segundo.



Depois de mudar as configurações, verificamos o resultado:







Da tabela segue que o indicador de trabalho com MySQL cresceu um pouco mais. Ao mesmo tempo, as operações da CPU e o desempenho geral do Bitrix aumentaram significativamente devido às mudanças nas configurações do PHP e no cache de script.



Resultado



Graças a essas mudanças simples nas configurações, fomos capazes de aumentar o desempenho do projeto em 3 vezes, e a interação com o banco de dados - de 3 a 5 vezes (com base na pontuação geral do teste Bitrix). Nosso cliente está totalmente satisfeito com o trabalho do projeto no novo servidor. Conseguimos!



Nesse método de otimização, focamos nos principais pontos com os quais o Bitrix interage, bem como no próprio teste. Os clientes costumam prestar atenção nisso.



Outras maneiras de melhorar o desempenho do Bitrix incluem instalar e configurar um serviço de cache (por exemplo, Redis). O desempenho do CMS pode cair, mas o desempenho geral do site deve ser melhor. Além disso, você pode usar php-fpm, mas em nosso caso seria irracional refazer o sistema operacional inicialmente configurado para Bitrix.



Você também pode brincar com as configurações do MySQL. Eles são individuais para cada projeto e configuração, portanto, não existe uma receita perfeita. Será interessante conhecer os hacks de sua vida para otimizar projetos em Bitrix. Compartilhe sua opinião nos comentários.



All Articles