5つのWordPressと、WooCommerceと大規模データベースを含むBbpressを含む1つのステージングをホストするのではなく、私のサーバーに問題があります。サーバーには120Go Ramと500Moスワップセットがあります。
私のTTFBは約3秒です...
一部のSQLクエリは結果を取得するのに約2秒かかります。 varchar(191)とテーブル構造varachar(250)を使用してインデックス付けの問題を解決しましたが、多くのことは得られませんでした。
巨大なインデックスを持つテーブルがあります。おそらく、これが修正されるべき別のポイントかもしれません。
私の問題は、主にMySQLサーバーとSQL要求の待機時間が原因であるようです。
いくつかの最適化を行い、マルチレベルキャッシュ(redisキャッシュ/ウェブサイトキャッシュ/DNSキャッシュ)を使用しました。
しかし、他の技術的な点を調べる前に、MySQLを最大限に活用していることを確認したいと思います。
これはmy.cnf
ファイルです
[mysql]
#performance_schema = on
#max_allowed_packet=4196M
max_connections = 200
[client-server]
# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/
[mysqld]
query_cache_size=64M
join_buffer_size = 8M
#bind-address = ::
sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
local-infile=0
#max_allowed_packet=4196M
net_buffer_length=16K
wait_timeout=300
interactive_timeout=300
####### Control slow query ######
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = 1
####### CACHE - Management - 15/09/23 ######
tmp_table_size = 4096M
max_heap_table_size = 4096M
sort_buffer_size = 2M
thread_cache_size = 16
#temptable_max_mmap = 4G
#temptable_max_ram = 4G
innodb_buffer_pool_size=48G
innodb_log_file_size=6G
innodb_buffer_pool_instances = 48
performance_schema=ON
table_definition_cache=1500
skip-name-resolve=ON
query_cache_size=8G
#query_cache=0
[client]
#wait_timeout=31536000
#max_allowed_packet=4196M
[mysqldump]
max_allowed_packet=4196M
この値を変更すると、トラブルシューティングに役立つかどうか疑問に思います。
tmp_table_size=256M
max_heap_table_size=256M
max_connections=500
thread_cache_size=50
innodb_log_file_size=512M
innodb_buffer_pool_size=100G
wait_timeout=300
interactive_timeout=300
net_buffer_length=64K
max_allowed_packet=256M