WordPress 5개와 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