与えられた
数百人のユーザー向けに設計されたBitrix24の企業ポータルで、BitrixVMを備えた専用サーバー上に最大300GBのファイルと最大80GBのデータベースがあります。
設定を変更する前のインジケーターは次のとおりです
。Bitrix管理パネルでの標準パフォーマンステスト
すべてのパラメーターの中で、MySQLおよびPHP構成の操作に特別な注意を払う必要があります。これらの指標は、プロジェクトのパフォーマンスのレベルを間接的に反映するため、私たちにとって特に重要です。
クライアントのリクエスト
私たちのクライアントは、プロジェクトを新しい専用サーバーに移動するだけでなく、パフォーマンスパラメータを改善したいと考えていました。たとえば、問題には、ソースサーバーにデータベースをダンプできないことや、ポータル自体の動作が遅いことが含まれます。
決定
MySQL設定は、私たちが最初に作業を開始するものです。
BitrixVMの標準値を次のように置き換えましょう:
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
Bitrixはより高いプロセッサ周波数を好むため、次のステップはCPUパワーモードを変更することです。
各変更におけるコアの数に応じて、
ファイルの
/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
省電力で のパフォーマンス。
次に、結果を確認しましょう
。MySQLでの作業が最も変化したことがわかります。「書き込み」パラメータと「変更」パラメータは、ほぼ3倍に増加しています。「読書」インジケーターは5倍に増加しました。これは、サイトがデータベースにアクセスするときに、このタイプの操作が数倍速く実行されることを意味します。その結果、サイトの全体的なパフォーマンスも向上します。
CPUパワーモードの変更(専用サーバーを使用しているため可能)により、CPUの操作回数が増加しました。
次に、OPcacheの設定を編集する必要があります。
ファイルで
/etc/php.d/10-opcache.ini
、元の値を次のように置き換えます 。
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
注: Bitrixテストでは、パラメーター
opcache.revalidate_freq
の値は1ではなく0である必要があることがわかりますが、指定した値の方がうまく機能します。
パラメータ自体が
opcache.revalidate_freq
キャッシュのチェックを担当します。値が0の場合、スクリプトが起動されるたびに実行され、値が1の場合、1秒に1回実行されます。
設定を変更した後、結果を確認し
ます。表から、MySQLでの作業の指標がもう少し大きくなっていることがわかります 。同時に、PHP設定とスクリプトキャッシュの変更により、CPU操作と全体的なBitrixパフォーマンスが大幅に向上しました。
出力
このような設定の簡単な変更のおかげで、プロジェクトのパフォーマンスを3倍に、データベースとのやり取りを3倍から5倍に増やすことができました(Bitrixテストの全体的なスコアに基づく)。私たちのクライアントは、新しいサーバーでのプロジェクトの作業に完全に満足しています。やりました!
この最適化手法では、Bitrixが相互作用する主なポイントと、テスト自体に焦点を当てました。クライアントはしばしばそれに注意を払います。
Bitrixのパフォーマンスを向上させる他の方法には、キャッシュサービス(Redisなど)のインストールと構成が含まれます。CMSのパフォーマンスは低下する可能性がありますが、サイト全体のパフォーマンスは向上するはずです。さらに、php-fpmを使用することもできますが、この場合、最初にBitrix用に構成されたOSを作り直すのは不合理です。
MySQLの設定をいじることもできます。これらはプロジェクトや構成ごとに個別であるため、完璧なレシピは1つではありません。Bitrixでプロジェクトを最適化するためのライフハックを知ることは興味深いでしょう。コメントであなたの意見を共有してください。